aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2012-02-12 15:47:17 +0000
committerIain Sandoe <iain@codesourcery.com>2012-02-12 15:47:17 +0000
commit8e43fc024d16859a34c2f2aa88b419e677373f88 (patch)
tree328d768f1be7dd96d4c248e185954ee35750dbf2 /gas
parentcce17ce070302bcb21068824b8e2526fab3e7837 (diff)
downloadbinutils-8e43fc024d16859a34c2f2aa88b419e677373f88.zip
binutils-8e43fc024d16859a34c2f2aa88b419e677373f88.tar.gz
binutils-8e43fc024d16859a34c2f2aa88b419e677373f88.tar.bz2
gas:
* config/obj-macho.c (obj_mach_o_indirect_symbol): Force promotion of any local symbol used as an indirect.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/obj-macho.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 757db70..d8a95ee 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-12 Iain Sandoe <idsandoe@googlemail.com>
+
+ * config/obj-macho.c (obj_mach_o_indirect_symbol): Force promotion of
+ any local symbol used as an indirect.
+
2012-02-10 Iain Sandoe <idsandoe@googlemail.com>
* config/obj-macho.c (obj_mach_o_make_or_get_sect): Always fill in
diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c
index c32398f..2a2e47d 100644
--- a/gas/config/obj-macho.c
+++ b/gas/config/obj-macho.c
@@ -1187,6 +1187,11 @@ obj_mach_o_indirect_symbol (int arg ATTRIBUTE_UNUSED)
}
*input_line_pointer = c;
+ /* The indirect symbols are validated after the symbol table is
+ frozen, we must make sure that if a local symbol is used as an
+ indirect, it is promoted to a 'real' one. Fetching the bfd sym
+ achieves this. */
+ symbol_get_bfdsym (sym);
isym = (obj_mach_o_indirect_sym *)
xmalloc (sizeof (obj_mach_o_indirect_sym));