This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Here is a patch for 64-bit PPC ELF. It's against a snapshot from Cygnus CVS of today (1999-12-14). ChangeLog: 1999-12-14 Linus Nordberg <linus@swox.se> * configure.in (powerpc-*-elf64): New target. bfd/ChangeLog: 1999-12-14 Linus Nordberg <linus@swox.se> * targets.c (bfd_target_vector): Add bfd_elf64_powerpc_vec, bfd_elf64_powerpcle_vec. * Makefile.am (BFD64_BACKENDS_CFILES): Add elf64-ppc.c. (BFD64_BACKENDS): Add elf64-ppc.lo. (elf64-ppc.lo): Add target. * configure.in (bfd_elf64_powerpc_vec, bfd_elf64_powerpcle_vec): New vectors. * config.bfd (powerpc-*-*elf64): New target. * elf64-ppc.c: New file. * elfxx-target.h (elf_backend_plt_has_contents): Define. (elf_backend_want_got_sym): Define. (elfNN_bed): Add elf_backend_plt_has_contents and elf_backend_want_got_sym. * elf-bfd.h (elf_backend_data): Add plt_has_contents and want_got_sym. * elflink.c (_bfd_elf_create_dynamic_sections): Set SEC_CODE flag for .plt section only if bed->plt_has_contents is true. (_bfd_elf_create_got_section): Define _GLOBAL_OFFSET_TABLE_ only if bed->want_got_sym. * reloc.c: Add 64-bit PPC relocs. Incorporated from Cygnus CVS: * elf.c (bfd_section_from_shdr): Avoid crashing on a bogus sh_link field. gas/ChangeLog: 1999-12-14 Torbjorn Granlund <tege@swox.com> * config/tc-ppc.c (md_apply_fix3): For OBJ_ELF, don't put addend in instruction field. Put the ELF64 specific relocs within #ifdef TARGET_ABI_PPC_ELF64. Replace haphazard code for determining reloc type with code reading operands->reloc field. Always check the we have a symbol before recording a reloc. Check ppc_is_toc_sym for operands that want BFD_RELOC_PPC_TOC16 1999-12-14 Linus Nordberg <linus@swox.se> * config/tc-ppc.c: Add macros for calculating ``high'', ``high adjusted'' and such. (SHLIB_MRELOCATABLE): Fix typo (was SHILB_MRELOCATABLE). (ppc_aixelf_info_no_stabx): New function. (ppc_aixelf_csect): New function. Switch to .data for all but `.text[*]', `*[PR]' and sections without braces. Set BSF_FUNCTION flag for `.SYM'. (ppc_aixelf_lglobl): New function. (ppc_aixelf_rename): New function. (ppc_aixelf_toc): New function. (ppc_aixelf_vbyte): New function. (ppc_aixelf_stabx): New function. (ppc_machine): New function. (md_pseudo_table): Use them. (ppc_aixelf_frob_symbol): New function. (lack_stabx_warn_done): New static variable to keep info about whether we have warned user about lacking STABX support. (ppc_aixelf_stabx): Use it. (ppc_aixelf_info_no_stabx): Likewise. (ppc_is_toc_sym): Check for section ``.toc'' instead of ``.got'' if 64-bit. Test TARGET_ABI_PPC_ELF64, not ppc_size for choosing elf64* or elf32*. (saix): Static variable indicating that we're reading AIX assembly syntax. (md_shortopts): Add `-S'. (md_parse_option): Handle `-Saix'. Set default size to 32. (md_show_usage): Ditto. (ppc_elf_suffix): Add @higher[a], @highest[a], @tocbase, @toc. (md_apply_fix3): Handle BFD_RELOC_PPC64_HIGHER with friends. Handle BFD_RELOC_64 and BFD_RELOC_64_PCREL. BFD_RELOC_HI16* now use the PPC_HI/HA macros. Parenthesize to avoid compiler warning. Don't require operand->insert == NULL to generate TOC16. (ppc_tc): If we're 64-bit, align to eight byte boundary and allocate 8 bytes. Test TARGET_ABI_PPC_ELF64, not ppc_size for choosing elf64* or elf32*. (ppc_elf_cons): Handle `TOC[tc0]' if aix syntax. (ppc_elf_target_format): New function. (ppc_elf_lcomm): Ignore third argument if AIX syntax. (md_begin): Override ppc_size here if TARGET_ABI_PPC_ELF64. (ppc_canonicalize_symbol_name): Use for OBJ_ELF as well. (ppc_symbol_new_hook): Likewise. (md_assemble): Don't complain over large addend for new HIGH types (HIGHER, HIGHER_S, HIGHEST, HIGHEST_S). * config/tc-ppc.h: Include config.h. Handle AIX style symbol class suffixes in ELF mode. (TARGET_FORMAT): Set to ppc_elf_target_format(). (TARGET_ABI_PPC_ELF64): Define if not already defined (by config.h). (tc_canonicalize_symbol_name): Define. (tc_symbol_new_hook): Ditto. (tc_frob_symbol): Ditto. (TC_SYMFIELD_TYPE): Ditto. (LEX_BR): Ditto. (ppc_tc_sy): New struct. (ELF_TC_SPECIAL_SECTIONS): Define for 64-bit PPC ELF. * configure.in: New target ppc-*-elf64. (ppc-*-elf64): Define TARGET_ABI_PPC_ELF64. * configure: Regenerate. * config.in: Ditto. Incorporated from Cygnus CVS: * config/obj-ecoff.c (obj_ecoff_set_ext): Change uses of bsym to use symbol_get_bfdsym instead. * config/tc-ppc.c (md_assemble): Likewise. include/elf/ChangeLog: 1999-12-14 Linus Nordberg <linus@swox.com> * ppc.h: Add 64-bit PPC relocs. ld/ChangeLog: 1999-12-14 Linus Nordberg <linus@swox.se> * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o. (eelf64ppc.c, eelf64lppc.c): Add make targets. * Makefile.in: Regenerate. * configure.tgt: (powerpc-*-elf64, powerpcle-*-elf64): New targets. * emulparams/elf64ppc.sh: New file. * emulparams/elf64lppc.sh: New file. * scripttempl/elf64ppc.sc: Ditto.
FSF-19991214+SWOX-19991213.diff.gz
-- Linus Nordberg Swox AB <http://www.swox.com/>
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |