* 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.
|
||
|---|---|---|
| .. | ||
| alpha.h | ||
| apollo.h | ||
| arm.h | ||
| aux-coff.h | ||
| ChangeLog | ||
| ChangeLog-9103 | ||
| ecoff.h | ||
| external.h | ||
| go32exe.h | ||
| h8300.h | ||
| h8500.h | ||
| i386.h | ||
| i860.h | ||
| i960.h | ||
| ia64.h | ||
| internal.h | ||
| m68k.h | ||
| m88k.h | ||
| maxq.h | ||
| mcore.h | ||
| mips.h | ||
| mipspe.h | ||
| or32.h | ||
| pe.h | ||
| powerpc.h | ||
| rs6k64.h | ||
| rs6000.h | ||
| sh.h | ||
| sparc.h | ||
| sym.h | ||
| symconst.h | ||
| ti.h | ||
| tic4x.h | ||
| tic30.h | ||
| tic54x.h | ||
| tic80.h | ||
| w65.h | ||
| we32k.h | ||
| x86_64.h | ||
| xcoff.h | ||
| z8k.h | ||
| z80.h | ||