Adding symbols from an object file




Adding symbols from an object file - Untitled















Next: Adding symbols from an archive,
Previous: Differing file formats,
Up: Adding Symbols to the Hash Table



2.17.2.2 Adding symbols from an object file

When the _bfd_link_add_symbols routine is passed an object
file, it must add all externally visible symbols in that
object file to the hash table. The actual work of adding the
symbol to the hash table is normally handled by the function
_bfd_generic_link_add_one_symbol. The
_bfd_link_add_symbols routine is responsible for reading
all the symbols from the object file and passing the correct
information to _bfd_generic_link_add_one_symbol.

The _bfd_link_add_symbols routine should not use
bfd_canonicalize_symtab to read the symbols. The point of
providing this routine is to avoid the overhead of converting
the symbols into generic asymbol structures.

_bfd_generic_link_add_one_symbol handles the details of
combining common symbols, warning about multiple definitions,
and so forth. It takes arguments which describe the symbol to
add, notably symbol flags, a section, and an offset. The
symbol flags include such things as BSF_WEAK or
BSF_INDIRECT. The section is a section in the object
file, or something like bfd_und_section_ptr for an undefined
symbol or bfd_com_section_ptr for a common symbol.

If the _bfd_final_link routine is also going to need to
read the symbol information, the _bfd_link_add_symbols
routine should save it somewhere attached to the object file
BFD. However, the information should only be saved if the
keep_memory field of the info argument is TRUE, so
that the -no-keep-memory linker switch is effective.

The a.out function which adds symbols from an object file is
aout_link_add_object_symbols, and most of the interesting
work is in aout_link_add_symbols. The latter saves
pointers to the hash tables entries created by
_bfd_generic_link_add_one_symbol indexed by symbol number,
so that the _bfd_final_link routine does not have to call
the hash table lookup routine to locate the entry.





Wyszukiwarka

Podobne podstrony:
addingacomment
Adding symbols from an archive
AddingHeat
addingacomment
adding nocarry riddle
addingacomment
addingacomment
addingacomment
addingacomment
addingacomment
addingacomment
addingacomment
adding templates to reqpro*5437FE
2009 02 Shell Click Adding Graphic Elements to Your Scripts with Zenity and Kdialog
adding carry
addingacomment
addingacomment
addingacomment
addingacomment

więcej podobnych podstron