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/som.c | |
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/som.c')
-rw-r--r-- | bfd/som.c | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -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; |