gas:
authorIain Sandoe <iain@codesourcery.com>
Mon, 20 Feb 2012 19:44:40 +0000 (19:44 +0000)
committerIain Sandoe <iain@codesourcery.com>
Mon, 20 Feb 2012 19:44:40 +0000 (19:44 +0000)
* config/obj-macho.c (obj_mach_o_make_or_get_sect): In the absence of
canonical information, try to determine CODE and DEBUG section flags
from the mach-o section data.

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

index dbafd58..d6d30c1 100644 (file)
@@ -1,3 +1,9 @@
+2012-02-20  Iain Sandoe  <idsandoe@googlemail.com>
+
+       * config/obj-macho.c (obj_mach_o_make_or_get_sect): In the absence of
+       canonical information, try to determine CODE and DEBUG section flags
+       from the mach-o section data.
+
 2012-02-20  Nick Clifton  <nickc@redhat.com>
 
        * cgen.c (gas_cgen_parse_operand): Do not set BSF_RELC flag on
index 2a2e47d..b0ef741 100644 (file)
@@ -240,6 +240,18 @@ obj_mach_o_make_or_get_sect (char * segname, char * sectname,
 
   if (oldflags == SEC_NO_FLAGS)
     {
+      /* In the absence of canonical information, try to determine CODE and
+        DEBUG section flags from the mach-o section data.  */
+      if (flags == SEC_NO_FLAGS
+         && (specified_mask & SECT_ATTR_SPECIFIED)
+         && (secattr & BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS))
+       flags |= SEC_CODE;
+      
+      if (flags == SEC_NO_FLAGS
+         && (specified_mask & SECT_ATTR_SPECIFIED)
+         && (secattr & BFD_MACH_O_S_ATTR_DEBUG))
+       flags |= SEC_DEBUGGING;
+
       /* New, so just use the defaults or what's specified.  */
       if (! bfd_set_section_flags (stdoutput, sec, flags))
        as_warn (_("failed to set flags for \"%s\": %s"),