gas:
authorIain Sandoe <iain@codesourcery.com>
Fri, 10 Feb 2012 13:12:55 +0000 (13:12 +0000)
committerIain Sandoe <iain@codesourcery.com>
Fri, 10 Feb 2012 13:12:55 +0000 (13:12 +0000)
* 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.

gas/ChangeLog
gas/config/obj-macho.c

index dc5da0413164b30894df78fdaf7f09ce2201376a..757db70e7691752e2f61db64585042c6aa90db1b 100644 (file)
@@ -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.
index f4706ab03ed6eee65595d313515bc89422e8be9f..c32398ffddd6e5501bd4f014148768b09af81184 100644 (file)
@@ -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)