include/coff/
commit657c135ae73f78f804caffd4216c7dd6ed83232c
authorRichard Sandiford <rsandifo@nildram.co.uk>
Sat, 14 Mar 2009 09:35:46 +0000 (14 09:35 +0000)
committerRichard Sandiford <rsandifo@nildram.co.uk>
Sat, 14 Mar 2009 09:35:46 +0000 (14 09:35 +0000)
treee37570c2ab4a32c3e13d1999e3516e61b25d4ce7
parent2bc16fa118ab4f519b21489539c048b4f3c475ec
include/coff/
* xcoff.h (XCOFF_EXPALL, XCOFF_EXPFULL): New flags.
(xcoff_loader_info): Add auto_export_flags.

bfd/
* bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
bfd_boolean export_defineds parameter with an unsigned int
auto_export_flags parameter.
* bfd-in2.h: Regenerate.
* xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
split out from xcoff_build_ldsyms.
(xcoff_covered_by_expall_p): New function.
(xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
but with extra code to handle -bexpfull and -bexpall.
(xcoff_mark_auto_exports): New function.
(xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
a function should be automatically exported.
(bfd_xcoff_size_dynamic_sections): Replace the export_defineds
parameter with an auto_export_flags parameter.  Update ldinfo
accordingly.  Use xcoff_mark_auto_exports to mark all automatically-
exported symbols.

ld/
* emultempl/aix.em (auto_export_flags): New variable.
(explicit_auto_export_flags): Likewise.
(OPTION_EXPALL, OPTION_EXPFULL): New enum values.
(OPTION_NOEXPALL, OPTION_NOEXPFULL): Likewise.
(gld${EMULATION_NAME}_add_options): Add -bexpall, -bexpfull,
-bnoexpall and -bnoexpfull.
(gld${EMULATION_NAME}_handle_option): Handle them.
(gld${EMULATION_NAME}_before_allocation): Update the call to
bfd_size_dynamic_sections.

ld/testsuite/
* ld-powerpc/aix-export-1-all.dd, ld-powerpc/aix-export-1-full.dd,
ld-powerpc/aix-export-1a.s, ld-powerpc/aix-export-1b.s: New tests.
* ld-powerpc/aix52.exp: Run them.
14 files changed:
bfd/ChangeLog
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/xcofflink.c
include/coff/ChangeLog
include/coff/xcoff.h
ld/ChangeLog
ld/emultempl/aix.em
ld/testsuite/ChangeLog
ld/testsuite/ld-powerpc/aix-export-1-all.dd [new file with mode: 0644]
ld/testsuite/ld-powerpc/aix-export-1-full.dd [new file with mode: 0644]
ld/testsuite/ld-powerpc/aix-export-1a.s [new file with mode: 0644]
ld/testsuite/ld-powerpc/aix-export-1b.s [new file with mode: 0644]
ld/testsuite/ld-powerpc/aix52.exp