diff options
author | Fangrui Song <i@maskray.me> | 2022-03-16 09:38:37 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2022-03-16 09:40:13 -0700 |
commit | 260ecdcec427146f760836092a040f957427760b (patch) | |
tree | d39a6d1d1fdadea58209cace8779773271d38dec /binutils/objcopy.c | |
parent | b1b9c4115ed04876813a40c0051636c0ad916993 (diff) | |
download | gdb-260ecdcec427146f760836092a040f957427760b.zip gdb-260ecdcec427146f760836092a040f957427760b.tar.gz gdb-260ecdcec427146f760836092a040f957427760b.tar.bz2 |
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.
Diffstat (limited to 'binutils/objcopy.c')
-rw-r--r-- | binutils/objcopy.c | 4 |
1 files changed, 2 insertions, 2 deletions
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; } |