[binutils-gdb] Fix running objcopy on Mach-O binaries.
Nick Clifton
nickc@sourceware.org
Tue Aug 21 15:35:00 GMT 2018
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ae19acf3201ee0b921cde8e70e278fe123e82105
commit ae19acf3201ee0b921cde8e70e278fe123e82105
Author: mephi42 <mephi42@gmail.com>
Date: Tue Aug 21 16:34:56 2018 +0100
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.
Diff:
---
bfd/ChangeLog | 6 ++++++
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
More information about the Binutils-cvs
mailing list