diff options
author | mephi42 <mephi42@gmail.com> | 2018-08-21 16:34:56 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2018-08-21 16:34:56 +0100 |
commit | ae19acf3201ee0b921cde8e70e278fe123e82105 (patch) | |
tree | 2b6d74ffb969650d5bb65403a16a9fa6567e4200 /bfd | |
parent | c8455dc98666030e930cddd8178b1b4074749b04 (diff) | |
download | gdb-ae19acf3201ee0b921cde8e70e278fe123e82105.zip gdb-ae19acf3201ee0b921cde8e70e278fe123e82105.tar.gz gdb-ae19acf3201ee0b921cde8e70e278fe123e82105.tar.bz2 |
Fix running objcopy on Mach-O binaries.
PR binutils/23315
* mach-o.c (bfd_mach_o_mangle_symbols): Update n_type even if
data is already considered filled.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/mach-o.c | 9 |
2 files changed, 12 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2ff9f4a..3da70d6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2018-08-21 mephi42 <mephi42@gmail.com> + + PR binutils/23315 + * mach-o.c (bfd_mach_o_mangle_symbols): Update n_type even if + data is already considered filled. + 2018-08-21 Alan Modra <amodra@gmail.com> * elf64-ppc.c (HOW): Define. diff --git a/bfd/mach-o.c b/bfd/mach-o.c index ce72a3d..1b461f5 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -2497,11 +2497,14 @@ bfd_mach_o_mangle_symbols (bfd *abfd) } else s->n_type = BFD_MACH_O_N_SECT; - - if (s->symbol.flags & BSF_GLOBAL) - s->n_type |= BFD_MACH_O_N_EXT; } + /* Update external symbol bit in case objcopy changed it. */ + if (s->symbol.flags & BSF_GLOBAL) + s->n_type |= BFD_MACH_O_N_EXT; + else + s->n_type &= ~BFD_MACH_O_N_EXT; + /* Put the section index in, where required. */ if ((s->symbol.section != bfd_abs_section_ptr && s->symbol.section != bfd_und_section_ptr |