Ian Lance Taylor [Sun, 12 Sep 1999 00:30:27 +0000 (00:30 +0000)]
1999-09-11 Donn Terry <donn@interix.com>
* peicode.h (coff_swap_scnhdr_in): If COFF_IMAGE_WITH_PE, the
get the overflow of the s_nlnno field from the s_nreloc field.
* peigen.c (_bfd_pei_swap_scnhdr_out): If doing a final link, swap
the s_nlnno overflow of the .text section into the s_nreloc
field.
Ian Lance Taylor [Sat, 11 Sep 1999 23:46:09 +0000 (23:46 +0000)]
1999-09-11 Donn Terry <donn@interix.com>
* config.bfd (i[3456]86-*-interix*): Set targ_cflags to
-DSTRICT_PE_FORMAT.
* coffcode.h (styp_to_sec_flags): Check STRICT_PE_FORMAT rather
than __INTERIX.
(coff_classify_symbol): Re-revert 1999-08-08 patch if
STRICT_PE_FORMAT.
Ian Lance Taylor [Sat, 11 Sep 1999 23:37:28 +0000 (23:37 +0000)]
1999-09-11 Donn Terry <donn@interix.com>
* libpei.h: New file, broken out of peicode.h.
* peigen.c: New file, broken out of peicode.h.
* peicode.h: A bunch of code moved out to libpei.h and peigen.c.
* configure.in: Add peigen.lo to list of files required for each
PE target.
* Makefile.am: Rebuild dependencies.
(BFD32_BACKENDS): Add peigen.lo.
(BFD32_BACKENDS_CFILES): Add peigen.c.
(SOURCE_HFILES): Add libpei.h.
* configure, Makefile.in: Rebuild.
Ian Lance Taylor [Sat, 11 Sep 1999 22:52:20 +0000 (22:52 +0000)]
1999-09-11 Donn Terry <donn@interix.com>
* peicode.h (coff_swap_scnhdr_in): Don't check for a special
section name of _BSS; check IMAGE_SCN_CNT_UNINITIALIZED_DATA
instead. Don't clear the s_paddr field for an uninitialized data
section.
Ian Lance Taylor [Sat, 11 Sep 1999 22:33:45 +0000 (22:33 +0000)]
1999-09-11 Donn Terry <donn@interix.com>
* coffcode.h (coff_mkobject_hook): If COFF_WITH_PE, set HAS_DEBUG
to the reverse of IMAGE_FILE_DEBUG_STRIPPED.
(coff_write_object_contents): Set IMAGE_FILE_DEBUG_STRIPPED if
there is no SEC_DEBUGGING section.
* peicode.h (pe_mkobject_hook): Set HAS_DEBUG to the reverse of
IMAGE_FILE_DEBUG_STRIPPED.
Ian Lance Taylor [Sat, 11 Sep 1999 22:04:16 +0000 (22:04 +0000)]
1999-09-11 Donn Terry <donn@interix.com>
* cofflink.c (_bfd_coff_link_input_bfd): When writing out a
symbol, switch on the class when determining whether to modify the
value. For PE, don't modify the value of a C_FCN symbol not named
.bf.
Jeff Law [Fri, 10 Sep 1999 14:05:36 +0000 (14:05 +0000)]
* elf-hppa.h (elf_hppa_final_link_relocate): Get the right
value for the stub address in a call through a stub.
Install the value for a local symbol directly into the DLT
instead of generating a reloc. Correctly handle FPTR64 relocs.
Jeff Law [Fri, 10 Sep 1999 06:30:37 +0000 (06:30 +0000)]
* emulparms/elf64hppa.sh (OTHER_READONLY_SECTIONS): Put stubs before
unwinders so that they are closer to the text section.
(OTHER_BSS_SECTIONS): Define.
(EXECUTABLE_SYMBOLS): Provide __SYSTEM_ID and _FPU_STATUS.
(INIT_START, INIT_END): Define.
(FINI_START, FINI_END): Define.
* scripttempl/elf.sc: Add support for INIT_START, INIT_END,
FINI_START, FINI_END and OTHER_BSS_SECTIONS.
Jeff Law [Thu, 9 Sep 1999 12:01:24 +0000 (12:01 +0000)]
Wed Sep 8 17:56:11 1999 Jeffrey A Law (law@cygnus.com)
* elf-hppa.h (elf_hppa_final_link): Set the value of __gp to the
address of the .PARISC.global section.
(elf_hppa_relocate_section): Lookup and pass the PA64 hash
table entry elf_hppa_final_link_relocate. Do not give a warning
for a reloc against an external symbol if it has a PA64 hash
table entry.
(elf_hppa_final_link_relocate): Significantly rework. Handle
DLTIND relocations. Compute the final value of the relocation
before passing the value of elf_hppa_relocate_insn.
(elf_hppa_relocate_insn): Revamp to handle just bit tiwiddling
relocation support. Handle DLTIND relocation requests just like
DLTREL relocation requests. Simplify branch handling.
1999-09-08 Ulrich Drepper <drepper@cygnus.com>
* elf-hppa.h (elf_hppa_relocate_section): Catch problems with
non-allocated section as done in i386 version.
(elf_hppa_final_link_relocate): Uncomment R_PARISC_14F in switch
statement since this is no know relocation.
Jeff Law [Wed, 8 Sep 1999 00:09:52 +0000 (00:09 +0000)]
* elf-hppa.h (elf_hppa_final_link_relocate): Handle DLTREL14R and
DLTREL21L relocs. Pass the output bfd to elf_hppa_relocate_insn.
Pass the relocate type rather than the insn format to
elf_hppa_relocate_insn.
(elf_hppa_relocate_insn): Make switch dependent on relocation type
rather than the opcode. Handle DLTREL21L and DLTREL14R relocs.
* coffcode.h (sort_by_secaddr): New static function if
COFF_IMAGE_WITH_PE.
(coff_compute_section_file_positions): If COFF_IMAGE_WITH_PE, sort
sections by VMA when assigning target_index values. Always set
virt_size.
* coffcode.h (coff_set_custom_section_alignment): Add const to
declaration to match definition.
(coff_write_object_contents): Don't set F_AR32W(R)? if
COFF_WITH_PE.
* coffcode.h (sec_to_styp_flags): Write separate COFF_WITH_PE
version. Move COFF_WITH_PE specific code to new version.
(stype_to_sec_flags): Likewise. Add section parameter.
* coffgen.c (make_a_section_from_file): Set target_index before
calling styp_to_sec_flags. Pass section to styp_to_sec_flags.
* libcoff.h: Rebuild.
* syms.c (stt): Add some PE/PEI section names.
(bfd_decode_symclass): Return 'w', not 'U', for a weak undefined
symbol.
(bfd_symbol_info): Check for 'w'.
Jeff Law [Mon, 6 Sep 1999 10:28:21 +0000 (10:28 +0000)]
* config/tc-hppa.c (pa_ip): Get strict/non-strict mode from the
candidate instruction. Require registers for register arguments
when in strict mode. Require assemble-time constants for
constants when in strict mode.
(pa_get_absolute_expression): Require a constant when in strict
mode.
* elf-bfd.h (ELF_LINK_NON_GOT_REF): Define.
* elflink.h (elf_adjust_dynamic_symbol): Copy REF_REGULAR_NONWEAK
and NON_GOT_REF from weak defined symbol to real symbol.
* elf32-i386.c (elf_i386_check_relocs): Set NON_GOT_REF.
(elf_i386_adjust_dynamic_symbol): If NON_GOT_REF is not set, don't
create a COPY reloc.
* elf32-sparc.c (elf32_sparc_check_relocs): Set NON_GOT_REF.
(elf32_sparc_adjust_dynamic_symbol): If NON_GOT_REF is not set,
don't create a COPY reloc.