* config/obj-aout.c: Include aout/aout64.h.
authorIan Lance Taylor <ian@airs.com>
Wed, 21 Jul 1993 19:26:20 +0000 (19:26 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 21 Jul 1993 19:26:20 +0000 (19:26 +0000)
(obj_aout_frob_symbol): Set BSF_DEBUGGING for a constructor
symbol, so that BFD doesn't tamper with the type.

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

index 5d911f70fb59003dd1ae7f98873a3149be2993e3..e90abb12219ae52d161730dbafe69905d7ca1c9b 100644 (file)
@@ -1,5 +1,9 @@
 Wed Jul 21 12:47:51 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
+       * config/obj-aout.c: Include aout/aout64.h.
+       (obj_aout_frob_symbol): Set BSF_DEBUGGING for a constructor
+       symbol, so that BFD doesn't tamper with the type.
+
        * read.c (read_a_source_file): If NO_PSEUDO_DOT is defined, look
        up opcodes as pseudo-ops even if they don't start with '.'.
        * config/tc-m88k.h (NO_PSEUDO_DOT): Define.
index 9b293fc2aa6538aaac210fa74e79f8c03b437b8b..b43826fc0156c5cfeff959a7e3009ef3f01b5fe4 100644 (file)
@@ -19,6 +19,7 @@ to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
 
 #include "as.h"
 #include "aout/stab_gnu.h"
+#include "aout/aout64.h"
 #include "obstack.h"
 
 #ifndef BFD_ASSEMBLER
@@ -114,13 +115,25 @@ obj_aout_frob_symbol (sym, punt)
   sec = sym->bsym->section;
 
   /* Only frob simple symbols this way right now.  */
-  if (! (type & ~0x1f))
+  if (! (type & ~ (N_TYPE | N_EXT)))
     {
       if (sec == &bfd_abs_section
          || sec == &bfd_und_section)
        return;
       if (flags & BSF_EXPORT)
-       type |= 1;
+       type |= N_EXT;
+
+      /* Set the debugging flag for constructor symbols so that BFD
+        leaves them alone.  */
+      switch (type & N_TYPE)
+       {
+       case N_SETA:
+       case N_SETT:
+       case N_SETD:
+       case N_SETB:
+         sym->bsym->flags |= BSF_DEBUGGING;
+         break;
+       }
     }
   else
     {