From 5e9091dab8858b25210a91d22fbbbfdee9c969ad Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 5 Sep 2023 12:28:31 -0700 Subject: [PATCH] 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. gold/ * output.cc: Include . (Output_section::add_merge_input_section): Use char16_t and char32_t for 2- and 4-byte entry size, respectively. * stringpool.cc: Include . (Stringpool_template): Explicitly instantiate for char16_t, char32_t instead of uint16_t, uint32_t. * merge.cc (Output_merge_string): Likewise. --- gold/ChangeLog | 14 ++++++++++++++ gold/merge.cc | 4 ++-- gold/output.cc | 5 +++-- gold/stringpool.cc | 5 +++-- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index 93a1125cfed..54fb1c16e17 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,17 @@ +2023-09-05 Roland McGrath + + 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. + * output.cc: Include . + (Output_section::add_merge_input_section): Use char16_t and + char32_t for 2- and 4-byte entry size, respectively. + * stringpool.cc: Include . + (Stringpool_template): Explicitly instantiate for char16_t, + char32_t instead of uint16_t, uint32_t. + * merge.cc (Output_merge_string): Likewise. + 2023-07-03 Nick Clifton * po/gold.pot: Regenerate. 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. -- 2.30.2