aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2012-02-10 13:12:55 +0000
committerIain Sandoe <iain@codesourcery.com>2012-02-10 13:12:55 +0000
commitfb4914b0e6e9d5fd99e4f5f3214591bf29da24cb (patch)
treef9c640827592978fd1cf5757f501d11e67e6af8f
parent09903f4b533109ab6d161a6c9b513b6f85aa8028 (diff)
downloadbinutils-fb4914b0e6e9d5fd99e4f5f3214591bf29da24cb.zip
binutils-fb4914b0e6e9d5fd99e4f5f3214591bf29da24cb.tar.gz
binutils-fb4914b0e6e9d5fd99e4f5f3214591bf29da24cb.tar.bz2
gas:
* config/obj-macho.c (obj_mach_o_make_or_get_sect): Always fill in stub size when provided. (obj_mach_o_section): Flag that stub-size has been provided.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/obj-macho.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index dc5da04..757db70 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-10 Iain Sandoe <idsandoe@googlemail.com>
+
+ * config/obj-macho.c (obj_mach_o_make_or_get_sect): Always fill in
+ stub size when provided. (obj_mach_o_section): Flag that stub-size
+ has been provided.
+
2012-02-08 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (HLE_PREFIX): New.
diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c
index f4706ab..c32398f 100644
--- a/gas/config/obj-macho.c
+++ b/gas/config/obj-macho.c
@@ -161,6 +161,7 @@ obj_mach_o_get_section_names (char *seg, char *sec,
#define SECT_TYPE_SPECIFIED 0x0001
#define SECT_ATTR_SPECIFIED 0x0002
#define SECT_ALGN_SPECIFIED 0x0004
+#define SECT_STUB_SPECIFIED 0x0008
static segT
obj_mach_o_make_or_get_sect (char * segname, char * sectname,
@@ -250,7 +251,6 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
msect->align = secalign;
msect->flags = sectype | secattr;
- msect->reserved2 = stub_size;
if (sectype == BFD_MACH_O_S_ZEROFILL
|| sectype == BFD_MACH_O_S_GB_ZEROFILL)
@@ -263,6 +263,10 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
as_warn (_("Ignoring changed section attributes for %s"), name);
}
+ if (specified_mask & SECT_STUB_SPECIFIED)
+ /* At present, the stub size is not supplied from the BFD tables. */
+ msect->reserved2 = stub_size;
+
return sec;
}
@@ -396,6 +400,7 @@ obj_mach_o_section (int ignore ATTRIBUTE_UNUSED)
input_line_pointer++;
sizeof_stub = get_absolute_expression ();
+ specified_mask |= SECT_STUB_SPECIFIED;
}
else if ((specified_mask & SECT_ATTR_SPECIFIED)
&& sectype == BFD_MACH_O_S_SYMBOL_STUBS)