From: Hans-Peter Nilsson Date: Thu, 29 Jun 2000 23:04:29 +0000 (+0000) Subject: * config/obj-aout.c (obj_aout_type): Do not ignore for undefined X-Git-Tag: readline-pre-41-import~78 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d87310aac56eca31c4a481a478c241b79bb9447;p=external%2Fbinutils.git * config/obj-aout.c (obj_aout_type): Do not ignore for undefined symbols; create them. --- 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 + + * config/obj-aout.c (obj_aout_type): Do not ignore for undefined + symbols; create them. + 2000-06-29 Mark Elbrecht * 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 - } } }