diff options
author | Catherine Moore <clm@redhat.com> | 2000-02-24 13:41:02 +0000 |
---|---|---|
committer | Catherine Moore <clm@redhat.com> | 2000-02-24 13:41:02 +0000 |
commit | ba20314ec2f75a571b7210bd65a98c313d917011 (patch) | |
tree | b68b43af84a82d4f5653d27982a1836b7e1f8f11 /bfd | |
parent | f5795b0849504dbcaa446d89721b9a3fb4731ff3 (diff) | |
download | gdb-ba20314ec2f75a571b7210bd65a98c313d917011.zip gdb-ba20314ec2f75a571b7210bd65a98c313d917011.tar.gz gdb-ba20314ec2f75a571b7210bd65a98c313d917011.tar.bz2 |
* som.c (som_misc_symbol_info): Add field
secondary_def.
(som_bfd_derive_misc_symbol_info): Initialize
secondary_def.
(som_build_and_write_symbol_table): Keep track
of secondary_def field.
(som_slurp_symbol_table): Set BSF_WEAK symbol flag
if secondary_def field is set.
(som_bfd_ar_write_symbol_stuff): Initialize
secondary_def.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 13 | ||||
-rw-r--r-- | bfd/som.c | 15 |
2 files changed, 27 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3534c54..32b94ce 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,16 @@ +2000-02-24 Catherine Moore <clm@cygnus.com> + + * som.c (som_misc_symbol_info): Add field + secondary_def. + (som_bfd_derive_misc_symbol_info): Initialize + secondary_def. + (som_build_and_write_symbol_table): Keep track + of secondary_def field. + (som_slurp_symbol_table): Set BSF_WEAK symbol flag + if secondary_def field is set. + (som_bfd_ar_write_symbol_stuff): Initialize + secondary_def. + 2000-02-23 Stephane Carrez <stcarrez@worldnet.fr> * dwarf2.c (read_address): Read 16-bits addresses. @@ -148,6 +148,7 @@ struct som_misc_symbol_info unsigned int symbol_info; unsigned int symbol_value; unsigned int priv_level; + unsigned int secondary_def; }; /* Forward declarations */ @@ -4052,6 +4053,13 @@ som_bfd_derive_misc_symbol_info (abfd, sym, info) /* Set the symbol's value. */ info->symbol_value = sym->value + sym->section->vma; + + /* The secondary_def field is for weak symbols. */ + if (sym->flags & BSF_WEAK) + info->secondary_def = true; + else + info->secondary_def = false; + } /* Build and write, in one big chunk, the entire symbol table for @@ -4095,6 +4103,7 @@ som_build_and_write_symbol_table (abfd) som_symtab[i].symbol_info = info.symbol_info; som_symtab[i].xleast = 3; som_symtab[i].symbol_value = info.symbol_value | info.priv_level; + som_symtab[i].secondary_def = info.secondary_def; } /* Everything is ready, seek to the right location and @@ -4382,6 +4391,10 @@ som_slurp_symbol_table (abfd) break; } + /* Check for a weak symbol. */ + if (bufp->secondary_def) + sym->symbol.flags |= BSF_WEAK; + /* Mark section symbols and symbols used by the debugger. Note $START$ is a magic code symbol, NOT a section symbol. */ if (sym->symbol.name[0] == '$' @@ -5924,7 +5937,7 @@ som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength) /* Fill in the lst symbol record. */ curr_lst_sym->hidden = 0; - curr_lst_sym->secondary_def = 0; + curr_lst_sym->secondary_def = info.secondary_def; curr_lst_sym->symbol_type = info.symbol_type; curr_lst_sym->symbol_scope = info.symbol_scope; curr_lst_sym->check_level = 0; |