diff options
author | Cary Coutant <ccoutant@google.com> | 2013-12-18 15:53:05 -0800 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2013-12-18 15:53:31 -0800 |
commit | 8356f2d009e20e5ca567f5f9456a40f75e9560dc (patch) | |
tree | 0a3ef9f8198083e62512b134e53159d6f2d008ac /gold | |
parent | a6d17b01944cc51fec7f4bb74012a92e6f6a4293 (diff) | |
download | fsf-binutils-gdb-8356f2d009e20e5ca567f5f9456a40f75e9560dc.zip fsf-binutils-gdb-8356f2d009e20e5ca567f5f9456a40f75e9560dc.tar.gz fsf-binutils-gdb-8356f2d009e20e5ca567f5f9456a40f75e9560dc.tar.bz2 |
Add configure checks for <unordered_set> and <unordered_map>.
gold/
* configure.ac: Check for <unordered_set> and <unordered_map>.
* config.in: Regenerate.
* configure: Regenerate.
* system.h: Use <unordered_set> and <unordered_map> if available.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 7 | ||||
-rw-r--r-- | gold/config.in | 6 | ||||
-rwxr-xr-x | gold/configure | 14 | ||||
-rw-r--r-- | gold/configure.ac | 1 | ||||
-rw-r--r-- | gold/system.h | 17 |
5 files changed, 43 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index ea67ee9..2e26946 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,10 @@ +2013-12-18 Cary Coutant <ccoutant@google.com> + + * configure.ac: Check for <unordered_set> and <unordered_map>. + * config.in: Regenerate. + * configure: Regenerate. + * system.h: Use <unordered_set> and <unordered_map> if available. + 2013-12-10 Roland McGrath <mcgrathr@google.com> * Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses diff --git a/gold/config.in b/gold/config.in index d46fd75..be77810 100644 --- a/gold/config.in +++ b/gold/config.in @@ -187,6 +187,12 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the <unordered_map> header file. */ +#undef HAVE_UNORDERED_MAP + +/* Define to 1 if you have the <unordered_set> header file. */ +#undef HAVE_UNORDERED_SET + /* Define to 1 if you have the <windows.h> header file. */ #undef HAVE_WINDOWS_H diff --git a/gold/configure b/gold/configure index 24140cf..2257324 100755 --- a/gold/configure +++ b/gold/configure @@ -7133,6 +7133,20 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +for ac_header in unordered_set unordered_map +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + for ac_header in tr1/unordered_set tr1/unordered_map do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` diff --git a/gold/configure.ac b/gold/configure.ac index 9bc216b..b2741cf 100644 --- a/gold/configure.ac +++ b/gold/configure.ac @@ -523,6 +523,7 @@ AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strvers AC_LANG_PUSH(C++) +AC_CHECK_HEADERS(unordered_set unordered_map) AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map) AC_CHECK_HEADERS(ext/hash_map ext/hash_set) AC_CHECK_HEADERS(byteswap.h) diff --git a/gold/system.h b/gold/system.h index 3e6fe1d..aea3723 100644 --- a/gold/system.h +++ b/gold/system.h @@ -57,8 +57,21 @@ // Figure out how to get a hash set and a hash map. -#if defined(HAVE_TR1_UNORDERED_SET) && defined(HAVE_TR1_UNORDERED_MAP) \ - && defined(HAVE_TR1_UNORDERED_MAP_REHASH) +#if defined(HAVE_UNORDERED_SET) && defined(HAVE_UNORDERED_MAP) + +#include <unordered_set> +#include <unordered_map> + +// We need a template typedef here. + +#define Unordered_set std::unordered_set +#define Unordered_map std::unordered_map +#define Unordered_multimap std::unordered_multimap + +#define reserve_unordered_map(map, n) ((map)->rehash(n)) + +#elif defined(HAVE_TR1_UNORDERED_SET) && defined(HAVE_TR1_UNORDERED_MAP) \ + && defined(HAVE_TR1_UNORDERED_MAP_REHASH) #include <tr1/unordered_set> #include <tr1/unordered_map> |