1*fed2e50bSLionel Sambucdiff -rNU3 dist/gold/configure dist.mxm/gold/configure 2*fed2e50bSLionel Sambuc--- dist/gold/configure 2014-07-14 18:21:16.292364610 +0200 3*fed2e50bSLionel Sambuc+++ dist.mxm/gold/configure 2014-07-14 18:25:08.509642134 +0200 4*fed2e50bSLionel Sambuc@@ -7106,6 +7106,20 @@ 5*fed2e50bSLionel Sambuc ac_compiler_gnu=$ac_cv_cxx_compiler_gnu 6*fed2e50bSLionel Sambuc 7*fed2e50bSLionel Sambuc 8*fed2e50bSLionel Sambuc+for ac_header in unordered_set unordered_map 9*fed2e50bSLionel Sambuc+do : 10*fed2e50bSLionel Sambuc+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 11*fed2e50bSLionel Sambuc+ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" 12*fed2e50bSLionel Sambuc+eval as_val=\$$as_ac_Header 13*fed2e50bSLionel Sambuc+ if test "x$as_val" = x""yes; then : 14*fed2e50bSLionel Sambuc+ cat >>confdefs.h <<_ACEOF 15*fed2e50bSLionel Sambuc+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 16*fed2e50bSLionel Sambuc+_ACEOF 17*fed2e50bSLionel Sambuc+ 18*fed2e50bSLionel Sambuc+fi 19*fed2e50bSLionel Sambuc+ 20*fed2e50bSLionel Sambuc+done 21*fed2e50bSLionel Sambuc+ 22*fed2e50bSLionel Sambuc for ac_header in tr1/unordered_set tr1/unordered_map 23*fed2e50bSLionel Sambuc do : 24*fed2e50bSLionel Sambuc as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` 25*fed2e50bSLionel Sambucdiff -rNU3 dist/gold/configure.ac dist.mxm/gold/configure.ac 26*fed2e50bSLionel Sambuc--- dist/gold/configure.ac 2014-07-14 18:21:16.292364610 +0200 27*fed2e50bSLionel Sambuc+++ dist.mxm/gold/configure.ac 2014-07-14 18:15:57.376945885 +0200 28*fed2e50bSLionel Sambuc@@ -496,6 +496,7 @@ 29*fed2e50bSLionel Sambuc 30*fed2e50bSLionel Sambuc AC_LANG_PUSH(C++) 31*fed2e50bSLionel Sambuc 32*fed2e50bSLionel Sambuc+AC_CHECK_HEADERS(unordered_set unordered_map) 33*fed2e50bSLionel Sambuc AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map) 34*fed2e50bSLionel Sambuc AC_CHECK_HEADERS(ext/hash_map ext/hash_set) 35*fed2e50bSLionel Sambuc AC_CHECK_HEADERS(byteswap.h) 36*fed2e50bSLionel Sambucdiff -rNU3 dist/gold/gold.h dist.mxm/gold/gold.h 37*fed2e50bSLionel Sambuc--- dist/gold/gold.h 2012-11-09 09:21:28.000000000 +0100 38*fed2e50bSLionel Sambuc+++ dist.mxm/gold/gold.h 2014-07-14 18:18:04.885779352 +0200 39*fed2e50bSLionel Sambuc@@ -66,7 +66,20 @@ 40*fed2e50bSLionel Sambuc 41*fed2e50bSLionel Sambuc // Figure out how to get a hash set and a hash map. 42*fed2e50bSLionel Sambuc 43*fed2e50bSLionel Sambuc-#if defined(HAVE_TR1_UNORDERED_SET) && defined(HAVE_TR1_UNORDERED_MAP) \ 44*fed2e50bSLionel Sambuc+#if defined(HAVE_UNORDERED_SET) && defined(HAVE_UNORDERED_MAP) 45*fed2e50bSLionel Sambuc+ 46*fed2e50bSLionel Sambuc+#include <unordered_set> 47*fed2e50bSLionel Sambuc+#include <unordered_map> 48*fed2e50bSLionel Sambuc+ 49*fed2e50bSLionel Sambuc+// We need a template typedef here. 50*fed2e50bSLionel Sambuc+ 51*fed2e50bSLionel Sambuc+#define Unordered_set std::unordered_set 52*fed2e50bSLionel Sambuc+#define Unordered_map std::unordered_map 53*fed2e50bSLionel Sambuc+#define Unordered_multimap std::unordered_multimap 54*fed2e50bSLionel Sambuc+ 55*fed2e50bSLionel Sambuc+#define reserve_unordered_map(map, n) ((map)->rehash(n)) 56*fed2e50bSLionel Sambuc+ 57*fed2e50bSLionel Sambuc+#elif defined(HAVE_TR1_UNORDERED_SET) && defined(HAVE_TR1_UNORDERED_MAP) \ 58*fed2e50bSLionel Sambuc && defined(HAVE_TR1_UNORDERED_MAP_REHASH) 59*fed2e50bSLionel Sambuc 60*fed2e50bSLionel Sambuc #include <tr1/unordered_set> 61*fed2e50bSLionel Sambucdiff -rNU3 dist/gold/stringpool.cc dist.mxm/gold/stringpool.cc 62*fed2e50bSLionel Sambuc--- dist/gold/stringpool.cc 2010-08-25 10:36:54.000000000 +0200 63*fed2e50bSLionel Sambuc+++ dist.mxm/gold/stringpool.cc 2014-07-14 18:19:48.650875718 +0200 64*fed2e50bSLionel Sambuc@@ -72,7 +72,10 @@ 65*fed2e50bSLionel Sambuc { 66*fed2e50bSLionel Sambuc this->key_to_offset_.reserve(n); 67*fed2e50bSLionel Sambuc 68*fed2e50bSLionel Sambuc-#if defined(HAVE_TR1_UNORDERED_MAP) 69*fed2e50bSLionel Sambuc+#if defined(HAVE_UNORDERED_MAP) 70*fed2e50bSLionel Sambuc+ this->string_set_.rehash(this->string_set_.size() + n); 71*fed2e50bSLionel Sambuc+ return; 72*fed2e50bSLionel Sambuc+#elif defined(HAVE_TR1_UNORDERED_MAP) 73*fed2e50bSLionel Sambuc // rehash() implementation is broken in gcc 4.0.3's stl 74*fed2e50bSLionel Sambuc //this->string_set_.rehash(this->string_set_.size() + n); 75*fed2e50bSLionel Sambuc //return; 76*fed2e50bSLionel Sambuc@@ -499,7 +502,7 @@ 77*fed2e50bSLionel Sambuc void 78*fed2e50bSLionel Sambuc Stringpool_template<Stringpool_char>::print_stats(const char* name) const 79*fed2e50bSLionel Sambuc { 80*fed2e50bSLionel Sambuc-#if defined(HAVE_TR1_UNORDERED_MAP) || defined(HAVE_EXT_HASH_MAP) 81*fed2e50bSLionel Sambuc+#if defined(HAVE_UNORDERED_MAP) || defined(HAVE_TR1_UNORDERED_MAP) || defined(HAVE_EXT_HASH_MAP) 82*fed2e50bSLionel Sambuc fprintf(stderr, _("%s: %s entries: %zu; buckets: %zu\n"), 83*fed2e50bSLionel Sambuc program_name, name, this->string_set_.size(), 84*fed2e50bSLionel Sambuc this->string_set_.bucket_count()); 85*fed2e50bSLionel Sambucdiff -rNU3 dist/gold/config.in dist.mxm/gold/config.in 86*fed2e50bSLionel Sambuc--- dist/gold/config.in 2014-07-14 19:21:52.217425468 +0200 87*fed2e50bSLionel Sambuc+++ dist.mxm/gold/config.in 2014-07-14 20:08:52.208824229 +0200 88*fed2e50bSLionel Sambuc@@ -175,6 +175,12 @@ 89*fed2e50bSLionel Sambuc /* Define to 1 if you have the <unistd.h> header file. */ 90*fed2e50bSLionel Sambuc #undef HAVE_UNISTD_H 91*fed2e50bSLionel Sambuc 92*fed2e50bSLionel Sambuc+/* Define to 1 if you have the <unordered_map> header file. */ 93*fed2e50bSLionel Sambuc+#undef HAVE_UNORDERED_MAP 94*fed2e50bSLionel Sambuc+ 95*fed2e50bSLionel Sambuc+/* Define to 1 if you have the <unordered_set> header file. */ 96*fed2e50bSLionel Sambuc+#undef HAVE_UNORDERED_SET 97*fed2e50bSLionel Sambuc+ 98*fed2e50bSLionel Sambuc /* Define to 1 if you have the <windows.h> header file. */ 99*fed2e50bSLionel Sambuc #undef HAVE_WINDOWS_H 100*fed2e50bSLionel Sambuc 101*fed2e50bSLionel Sambucdiff -rNU3 dist/include/safe-ctype.h dist.mxm/include/safe-ctype.h 102*fed2e50bSLionel Sambuc--- dist/include/safe-ctype.h 2008-07-07 19:09:31.000000000 +0200 103*fed2e50bSLionel Sambuc+++ dist.mxm/include/safe-ctype.h 2014-07-15 10:49:44.583026808 +0200 104*fed2e50bSLionel Sambuc@@ -119,6 +119,7 @@ 105*fed2e50bSLionel Sambuc including another system header (for instance gnulib's stdint.h). 106*fed2e50bSLionel Sambuc So we include ctype.h here and then immediately redefine its macros. */ 107*fed2e50bSLionel Sambuc 108*fed2e50bSLionel Sambuc+#if !defined(__minix) || !defined(__clang__) 109*fed2e50bSLionel Sambuc #include <ctype.h> 110*fed2e50bSLionel Sambuc #undef isalpha 111*fed2e50bSLionel Sambuc #define isalpha(c) do_not_use_isalpha_with_safe_ctype 112*fed2e50bSLionel Sambuc@@ -145,6 +146,34 @@ 113*fed2e50bSLionel Sambuc #undef toupper 114*fed2e50bSLionel Sambuc #define toupper(c) do_not_use_toupper_with_safe_ctype 115*fed2e50bSLionel Sambuc #undef tolower 116*fed2e50bSLionel Sambuc-#define tolower(c) do_not_use_tolower_with_safe_ctype 117*fed2e50bSLionel Sambuc+#else 118*fed2e50bSLionel Sambuc+#include <ctype.h> 119*fed2e50bSLionel Sambuc+#undef isalpha 120*fed2e50bSLionel Sambuc+#define isalpha(c) ISALPHA(c) 121*fed2e50bSLionel Sambuc+#undef isalnum 122*fed2e50bSLionel Sambuc+#define isalnum(c) ISALNUM(c) 123*fed2e50bSLionel Sambuc+#undef iscntrl 124*fed2e50bSLionel Sambuc+#define iscntrl(c) ISCNTRL(c) 125*fed2e50bSLionel Sambuc+#undef isdigit 126*fed2e50bSLionel Sambuc+#define isdigit(c) ISDIGIT(c) 127*fed2e50bSLionel Sambuc+#undef isgraph 128*fed2e50bSLionel Sambuc+#define isgraph(c) ISGRAPH(c) 129*fed2e50bSLionel Sambuc+#undef islower 130*fed2e50bSLionel Sambuc+#define islower(c) ISLOWER(c) 131*fed2e50bSLionel Sambuc+#undef isprint 132*fed2e50bSLionel Sambuc+#define isprint(c) ISPRINT(c) 133*fed2e50bSLionel Sambuc+#undef ispunct 134*fed2e50bSLionel Sambuc+#define ispunct(c) ISPUNCT(c) 135*fed2e50bSLionel Sambuc+#undef isspace 136*fed2e50bSLionel Sambuc+#define isspace(c) ISSPACE(c) 137*fed2e50bSLionel Sambuc+#undef isupper 138*fed2e50bSLionel Sambuc+#define isupper(c) ISUPPER(c) 139*fed2e50bSLionel Sambuc+#undef isxdigit 140*fed2e50bSLionel Sambuc+#define isxdigit(c) ISXDIGIT(c) 141*fed2e50bSLionel Sambuc+#undef toupper 142*fed2e50bSLionel Sambuc+#define toupper(c) TOUPPER(c) 143*fed2e50bSLionel Sambuc+#undef tolower 144*fed2e50bSLionel Sambuc+#define tolower(c) TOLOWER(c) 145*fed2e50bSLionel Sambuc+#endif /* !defined(__minix) || !defined(__clang__) */ 146*fed2e50bSLionel Sambuc 147*fed2e50bSLionel Sambuc #endif /* SAFE_CTYPE_H */ 148