aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2000-06-29 23:04:29 +0000
committerHans-Peter Nilsson <hp@axis.com>2000-06-29 23:04:29 +0000
commit9d87310aac56eca31c4a481a478c241b79bb9447 (patch)
tree38292683fc6657b6a853d5148e8d8f8fe36c9fce /gas
parentdbddefbfe6363a029d205c8118dc822548bcad3f (diff)
downloadfsf-binutils-gdb-9d87310aac56eca31c4a481a478c241b79bb9447.zip
fsf-binutils-gdb-9d87310aac56eca31c4a481a478c241b79bb9447.tar.gz
fsf-binutils-gdb-9d87310aac56eca31c4a481a478c241b79bb9447.tar.bz2
* config/obj-aout.c (obj_aout_type): Do not ignore for undefined
symbols; create them.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/obj-aout.c27
2 files changed, 17 insertions, 15 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a039857..0a8aa03 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 29 21:30:00 2000 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/obj-aout.c (obj_aout_type): Do not ignore for undefined
+ symbols; create them.
+
2000-06-29 Mark Elbrecht <snowball3@bigfoot.com>
* write.c (set_segment_vma): New: Set vma and lma for a segment.
diff --git a/gas/config/obj-aout.c b/gas/config/obj-aout.c
index 1609077..2c7f5df 100644
--- a/gas/config/obj-aout.c
+++ b/gas/config/obj-aout.c
@@ -396,7 +396,7 @@ obj_aout_weak (ignore)
/* Handle .type. On {Net,Open}BSD, this is used to set the n_other field,
which is then apparently used when doing dynamic linking. Older
- versions ogas ignored the .type pseudo-op, so we also ignore it if
+ versions of gas ignored the .type pseudo-op, so we also ignore it if
we can't parse it. */
static void
@@ -409,31 +409,28 @@ obj_aout_type (ignore)
name = input_line_pointer;
c = get_symbol_end ();
- sym = symbol_find (name);
+ sym = symbol_find_or_make (name);
*input_line_pointer = c;
- if (sym != NULL)
+ SKIP_WHITESPACE ();
+ if (*input_line_pointer == ',')
{
+ ++input_line_pointer;
SKIP_WHITESPACE ();
- if (*input_line_pointer == ',')
+ if (*input_line_pointer == '@')
{
++input_line_pointer;
- SKIP_WHITESPACE ();
- if (*input_line_pointer == '@')
- {
- ++input_line_pointer;
- if (strncmp (input_line_pointer, "object", 6) == 0)
+ if (strncmp (input_line_pointer, "object", 6) == 0)
#ifdef BFD_ASSEMBLER
- aout_symbol (symbol_get_bfdsym (sym))->other = 1;
+ aout_symbol (symbol_get_bfdsym (sym))->other = 1;
#else
- S_SET_OTHER (sym, 1);
+ S_SET_OTHER (sym, 1);
#endif
- else if (strncmp (input_line_pointer, "function", 8) == 0)
+ else if (strncmp (input_line_pointer, "function", 8) == 0)
#ifdef BFD_ASSEMBLER
- aout_symbol (symbol_get_bfdsym (sym))->other = 2;
+ aout_symbol (symbol_get_bfdsym (sym))->other = 2;
#else
- S_SET_OTHER (sym, 2);
+ S_SET_OTHER (sym, 2);
#endif
- }
}
}