aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/obj-aout.c17
2 files changed, 19 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5d911f7..e90abb1 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/obj-aout.c b/gas/config/obj-aout.c
index 9b293fc..b43826f 100644
--- a/gas/config/obj-aout.c
+++ b/gas/config/obj-aout.c
@@ -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
{