[9/21] Implicitly import undefined symbols

Nick Clifton nickc@redhat.com
Fri Mar 13 14:55:00 GMT 2009


Hi Richard,

> include/coff/
> 	* xcoff.h (XCOFF_CALLED, XCOFF_IMPORT): Update comments.
> 	(XCOFF_WAS_UNDEFINED): New flag.
> 	(xcoff_link_hash_table): Add an "rtld" field.
> 
> bfd/
> 	* coff-rs6000.c (xcoff_ppc_relocate_section): Report relocations
> 	against undefined symbols if the symbol's XCOFF_WAS_UNDEFINED
> 	flag is set.  Assert that all undefined symbols are either
> 	imported or defined by a dynamic object.
> 	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
> 	* xcofflink.c (xcoff_link_add_symbols): Extend function-symbol
> 	handling to all relocations.  Only set XCOFF_CALLED for function
> 	symbols.
> 	(xcoff_find_function): New function, split out from...
> 	(bfd_xcoff_export_symbol) ...here.
> 	(xcoff_set_import_path): New function, split out from...
> 	(bfd_xcoff_import_symbol): ...here.  Remove assertion for old
> 	meaning of XCOFF_CALLED.
> 	(xcoff_mark_symbol): If we mark an undefined and unimported
> 	symbol, find some way of defining it.  If the symbol is a function
> 	descriptor, fill in its definition automatically.  If the symbol
> 	is a function, mark its descriptor and allocate room for global
> 	linkage code.  Otherwise mark the symbol as implicitly imported.
> 	Move the code for creating function descriptors from...
> 	(xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to 
> 	check for symbols that were implicitly defined.
> 	(xcoff_mark): Don't count any dynamic relocations against
> 	function symbols.
> 	(bfd_xcoff_size_dynamic_sections): Save the rtld parameter
> 	in the xcoff link info.
> 	(xcoff_link_input_bfd): Remove handling of undefined and
> 	unexported symbols.
> 
> ld/
> 	* emultempl/aix.em (gld${EMULATION_NAME}_handle_option): Make
> 	-berok and -bernotok control link_info.unresolved_syms_in_objects
> 	and link_info.unresolved_syms_in_shared_libs instead of
> 	force_make_executable.
> 
> ld/testsuite/
> 	* ld-powerpc/aix-glink-1.ex, ld-powerpc/aix-glink-1.s,
> 	ld-powerpc/aix-glink-1-32.dd, ld-powerpc/aix-glink-1-64.dd,
> 	ld-powerpc/aix-glink-1-32.d, ld-powerpc/aix-glink-1-64.d: New tests.
> 	* ld-powerpc/aix52.exp: Run them.

Approved - please apply.

Cheers
   Nick



More information about the Binutils mailing list