newlib/include/elf
Joern Rennecke 1def00e433 Fix sh-elf linker relaxation:
gcc:
	* config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
	subtarget_asm_isa_spec.
	(SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
	(ASM_SPEC): Define as SH_ASM_SPEC.
	(SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
	Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
	* config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
	(SUBTARGET_ASM_ISA_SPEC): Undef / define.
gcc/testsuite:
	gcc.dg/sh-relax.c: New test.

include/elf:
	* sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
	and SH2E & SH4 merge to SH4, not SH2E.

gas:
	* config/tc-sh.c (sh_dsp): Replace with preset_target_arch.
	(md_begin): Use preset_target_arch.
	(md_longopts): Make isa option unconditional.
	(md_parse_option): Make OPTION_DSP and OPTION_ISA sh4 / any
	set preset_target_arch.
	(md_apply_fix3): If BFD_ASSEMBLER, adjust SWITCH_TABLE fixups
	by -S_GET_VALUE  (fixP->fx_subsy).
	(tc_gen_reloc): For SWITCH_TABLE fixups, the symbol is fixp->fx_subsy,
	and the addend is 0.
	Adjust addend of R_SH_IND12W relocations by fixp->fx_offset - 4.
	* config/tc-sh.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define.

bfd:
	elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
	relocation (no special function), and make it non-partial_inplace.
	(sh_elf_relax_section): When creating a bsr, use a consistent value
	no matter if the symbol is extern or not;  set addend to -4.
	Don't swap load / non-load instructions for SH4.
	(sh_elf_relax_delete_bytes): In R_SH_IND12W case, check the offset
	rather than if the symbol is external to determine if adjusting the
	offset makes sense.  Adjust the addend too if appropriate.
	(sh_elf_relocate_section): In R_SH_IND12W, don't fiddle with the
	relocation.
2003-03-03 21:03:58 +00:00
..
ChangeLog Fix sh-elf linker relaxation: 2003-03-03 21:03:58 +00:00
alpha.h include/elf/ 2002-06-02 02:28:45 +00:00
arc.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
arm.h Add support for marking ARM ELF binaries as support the Cirrus EP9312 Maverick 2003-02-10 10:44:46 +00:00
avr.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
common.h * common.h: Formatting, typo fixes. 2003-01-17 01:32:46 +00:00
cris.h * cris.h: Add leading comment about PC-relative location. 2001-03-22 13:03:58 +00:00
d10v.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
d30v.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
dlx.h Add DLX target 2002-05-28 14:08:26 +00:00
dwarf.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
dwarf2.h Add support for displaying extension to DWARF2 used by Unified Parallel C 2002-12-10 17:48:27 +00:00
external.h Support for more than 64k ELF sections. 2001-12-17 00:52:34 +00:00
fr30.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
frv.h 2002-06-18 Dave Brolley <brolley@redhat.com> 2002-06-18 21:15:57 +00:00
h8.h * h8.h (EF_H8_MACH): New mask for encoded machine type. 2001-08-29 17:23:39 +00:00
hppa.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
i370.h * i370.h: Define relocs using reloc-macros.h. 2002-08-15 12:19:14 +00:00
i386.h bfd/ 2002-09-19 19:01:18 +00:00
i860.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
i960.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
ia64.h Add SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG and SHT_IA_64_PRIORITY_INIT. 2003-02-21 12:17:51 +00:00
internal.h include/elf/ChangeLog 2002-11-28 11:55:34 +00:00
ip2k.h Add IP2k support to BFD and LD 2002-07-17 14:15:50 +00:00
iq2000.h * dis-asm.h (print_insn_iq2000): Declare. 2003-01-03 18:03:18 +00:00
m32r.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
m68hc11.h * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define. 2002-12-01 12:16:21 +00:00
m68k.h bfd: 2002-02-13 18:14:48 +00:00
mcore.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
mips.h * mips.h (EF_MIPS_XGOT): Define. 2003-01-28 00:01:08 +00:00
mmix.h s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. Simplify 2002-11-30 08:39:45 +00:00
mn10200.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
mn10300.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
msp430.h Add support for msp430. 2002-12-30 19:25:12 +00:00
openrisc.h Add OpenRISC support 2001-04-24 15:08:16 +00:00
or32.h Add support for OpenRISC 32-bit embedded processor 2002-01-31 17:33:03 +00:00
pj.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
ppc.h * ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc. 2003-02-18 06:03:41 +00:00
ppc64.h * ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC. 2003-02-18 12:52:55 +00:00
reloc-macros.h Fix typos in ChangeLogs; add coff/external.h; fix copyright dates 2001-03-14 02:27:44 +00:00
s390.h * s390.h: Add s390 TLS relocations. 2003-01-24 17:15:29 +00:00
sh.h Fix sh-elf linker relaxation: 2003-03-03 21:03:58 +00:00
sparc.h bfd/ 2003-01-24 23:44:45 +00:00
v850.h Add linker relaxation to v850 toolchain 2002-08-29 06:49:35 +00:00
vax.h include/elf: 2002-07-01 16:43:38 +00:00
x86-64.h bfd/ 2002-09-27 19:29:16 +00:00
xstormy16.h * xstormy16.h: Add XSTORMY16_12. 2002-12-20 21:13:42 +00:00