From fd5c076a06d88dc53e56a17d43ea4ad5e27515a0 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 3 Mar 2021 15:15:23 +1030 Subject: [PATCH] PR27493, objcopy --weaken-symbol does not weaken undefined symbols PR 27493 * objcopy.c (filter_symbols): Apply --weaken to undefined symbols. * NEWS: Mention feature. --- binutils/ChangeLog | 6 ++++++ binutils/NEWS | 3 +++ binutils/objcopy.c | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 3aec667d16a..10ff1679a4e 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2021-03-03 Alan Modra + + PR 27493 + * objcopy.c (filter_symbols): Apply --weaken to undefined symbols. + * NEWS: Mention feature. + 2021-03-01 H.J. Lu PR binutils/27486 diff --git a/binutils/NEWS b/binutils/NEWS index d66944e95e0..461ddab6902 100644 --- a/binutils/NEWS +++ b/binutils/NEWS @@ -1,5 +1,8 @@ -*- text -*- +* objcopy --weaken, --weaken-symbol and --weaken-symbols now make undefined + symbols weak on targets that support weak symbols. + * Readelf and objdump can now display and use the contents of .debug_sup sections. diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 041aceaeefe..99e6cad72e5 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1673,7 +1673,8 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms, if (keep) { - if ((flags & BSF_GLOBAL) != 0 + if (((flags & BSF_GLOBAL) != 0 + || undefined) && (weaken || is_specified_symbol (name, weaken_specific_htab))) { sym->flags &= ~ BSF_GLOBAL; -- 2.30.2