From 260ecdcec427146f760836092a040f957427760b Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 16 Mar 2022 09:38:37 -0700 Subject: objcopy --weaken-symbol: apply to STB_GNU_UNIQUE symbols PR binutils/28926 * objcopy.c (filter_symbols): Apply weaken to STB_GNU_UNIQUE symbols * NEWS: Mention feature. * testsuite/binutils-all/objcopy.exp (objcopy_test_symbol_manipulation): New test. * testsuite/binutils-all/weaken-gnu-unique.s: New. --- binutils/objcopy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'binutils/objcopy.c') diff --git a/binutils/objcopy.c b/binutils/objcopy.c index d53aa5c..aaa5aa9 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1681,11 +1681,11 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms, if (keep) { - if (((flags & BSF_GLOBAL) != 0 + if (((flags & (BSF_GLOBAL | BSF_GNU_UNIQUE)) || undefined) && (weaken || is_specified_symbol (name, weaken_specific_htab))) { - sym->flags &= ~ BSF_GLOBAL; + sym->flags &= ~ (BSF_GLOBAL | BSF_GNU_UNIQUE); sym->flags |= BSF_WEAK; } -- cgit v1.1