• Richard Sandiford's avatar
    include/coff/ · b64232cc
    Richard Sandiford authored
    	* 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.
    b64232cc
bfd-in.h 32.8 KB