* xcofflink.c (XCOFF_DESCRIPTOR): Define.
authorIan Lance Taylor <ian@airs.com>
Thu, 9 Nov 1995 18:08:56 +0000 (18:08 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 9 Nov 1995 18:08:56 +0000 (18:08 +0000)
commitee17481566f6be499901644030897308d18eb18f
treed3fca7da7786d67a29cb8e2f4f423bde89374886
parent0e829f1854e395e990eec2c077cf0aa6d05e6c0e
* xcofflink.c (XCOFF_DESCRIPTOR): Define.
(struct xcoff_link_hash_table): Add descriptor_section and
special_sections fields.
(_bfd_xcoff_bfd_link_hash_table_create): Initialize new fields.
(xcoff_link_add_symbols): Set linkage section alignment.  Create
descriptor section.  Check for magic symbol names (_text, etc.),
and record them in special_sections if found.  Set
XCOFF_DESCRIPTOR flag for a function descriptor, and set its
descriptor field to point back to the function code symbol.
(xcoff_sweep): Always mark the special descriptor_section.
(bfd_xcoff_export_symbol): Check whether the symbol might be a
function descriptor, and mark it if it is.
(bfd_xcoff_size_dynamic_sections): Add new special_sections
parameter, and fill it in.  Allocate space for the descriptor
section.
(xcoff_build_ldsyms): Set XCOFF_DEF_REGULAR flag when defining
global linkage code.  If an undefined function descriptor is
exported, arrange to define it.  Warn about any other undefined
exported symbol.
(_bfd_xcoff_bfd_final_link): Write out the descriptor section.
(xcoff_write_global_symbol): Create a function descriptor when
necessary.
* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
* bfd-in2.h: Rebuild.
bfd/ChangeLog
bfd/xcofflink.c