Hello, This patch has started causing errors in our builds, using GCC 4.8.5. This is affecting our cross builds of these targets: aarch64_be_none_linux_gnu aarch64_none_linux_gnu arm_none_linux_gnueabi arm_none_linux_gnueabihf The errors are: /…/src/binutils-gdb/gold/merge.cc:668:27: error: ‘char16_t’ was not declared in this scope class Output_merge_string; ^ /…/src/binutils-gdb/gold/merge.cc:668:35: error: template argument 1 is invalid class Output_merge_string; ^ /…/src/binutils-gdb/gold/merge.cc:671:27: error: ‘char32_t’ was not declared in this scope class Output_merge_string; ^ /…/src/binutils-gdb/gold/merge.cc:671:35: error: template argument 1 is invalid class Output_merge_string; ^ Kind regards, Vasee ________________________________ From: Binutils on behalf of Roland McGrath via Binutils Sent: 05 September 2023 20:35 To: Binutils Subject: [PATCH users/roland/gold-charnn] gold: Use char16_t, char32_t instead of uint16_t, uint32_t as character types The std::basic_string template type is only specified for instantiations using character types. Newer (LLVM) libc++ implementations no longer allow non-character integer types to be used. Ok for trunk? Thanks, Roland diff --git a/gold/merge.cc b/gold/merge.cc index c12efc9905e..ce31a792443 100644 --- a/gold/merge.cc +++ b/gold/merge.cc @@ -665,10 +665,10 @@ template class Output_merge_string; template -class Output_merge_string; +class Output_merge_string; template -class Output_merge_string; +class Output_merge_string; #if defined(HAVE_TARGET_32_LITTLE) || defined(HAVE_TARGET_32_BIG) template diff --git a/gold/output.cc b/gold/output.cc index a1978eb5f32..6053e4db33d 100644 --- a/gold/output.cc +++ b/gold/output.cc @@ -29,6 +29,7 @@ #include #include #include +#include #ifdef HAVE_SYS_MMAN_H #include @@ -2706,10 +2707,10 @@ Output_section::add_merge_input_section(Relobj* object, unsigned int shndx, pomb = new Output_merge_string(addralign); break; case 2: - pomb = new Output_merge_string(addralign); + pomb = new Output_merge_string(addralign); break; case 4: - pomb = new Output_merge_string(addralign); + pomb = new Output_merge_string(addralign); break; default: return false; diff --git a/gold/stringpool.cc b/gold/stringpool.cc index a2cd44d5244..b5ac1dd34ca 100644 --- a/gold/stringpool.cc +++ b/gold/stringpool.cc @@ -25,6 +25,7 @@ #include #include #include +#include #include "output.h" #include "parameters.h" @@ -527,9 +528,9 @@ template class Stringpool_template; template -class Stringpool_template; +class Stringpool_template; template -class Stringpool_template; +class Stringpool_template; } // End namespace gold.