diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2000-06-29 23:04:29 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2000-06-29 23:04:29 +0000 |
commit | 9d87310aac56eca31c4a481a478c241b79bb9447 (patch) | |
tree | 38292683fc6657b6a853d5148e8d8f8fe36c9fce | |
parent | dbddefbfe6363a029d205c8118dc822548bcad3f (diff) | |
download | fsf-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.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/obj-aout.c | 27 |
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 - } } } |