Commit graph

1038 commits

Author SHA1 Message Date
Jakub Jelinek
7e976ae46d * config.bfd: Handle sparcv*-*-linux-* the same as sparc-*-linux-*.
Change sparc64-*-linux-* to sparc64*-*-linux-*.

	* configure.host: Handle sparcv*-*-linux-* the same as
	sparc-*-linux-*.  Change sparc64-*-linux-* to sparc64*-*-linux-*.

	* ld-sparc/tlssunnopic32.dd: Fix up #target.
	* ld-sparc/tlssunnopic32.rd: Likewise.
	* ld-sparc/tlssunnopic32.sd: Likewise.
	* ld-sparc/tlssunnopic64.dd: Likewise.
	* ld-sparc/tlssunnopic64.rd: Likewise.
	* ld-sparc/tlssunnopic64.sd: Likewise.
2007-08-17 22:00:11 +00:00
Richard Sandiford
3935e1af80 ld/testsuite/
* lib/ld-lib.exp (run_dump_test): Allow [big_or_little_endian]
	to appear in assembler and linker options.
	* ld-mips-elf/vxworks1-static.d (ld): Add [big_or_little_endian].
2007-08-17 13:22:44 +00:00
Alan Modra
ea9c645141 * ld-srec/srec.exp: Always pass "-G 0". Remove all powerpc
xfails.
2007-08-16 13:51:27 +00:00
H.J. Lu
a3fadc9a17 bfd/
2007-08-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4918
	* elf32-i386.c (elf_i386_relocate_section): Allow R_386_PC32
	on ___tls_get_addr for GD->LE/LD->LE transitions when not
	building shared library.

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Allow
	R_X86_64_PC32 on __tls_get_addr for GD->LE/LD->LE transitions
	when not building shared library.

ld/testsuite/

2007-08-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4918
	* ld-i386/i386.exp (i386tests): Add tlsgd1 and tlsld1 tests.
	* ld-x86-64/x86-64.exp (x86_64tests): Likewise.

	* ld-i386/tlsgd1.dd: New file.
	* ld-i386/tlsgd1.s: Likewise.
	* ld-i386/tlsld1.dd: Likewise.
	* ld-i386/tlsld1.s: Likewise.
	* ld-x86-64/tlsgd1.dd: Likewise.
	* ld-x86-64/tlsgd1.s: Likewise.
	* ld-x86-64/tlsld1.dd: Likewise.
	* ld-x86-64/tlsld1.s: Likewise.
2007-08-14 19:48:21 +00:00
Richard Sandiford
8275b357ad bfd/
* elfxx-mips.c (mips_elf_link_hash_table): Add computed_got_sizes.
	(mips_elf_record_global_got_symbol): Increment local_gotno for
	each forced-local symbol.
	(_bfd_mips_elf_check_relocs): Pass forced-local call symbols to
	mips_elf_record_global_got_symbol for VxWorks too.
	(_bfd_mips_elf_always_size_sections): Set computed_got_sizes
	to true after computing the GOT size.
	(_bfd_mips_elf_hide_symbol): Increase local_gotno whenever
	got.offset == 1.  Only adjust global_gotno if computed_got_sizes.
	For VxWorks, add a local entry when hiding a symbol that needs a
	plt but has not been marked as needing a global got entry.
	(_bfd_mips_elf_link_hash_table_create): Set computed_got_sizes to
	false.

ld/testsuite/
	* ld-mips-elf/vxworks-forced-local-1.d,
	* ld-mips-elf/vxworks-forced-local-1.s,
	* ld-mips-elf/vxworks-forced-local-1.ver: New test.
	* ld-mips-elf/mips-elf.exp: Run it.
	* ld-mips-elf/tlsdyn-o32-2.d: Adjust for removal of unnecessary
	local GOT entry.
	* ld-mips-elf/tlsdyn-o32-2.got: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.got: Likewise.
	* ld-mips-elf/vxworks1-lib.dd: Likewise.
	* ld-mips-elf/vxworks1-lib.rd: Likewise.
2007-08-13 21:16:39 +00:00
Alan Modra
ac2df442ac bfd/
* elf64-ppc.c (ADDI_R12_R12, LD_R11_0R2, LD_R2_0R2): Define.
	Update stub comments.
	(build_plt_stub): Build two variants, one without "addis".
	(ppc_build_one_stub): Build stubs without "addis" if possible.
	(ppc_size_one_stub): Size new stubs.
ld/testsuite/
	* ld-powerpc/relbrlt.s (.text.pad2): Adjust space.
	* ld-powerpc/relbrlt.d: Update.
	* ld-powerpc/tlsexe.d: Update.
	* ld-powerpc/tlsexe.g: Update.
	* ld-powerpc/tlsexe.r: Update.
	* ld-powerpc/tlsexetoc.d: Update.
	* ld-powerpc/tlsexetoc.g: Update.
	* ld-powerpc/tlsexetoc.r: Update.
	* ld-powerpc/tlsso.d: Update.
	* ld-powerpc/tlsso.g: Update.
	* ld-powerpc/tlsso.r: Update.
	* ld-powerpc/tlstocso.d: Update.
	* ld-powerpc/tlstocso.g: Update.
2007-08-13 00:20:59 +00:00
H.J. Lu
745535d6c1 Mention PR ld/4877. 2007-08-10 12:41:33 +00:00
Nick Clifton
fdca102738 * ld-pe/pe.exp: Special diff file for x86_64-mingw target.
* ld-pe/secrel_64.d: New.
2007-08-06 14:41:51 +00:00
Daniel Jacobowitz
55231b6cd8 * ld-srec/srec.exp: XFAIL for powerpc*-*-*. 2007-08-03 12:53:47 +00:00
Adam Nemet
43ec5bc0d7 * ld-mips-elf/reloc-4.s, ld-mips-elf/reloc-4.d,
ld-mips-elf/reloc-5.s, ld-mips-elf/reloc-5.d: New tests.
	* ld-mips-elf/mips-elf.exp: Invoke them.
2007-08-01 17:41:30 +00:00
Alan Modra
48f2ff543d ld/
* ldlang.c (lang_insert_orphan): When searching through linker
	script to place an orphan, don't stop on statements that appear
	outside of SECTIONS.
	* emultempl/elf32.em (output_rel_find): Prefer read-only alloc
	sections over read/write alloc sections.
ld/testsuite/
	* ld-elf/weak-dyn-1.rd: Adjust.
2007-07-29 12:33:38 +00:00
Daniel Jacobowitz
f91c3144f9 * ld-cdtest/cdtest-foo.cc (strncpy): Fix parameter name. 2007-07-25 21:30:59 +00:00
Nick Clifton
94226e8246 * ld-arm/arm-elf.exp: Move EABI attribute tests into EABI only section. 2007-07-24 12:45:58 +00:00
Richard Sandiford
a26587bab5 bfd/
* elflink.c (_bfd_elf_fix_symbol_flags): Only assert the type
	of weakdef->root.type if weakdef has no regular definition.

ld/testsuite/
	* ld-elf/weak-dyn-1a.s, ld-elf/weak-dyn-1b.s, ld-elf/weak-dyn-1.ld,
	* ld-elf/weak-dyn-1.rd: New test.
	* ld-elf/elf.exp: Run it.
2007-07-23 09:56:19 +00:00
Nathan Sidwell
e0e1a5e8db * ld-scripts/assert.t: Tweak to avoid relying on empty's VMA being
zero.
2007-07-13 09:09:25 +00:00
H.J. Lu
7084059433 2007-07-10 H.J. Lu <hongjiu.lu@intel.com>
* ld-elfvers/vers.exp: Add tests for --defsym.

	* ld-elfvers/vers32.map: Likewise.
	* ld-elfvers/vers32a.c: Likewise.
	* ld-elfvers/vers32a.dsym: Likewise.
	* ld-elfvers/vers32a.ver: Likewise.
	* ld-elfvers/vers32b.c: Likewise.
	* ld-elfvers/vers32b.dsym: Likewise.
	* ld-elfvers/vers32b.ver: Likewise.
	* ld-elfvers/vers32c.dsym: Likewise.
	* ld-elfvers/vers32c.ver: Likewise.
	* ld-elfvers/vers32d.ver: Likewise.
2007-07-10 14:51:55 +00:00
Nick Clifton
f96b4a7b0f Update sources to GPLv3 2007-07-06 14:09:45 +00:00
Alan Modra
e4e4a5d1f4 * ld-powerpc/powerpc.exp: Disable for lynxos and nto. 2007-07-05 01:03:26 +00:00
Joseph Myers
3cfad14c4a bfd:
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Copy type from
	input attributes if value has been copied.

ld/testsuite:
	* ld-arm/attr-merge-2a.s, ld-arm/attr-merge-2b.s,
	ld-arm/attr-merge-2.attr: New.
	* ld-arm/arm-elf.exp (armelftests): Add new test.
2007-07-03 15:21:30 +00:00
Nathan Sidwell
82c01eb610 * ld-scripts/alignof.exp: Skip on non-elf 2007-07-02 15:56:46 +00:00
Joseph Myers
34c8bcbae2 bfd:
* elf32-ppc.c (ppc_elf_merge_obj_attributes): New.
	(ppc_elf_merge_private_bfd_data): Call it.

binutils:
	* readelf.c (display_power_gnu_attribute, process_power_specific):
	New.
	(process_arch_specific): Call process_power_specific.

include/elf:
	* ppc.h (Tag_GNU_Power_ABI_FP): Define.

ld/testsuite:
	* ld-powerpc/attr-gnu-4-0.s, ld-powerpc/attr-gnu-4-00.d,
	ld-powerpc/attr-gnu-4-01.d, ld-powerpc/attr-gnu-4-02.d,
	ld-powerpc/attr-gnu-4-1.s, ld-powerpc/attr-gnu-4-10.d,
	ld-powerpc/attr-gnu-4-11.d, ld-powerpc/attr-gnu-4-12.d,
	ld-powerpc/attr-gnu-4-13.d, ld-powerpc/attr-gnu-4-2.s,
	ld-powerpc/attr-gnu-4-20.d, ld-powerpc/attr-gnu-4-21.d,
	ld-powerpc/attr-gnu-4-22.d, ld-powerpc/attr-gnu-4-3.s,
	ld-powerpc/attr-gnu-4-31.d: New.
	* ld-powerpc/powerpc.exp: Run these new tests.
2007-06-30 00:03:40 +00:00
Joseph Myers
2cf19d5cb9 bfd:
* elfxx-mips.c (mips_elf_merge_obj_attributes): New.
	(_bfd_mips_elf_merge_private_bfd_data): Call it.

binutils:
	* readelf.c (display_mips_gnu_attribute): New.
	(process_mips_specific): Call process_attributes.

include/elf:
	* mips.h (Tag_GNU_MIPS_ABI_FP): Define.

ld/testsuite:
	* ld-mips-elf/attr-gnu-4-0.s, ld-mips-elf/attr-gnu-4-00.d,
	ld-mips-elf/attr-gnu-4-01.d, ld-mips-elf/attr-gnu-4-02.d,
	ld-mips-elf/attr-gnu-4-03.d, ld-mips-elf/attr-gnu-4-1.s,
	ld-mips-elf/attr-gnu-4-10.d, ld-mips-elf/attr-gnu-4-11.d,
	ld-mips-elf/attr-gnu-4-12.d, ld-mips-elf/attr-gnu-4-13.d,
	ld-mips-elf/attr-gnu-4-14.d, ld-mips-elf/attr-gnu-4-2.s,
	ld-mips-elf/attr-gnu-4-20.d, ld-mips-elf/attr-gnu-4-21.d,
	ld-mips-elf/attr-gnu-4-22.d, ld-mips-elf/attr-gnu-4-23.d,
	ld-mips-elf/attr-gnu-4-3.s, ld-mips-elf/attr-gnu-4-30.d,
	ld-mips-elf/attr-gnu-4-31.d, ld-mips-elf/attr-gnu-4-32.d,
	ld-mips-elf/attr-gnu-4-33.d, ld-mips-elf/attr-gnu-4-4.s,
	ld-mips-elf/attr-gnu-4-41.d: New.
	* ld-mips-elf/mips-elf.exp: Run these new tests.
2007-06-29 16:41:32 +00:00
Paul Brook
5ab7998193 2007-06-29 Paul Brook <paul@codesourcery.com>
bfd/
	* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Suppress
	call veneers for call relocations against undefined symbols.
	(elf32_arm_final_link_relocate): Turn call to undefined symbol
	into a jump to the next instruction.

	ld/testuite/
	* ld-arm/arm-elf.exp (armelftests): Add callweak.
	* ld-arm/callweak.d: New test.
	* ld-arm/callweak.s: New test.
2007-06-29 15:05:47 +00:00
H.J. Lu
f403ca9371 2007-06-28 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4701
	* ld-elf/noload-2.d: New.
2007-06-29 03:10:53 +00:00
H.J. Lu
d431cc14f3 2007-06-29 H.J. Lu <hjl@gnu.org>
* ld-scripts/assert.t: Discard .reginfo sections.
2007-06-26 16:41:04 +00:00
Joseph Myers
3d3e6f9a7c bfd:
* elf32-arm.c (copy_eabi_attributes): Copy type of attributes.

ld/testsuite:
	* ld-arm/attr-merge.s, ld-arm/attr-merge.attr: New.
	* ld-arm/arm-elf.exp (armelftests): Add new test.
2007-06-26 13:55:04 +00:00
Richard Sandiford
b314ec0eae bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Allow local stubs
	to be used for calls from MIPS16 code.

gas/
	* config/tc-mips.h (TC_SYMFIELD_TYPE): New.
	* config/tc-mips.c (append_insn): Record which symbols have
	R_MIPS16_26 relocations against them.
	(mips_fix_adjustable): Don't reduce relocations against such symbols.

ld/testsuite/
	* ld-mips-elf/mips16-local-stubs-1.s,
	* ld-mips-elf/mips16-local-stubs-1.d: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2007-06-25 10:13:57 +00:00
H.J. Lu
293a012441 bfd/
2007-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4590
	* elfxx-ia64.c (sort_dyn_sym_info): Keep the valid got_offset
	when removing duplicated entries.
	(get_dyn_sym_info): Initialize the got_offset field to -1.
	Update call to sort_dyn_sym_info.
	(elfNN_ia64_relocate_section): Call sort_dyn_sym_info to sort
	array of addend and remove duplicates.

ld/testsuite/

2007-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4590
	* ld-ia64/merge1.d: New.
	* ld-ia64/merge1.s: Likewise.
	* ld-ia64/merge2.d: Likewise.
	* ld-ia64/merge2.s: Likewise.
	* ld-ia64/merge3.d: Likewise.
	* ld-ia64/merge3.s: Likewise.
	* ld-ia64/merge4.d: Likewise.
	* ld-ia64/merge4.s: Likewise.
	* ld-ia64/merge5.d: Likewise.
	* ld-ia64/merge5.s: Likewise.
2007-06-19 13:05:55 +00:00
Andreas Schwab
49e8a957c1 * ld-scripts/cross3.t: Add .opd section. 2007-06-18 18:53:45 +00:00
Nathan Sidwell
362c1d1a04 * ldlex.l, ldgram.y: Add ALIGNOF.
* ldexp.c (exp_print_token, foldname): Likewise.
	* ld.texinfo: Likewise.

	ld/testsuite/
	* ld-scripts/alignof.s: New.
	* ld-scripts/alignof.t: New
	* ld-scripts/alignof.exp: New.
2007-06-18 12:38:22 +00:00
Alan Modra
b7b949f5e9 Update. 2007-06-14 08:53:09 +00:00
Nathan Sidwell
8545d1a9dd * ldlex.l: ASSERT is recognized in SCRIPT env. NAMES cannot
contain commas in EXP env.
	* ldgram.y (extern_name_list): Push to EXP env, move body to ...
	(extern_name_list_body): ... here.
	(script_file, ifile_list): Reformat.
	(statement): Add ASSERT.
testsuite:
	* ld-scripts/assert.t: Add additional cases.
	* ld-scripts/extern.t, ld-scripts/extern.s,
	ld-scripts/extern.exp: New.
2007-05-24 09:24:09 +00:00
Paul Brook
91a5743d01 2007-05-22 Paul Brook <paul@codesourcery.com>
ld/testsuite/
	* ld-arm/arm-pic-veneer.d: Update expected output.
	* ld-arm/arm-call.d: Ditto.

	bfd/
	* elf32-arm.c (output_arch_syminfo): Replace plt_shndx and plt_offset
	with sec and sec_shndx.
	(elf32_arm_ouput_plt_map_sym): Use them.
	(elf32_arm_output_arch_local_syms): Output mapping symbols for
	interworking glue.
2007-05-22 17:17:53 +00:00
Paul Brook
e39ff52a3b 2007-05-22 Paul Brook <paul@codesourcery.com>
bunutils/
	* objdump.c (find_symbol_for_address): Merge section and target
	specific filtering code.

	ld/testsuite/
	* ld-arm-mixed-lib.d: Update expected output.
	* ld-arm/arm-app.d: Ditto.
	* ld-arm/mixed-app.d: Ditto.
	* ld-arm/arm-lib-plt32.d: Ditto.
	* ld-arm/arm-app-abs32.d: Ditto.
	* ld-arm/mixed-app-v5.d: Ditto.
	* ld-arm/armthumb-lib.d: Ditto.
	* ld-arm/arm-lib.d: Ditto.

	gas/testsuite/
	* gas/arm/backslash-at.d: Update expected output.
2007-05-22 15:05:12 +00:00
Richard Sandiford
7df428b116 binutils/
* objdump.c (disassemble_bytes): Ignore disassembler_needs_relocs
	for executables and shared libraries.

ld/testsuite/
	* ld-arm/emit-relocs1.d, ld-arm/emit-relocs1.s,
	* ld-arm/emit-relocs1-vxworks.d: New tests.
	* ld-arm/arm-elf.exp: Run them.
	* ld-arm/vxworks1.dd: Expect proper branch targets.
2007-05-21 06:36:01 +00:00
Joseph Myers
d5da93a2e1 * ld-elf/group.ld: Discard .reginfo. 2007-05-18 19:04:51 +00:00
Paul Brook
26079076f5 2007-05-18 Paul Brook <paul@codesourcery.com>
bfd/
	* elf32-arm.c (ARM2THUMB_V5_STATIC_GLUE_SIZE): Define.
	(a2t1v5_ldr_insn, a2t1v5_ldr_insn): New.
	(record_arm_to_thumb_glue): Add v5t non-pic glue.
	(elf32_arm_create_thumb_stub): Ditto.

	ld/testsuite/
	* ld-arm/arm-call.d: Update expected output.
2007-05-18 00:25:04 +00:00
Paul Brook
30618a1e61 2007-05-17 Paul Brook <paul@codesourcery.com>
ld/testsuite/
	* ld-elf/multibss1.s: Use %nobits instead of @nobits.
2007-05-17 16:54:38 +00:00
Nathan Sidwell
c210d850a7 * ld-m68k/merge-error-1a.d: Mismatch is an error.
* ld-m68k/merge-error-1b.d: Likewise.
	* ld-m68k/merge-error-1c.d: Likewise.
	* ld-m68k/merge-error-1d.d: Likewise.
	* ld-m68k/merge-error-1e.d: Likewise.
2007-05-17 13:11:42 +00:00
H.J. Lu
43edfb7fac 2007-05-15 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4504
	* ld-elf/data1.c: New file.
	* ld-elf/data1.h: Likewise.
	* ld-elf/dynbss1.c: Likewise.
	* ld-elf/pass.out: Likewise.

	* ld-elf/shared.exp (build_tests): Add "Build libdata1.so".
	(run_tests): Add "Run with libdata1.so".
2007-05-15 13:57:03 +00:00
Richard Sandiford
e68ed250e8 ld/testsuite/
* ld-arm/vxworks1.ld: Swap .bss and .data.
	* ld-arm/vxworks1-lib.rd: Update accordingly.
	* ld-arm/vxworks1-lib.td: New test.
	* ld-arm/arm-elf.exp: Run it.

	* ld-i386/vxworks1.ld: Swap .bss and .data.
	* ld-i386/vxworks1-lib.rd: Update accordingly.
	* ld-i386/vxworks1-lib.td: New test.
	* ld-i386/i386.exp: Run it.

	* ld-mips-elf/vxworks1.ld: Swap .bss and .data.
	* ld-mips-elf/vxworks1-lib.rd: Update accordingly.
	* ld-mips-elf/vxworks1.rd: Likewise.

	* ld-powerpc/vxworks1.ld: Swap .bss and .data.
	* ld-powerpc/vxworks1-lib.rd: Update accordingly.
	* ld-powerpc/vxworks1-lib.td: New test.
	* ld-powerpc/powerpc.exp: Run it.

	* ld-sh/vxworks1.ld: Swap .bss and .data.
	* ld-sh/vxworks1-lib.rd: Update accordingly.
	* ld-sh/vxworks1-lib.td: New test.
	* ld-sh/sh-vxworks.exp: Run it.

	* ld-sparc/vxworks1.ld: Swap .bss and .data.
	* ld-sparc/vxworks1-lib.rd: Update accordingly.
	* ld-sparc/vxworks1-lib.td: New test.
	* ld-sparc/sparc.exp: Run it.
2007-05-15 12:22:34 +00:00
Richard Sandiford
5c18022ec5 bfd/
* elfxx-mips.c (mips_elf_create_local_got_entry): Remove
	input_section argument.  Create .rela.dyn relocations against
	symbol 0 rather than the section symbol.
	(mips_elf_local_got_index): Remove input_section argument.
	Update call to mips_elf_create_local_got_entry.
	(mips_elf_got_page, mips_elf_got16_entry): Likewise.
	(mips_elf_calculate_relocation): Update calls to
	mips_elf_local_got_index, mips_elf_got16_entry and mips_elf_got_page.

ld/testsuite/
	* ld-mips-elf/vxworks1-lib.rd: Expect the GOT relocation to be
	against symbol 0.
2007-05-15 12:18:53 +00:00
Mark Shinwell
a00a1f35e1 bfd/
* elf32-arm.c (elf32_arm_final_link_relocate): Correctly
	handle the Thumb-2 JUMP19 relocation.

	ld/testsuite/
	* ld-arm/arm-elf.exp: Add jump19 testcase.
	* ld-arm/jump19.d: New.
	* ld-arm/jump19.s: New.
2007-05-15 09:54:09 +00:00
Richard Sandiford
224e2b28d4 ld/testsuite/
* ld-sh/vxworks1.dd: Remove hexadecimal prefixes from constant pool
	contents.  Consistently use "!" as the comment character.
	Consistently use _PROCEDURE_LINKAGE_TABLE_ in the first PLT entry.
	* ld-sh/vxworks1-le.dd: Likewise.
	* ld-sh/vxworks1-lib.dd: Likewise.
	* ld-sh/vxworks1-lib-le.dd: Likewise.
	* ld-sh/vxworks3.dd: Likewise.
	* ld-sh/vxworks3-le.dd: Likewise.
2007-05-14 12:07:11 +00:00
Andreas Schwab
b7b7fe3f8f * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern):
Handle null pattern.

testsuite/:
	* ld-elf/dl2a.list: New file.
	* ld-elf/shared.exp: Add test using --dynamic-list=dl2a.list.
2007-05-14 08:53:23 +00:00
Richard Sandiford
d3753b85b4 bfd/
* elf32-arm.c (elf32_arm_check_relocs): Don't create PLT entries
	for R_ARM_ABS12 relocs.
	(elf32_arm_finish_dynamic_symbol): Fix the loop that creates
	non-shared VxWorks PLT entries.

ld/testsuite/
	* ld-arm/vxworks1-lib.dd: Expect "push" instead of stmdb and
	"pop" instead of ldmia.  Don't require specific symbolic addresses
	for in-text addresses.  Expect data to be rendered as .words rather
	than disassembled.
	* ld-arm/vxworks1.dd: Likewise.
2007-05-10 17:00:03 +00:00
Richard Sandiford
8c252fd9c3 bfd/
* elf.c (assign_file_positions_for_load_sections): Use p_memsz
	rather than p_filesz to calculate the LMA of the end of a segment.

ld/testsuite/
	* ld-elf/multibss1.d, ld-elf/multibss1.s: New test.
2007-05-10 14:46:48 +00:00
Nathan Sidwell
353a0210f9 * ld-m68k/plt1-isac.d: New.
* ld-m68k/m68k.exp: Add it.
2007-04-27 16:24:18 +00:00
H.J. Lu
5d6696482a gas/testsuite/
2007-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/4430
	* gas/i386/amd.d: Updated.
	* gas/i386/immed32.d: Likewise.
	* gas/i386/intel.d: Likewise.
	* gas/i386/intel16.d: Likewise.
	* gas/i386/intelok.d: Likewise.
	* gas/i386/jump16.d: Likewise.
	* gas/i386/naked.d: Likewise.
	* gas/i386/opcode-suffix.d: Likewise.
	* gas/i386/opcode.d: Likewise.
	* gas/i386/prescott.d: Likewise.
	* gas/i386/ssemmx2.d: Likewise.
	* gas/i386/tlsd.d: Likewise.
	* gas/i386/tlspic.d: Likewise.
	* gas/i386/x86-64-addr32.d: Likewise.
	* gas/i386/x86-64-prescott.d: Likewise.
	* gas/i386/x86-64-rip.d: Likewise.
	* gas/i386/x86_64.d: Likewise.

ld/testsuite/

2007-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/4430
	* ld-i386/tlsbin.dd: Updated.
	* ld-i386/tlsbindesc.dd: Likewise
	* ld-i386/tlsdesc.dd: Likewise
	* ld-i386/tlsgdesc.dd: Likewise
	* ld-i386/tlsnopic.dd: Likewise
	* ld-i386/tlspic.dd: Likewise
	* ld-x86-64/tlsbin.dd: Likewise
	* ld-x86-64/tlsbindesc.dd: Likewise
	* ld-x86-64/tlsdesc.dd: Likewise
	* ld-x86-64/tlsgdesc.dd: Likewise
	* ld-x86-64/tlspic.dd: Likewise

opcodes/

2007-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/4430
	* i386-dis.c (print_displacement): New.
	(OP_E): Call print_displacement instead of print_operand_value
	to output displacement when either base or index exist.  Print
	the explicit zero displacement in 16bit mode.
2007-04-27 04:22:02 +00:00
Alan Modra
98f17e6e1c * ld-linkonce/x.s: Use .gcc_except_table instead of .eh_frame
to test that entry for deleted function is zeroed.  Add a
	somewhat closer to normal .eh_frame to test that fde for
	deleted function is removed.
	* ld-linkonce/y.s: Likewise.
	* ld-linkonce/zeroeh.ld: Place .gcc_except_table too.
	* ld-linkonce/zeroehl32.d: Update.
2007-04-24 04:29:03 +00:00
Richard Earnshaw
743b2a1e9e * ld-arm/arm-app-abs32.d: Convert to unified syntax.
* ld-arm/arm-app.d: Likewise.
	* ld-arm/arm-lib-plt32.d: Likewise.
	* ld-arm/arm-lib.d: Likewise.
	* ld-arm/arm-static-app.d: Likewise.
	* ld-arm/armthumb-lib.d: Likewise.
	* ld-arm/mixed-app-v5.d: Likewise.
	* ld-arm/mixed-app.d: Likewise.
	* ld-arm/mixed-lib.d: Likewise.
2007-04-21 19:44:40 +00:00
Alan Modra
152d792f47 ld/
* ldlang.h (enum section_type): Add overlay_section.
	* ldlang.c (lang_add_section): Handle flags for overlay_section
	as per normal_section.
	(lang_size_sections_1): When setting lma, detect overlays by
	os->sectype rather than by looking for overlapping vmas.
	(lang_enter_overlay_section): Use overlay_section type.
	(lang_leave_overlay): Set first overlay section to normal.
ld/testsuite/
	* ld-spu/ovl.lnk: Use OVERLAY keyword.
2007-04-18 03:55:10 +00:00
Paul Brook
fcb93ecfc2 2007-04-17 Paul Brook <paul@codesourcery.com>
bfd/
	* elf.c (_bfd_elf_is_function_type): New function.
	* elflink.c (_bfd_elf_merge_symbol): Use bed->is_function_type.
	(_bfd_elf_dynamic_symbol_p, _bfd_elf_symbol_refs_local_p,
	is_global_data_symbol_definition, elf_link_add_object_symbols): Ditto.
	* elf-bfd.h (elf_backend_data): Add is_function_type.
	(_bfd_elf_is_function_type): Add prototype.
	* elfxx-target.h (elf_backend_is_function_type): Add default
	definition.
	(elfNN_bed): Add elf_backend_is_function_type.
	* elf32-arm.c (elf32_arm_is_function_type): New function.
	(elf_backend_is_function_type): Define.

	ld/testsuite/
	* ld-arm/preempt-app.s: New test.
	* ld-arm/preempt-app.sym: New.
	* ld-arm/arm-elf.exp: Add preempt-app.
2007-04-17 20:09:52 +00:00
Richard Sandiford
9e3313aecd bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Set DT_TEXTREL
	when creating a __GOTT_BASE__ or __GOTT_INDEX__ relocation
	in a read-only section.
	(_bfd_mips_elf_check_relocs): Likewise.

ld/testsuite/
	* ld-mips-elf/vxworks1-lib.td: New test.
	* ld-mips-elf/mips-elf.exp: Run it.
2007-04-12 19:26:09 +00:00
H.J. Lu
9267588cdc bfd/
2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4304
	* elflink.c (bfd_elf_final_link): Call einfo callback in
	bfd_link_info instead of _bfd_error_handler for DT_TEXTREL
	warning.

ld/testsuite/

2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4304
	* ld-i386/i386.exp: Run "warn1".

	* ld-i386/warn1.d: New file.
	* ld-i386/warn1.s: Likewise.
2007-04-05 16:16:28 +00:00
H.J. Lu
ea9cd3c85b 2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
* ld-i386/combreloc.d: Remove #target: i?86-*-*.
	* ld-i386/reloc.d: Likewise.
2007-04-05 13:47:02 +00:00
Alan Modra
c1b2796f47 bfd/
* elf32-spu.c (spu_elf_output_symbol_hook): New function.
	(elf_backend_link_output_symbol_hook): Define.
ld/testsuite/
	* ld-spu/ovl2.d: Update.
2007-04-05 07:01:53 +00:00
H.J. Lu
f856040acc ld/
2007-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4090
	* ldexp.h (node_type): Add lineno.
	* ldexp.c: Include "ldlex.h".
	(exp_intop): Set the lineno field from lineno.
	(exp_bigintop): Likewise.
	(exp_relop): Likewise.
	(exp_nameop): Likewise.
	(exp_binop): Set the lineno field from lineno of lhs.
	(exp_trinop): Likewise.
	(exp_unop): Set the lineno field from lineno of child.
	(exp_assop): Set the lineno field from lineno of src.
	(exp_provide): Likewise.
	(exp_assert): Set the lineno field from lineno of exp.
	(exp_get_abs_int): Set lineno from lineno of nonconstant
	expression when report problem.

ld/testsuite/

2007-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4090
	* ld-elf/expr1.d: New file.
	* ld-elf/expr1.s: Likewise.
	* ld-elf/expr1.t: Likewise.
2007-04-02 16:32:04 +00:00
Richard Sandiford
bcb674cff7 ld/
200x-xx-xx  Richard Sandiford  <richard@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* NEWS: Mention -l:foo.
	* ld.texinfo: Document it.
	* ldlang.c (new_afile): If a lang_input_file_is_l_enum
	entry as a name beginning with a coloh, convert it to a
	lang_input_file_is_search_file_enum entry without the colon.

ld/testsuite/
	* ld-libs/lib-1.s, ld-libs/lib-2.s, ld-libs/lib-2.d,
	* ld-libs/libs.exp: New files.
2007-03-29 17:16:05 +00:00
Richard Sandiford
c76308d222 ld/
* ld.h (ld_config_type): Add rpath_separator.
	* ldmain.c (main): Initialize it.
	* lexsup.c (parse_args): Honor config.rpath_separator.
	* emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Likewise.
	(gld${EMULATION_NAME}_add_sysroot): Likewise.
	(gld${EMULATION_NAME}_parse_ld_so_conf): Use config.rpath_separator
	rather than ':' when building the path.
	* emultempl/vxworks.em (vxworks_before_parse): New function.
	Override config.rpath_separator.
	(LDEMUL_AFTER_OPEN): Do not change if EXTRA_EM_FILE has been
	set to gld${EMULATION_NAME}_after_open; #define that identifier
	to vxworks_foo instead.
	(LDEMUL_BEFORE_PARSE): Override in the same way as LDEMUL_AFTER_OPEN.

ld/testsuite/
	* ld-vxworks/rpath-1.s, ld-vxworks/rpath-1.d,
	* ld-vxworks/vxworks.exp: New files.
2007-03-28 14:42:28 +00:00
H.J. Lu
831480e942 Fix year. 2007-03-27 22:45:19 +00:00
Alan Modra
067b934b9a * ld-elf/note-1.s: Increase .foo size. 2007-03-27 14:14:19 +00:00
Alan Modra
0fd7d34280 * ld-spu/spu.exp (embed_test): New.
* ld-spu/ear.s: New.
	* ld-spu/ear.d: New.
	* ld-spu/embed.rd: New.
	* ld-spu/ovl2.s: New.
	* ld-spu/ovl2.d: New.
2007-03-27 08:36:27 +00:00
Alan Modra
34711ca3dd ld/
* ldlang.c (lang_insert_orphan): Provide start/stop loadaddr syms
	rather than defining unconditionally.
	(lang_leave_overlay_section): Likewise.
	* ld.texinfo (Overlay Description): Update description and examples
	for start/stop syms.
ld/testsuite/
	* ld-elf/overlay.d: -u symbols we want to see in the output.
2007-03-24 06:49:03 +00:00
Alan Modra
706d7558b7 * ld-spu/ovl.s (f4_a2): Tail call.
* ld-spu/ovl.d: Add --emit-relocs to ld options, -r to objdump.
	Update expected results.
2007-03-23 00:48:05 +00:00
Kaz Kojima
683b7041b0 * ld-sh/ld-r-1.d: Update.
* ld-sh/shared-1.d: Likewise.
2007-03-23 00:00:23 +00:00
Alan Modra
9f264ea9a7 * ld-elf/elf.exp: Add "--local-store 0:0" to LDFLAGS for spu. 2007-03-22 23:44:00 +00:00
H.J. Lu
50572669e4 bfd/
2003-03-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4210
	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Use the virtual
	address and virtual size of the last section for the image
	size.

ld/testsuite/

2003-03-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4210
	* ld-pe/image_size.d: New file.
	* ld-pe/image_size.s: Likewise.
	* ld-pe/image_size.t: Likewise.

	* ld-pe/pe.exp: Run image_size.
2007-03-22 15:52:29 +00:00
H.J. Lu
0920dee7ba bfd/
2007-03-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4007
	* elf.c (assign_file_positions_for_load_sections): Check if
	all sections are in the segment.

ld/testsuite/

2007-03-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/4007
	* ld-elf/note-1.d: New file.
	* ld-elf/note-1.s: Likewise.
	* ld-elf/note-1.t: Likewise.
	* ld-i386/alloc.d: Likewise.
	* ld-i386/alloc.s: Likewise.
	* ld-i386/alloc.t: Likewise.

	* ld-i386/i386.exp: Run "alloc".
2007-03-22 15:50:38 +00:00
Paul Brook
27e55c4d0b 2007-03-20 Paul Brook <paul@codesourcery.com>
ld/
	* emultempl/armelf.em (pic_veneer): New variable.
	(PARSE_AND_LIST_PROLOGUE): Add OPTION_PIC_VENEER.
	(PARSE_AND_LIST_ARGS_CASES): Ditto.
	(PARSE_AND_LIST_LONGOPTS): Add "pic-veneer".
	(PARSE_AND_LIST_OPTIONS): Ditto.
	* ld.texinfo: Document --pic-veneer.

	ld/testsuite/
	* ld-arm/arm-elf.exp (ld-arm/arm-elf.exp): Add arm-pic-veneer.
	* ld-arm/arm-pic-veneer.d: New test.
	* ld-arm/arm-pic-veneer.s: New test.

	bfd/
	* bfd-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (elf32_arm_link_hash_table): Add pic_veneer.
	(record_arm_to_thumb_glue): Use globals->pic_veneer.
	(elf32_arm_create_thumb_stub): Ditto.
	(bfd_elf32_arm_set_target_relocs): Set globals->pic_veneer.
2007-03-20 20:19:07 +00:00
Richard Sandiford
6d59ad8298 ld/testsuite/
* ld-elf/extract-symbol-1.ld (data): Explicitly set the start address
	to 0.
2007-03-08 17:54:29 +00:00
Alan Modra
f78039904e xfail hppa 2007-03-07 10:25:11 +00:00
Alan Modra
ab96bf03fd PR 3958
bfd/
	* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): No error on relocatable link.
	(elf_discarded_section): Move..
	* bfd-in.h: ..to here.
	* bfd-in2.h: Regenerate.
	* elflink.c (elf_link_input_bfd): Don't zap relocs against symbols
	from discarded sections before relocate_section has done its job.
	* reloc.c (bfd_generic_get_relocated_section_contents): Handle
	relocs against symbols from discarded sections.
	* elf-hppa.h (elf_hppa_howto_table): Set size.  Set dst_mask on
	SECREL32.
	(elf_hppa_relocate_section): Handle relocatable link after setting
	sec, sym, h etc. for final link.  Squash error messages for
	relocatable link.  Clear section contents for relocs against
	symbols in discarded sections, and zero reloc.  Remove existing
	zero r_symndx code.
	* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-arm.c (elf32_arm_relocate_section): Likewise.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-bfin.c (bfinfdpic_relocate_section): Likewise.
	(bfin_relocate_section): Likewise.
	* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-crx.c (elf32_crx_relocate_section): Likewise.
	* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-i386.c (elf_i386_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
	* elf32-m32c.c (m32c_elf_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-mep.c (mep_elf_relocate_section): Likewise.
	* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
	* elf32-mt.c (mt_elf_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-score.c (_bfd_score_elf_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf32-spu.c (spu_elf_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section): Likewise.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section_r): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.

	* elf32-arm.c (elf32_arm_relocate_section): Always adjust section
	symbols for relocatable link.  Don't use always-zero st_value.
	(elf_backend_rela_normal): Don't define.
	* elf32-bfin.c (bfinfdpic_relocate_section): Use
	RELOC_FOR_GLOBAL_SYMBOL.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-d10v.c (elf32_d10v_relocate_section): Combine SEC_MERGE
	section symbol adjustments with same for relocatable link.
	* elf32-i386.c (elf_i386_relocate_section): Likewise.
	* elf32-m68hc1x.c (m68hc11_get_relocation_value): Move..
	(elf32_m68hc11_check_relocs): ..to here.
	* elf32-score.c (score_elf_final_link_relocate): Remove zero
	r_symndx code.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.

ld/testsuite/
	* ld-elf/linkonce1.d: New.
	* ld-elf/linkonce1a.s: New.
	* ld-elf/linkonce1b.s: New.
	* ld-elf/linkonce2.d: New.
	* ld-i386/pcrel16abs.d: New.
	* ld-i386/pcrel16abs.s: New.
	* ld-i386/i386.exp: Run it.
2007-03-07 08:54:35 +00:00
H.J. Lu
d64cc92a74 2007-03-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4144
	* ld-elf/nobits-1.d: New file.
	* ld-elf/nobits-1.s: Likewise.
	* ld-elf/nobits-1.t: Likewise.
2007-03-07 03:58:44 +00:00
Richard Sandiford
cde1b43932 ld/testsuite/
* ld-elf/binutils.exp: Revert last change.
2007-03-02 09:20:13 +00:00
Richard Sandiford
d3e52d400e binutils/
200x-xx-xx  Phil Edwards  <phil@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* NEWS: Mention addition of --extract-symbol.
	* doc/binutils.texi: Document it.
	* objcopy.c (extract_symbol): New variable.
	(OPTION_EXTRACT_SYMBOLS): New command_line_switch.
	(copy_options): Add an entry for --extract-symbol.
	(copy_usage): Mention --extract-symbol.
	(copy_object): Set the start address to zero for --extract-symbol.
	Do not copy private BFD data in that case.
	(setup_section): Set the size, LMA and VMA to zero for
	--extract-symbol.  Do not copy private BFD data in that case.
	(copy_section): Do not copy section contents if --extract-symbol
	is passed.
	(copy_main): Set extract_symbol to TRUE if --extract-symbol
	is passed.

ld/testsuite/
	* ld-elf/extract-symbol-1sym.d, ld-elf/extract-symbol-1sec.d,
	* ld-elf/extract-symbol-1.s, ld-elf/extract-symbol-1.ld: New tests.
	* ld-elf/binutils.exp: Run them.
2007-03-01 16:39:42 +00:00
Nick Clifton
2a7bf98e7d PR ld/3796
* ld-arm/arm-elf.exp (armelftests): Move "Thumb-2 BL" test into...
  (armeabitests): ... here, a new array for EABI specific tests.
  (armelftests): Add extra command line options for VFP11 fix tests and thumb shared library test.
2007-02-28 17:14:39 +00:00
Paul Brook
6a5bb8757e 2007-02-22 Paul Brook <paul@codesourcery.com>
bfd/
	* elflink.c (gc_mark_hook_fn): Remove.
	(_bfd_elf_gc_mark): Rename gc_mark_hook_fn to elf_gc_mark_hook_fn.
	(bfd_elf_gc_sections): Ditto.  Call gc_mark_extra_sections.
	* elf-bfd.h (elf_gc_mark_hook_fn): Define.
	(elf_backend_data): Add gc_mark_extra_sections.
	* elfxx-target.h (elf_backend_gc_mark_extra_sections): Provide default
	definition.
	(elfNN_bed): Add elf_backend_gc_mark_extra_sections.
	* elf32-arm.c (elf32_arm_gc_mark_extra_sections): New function.
	(elf_backend_gc_mark_extra_sections): Define.

	ld/testsuite/
	* ld-arm/arm-elf.exp (armelftests): Add gc-unwind.h.
	* ld-arm/gc-unwind.s: New file.
	* ld-arm/gc-unwind.d: New file.
2007-02-22 17:03:59 +00:00
H.J. Lu
fab4a87f1b bfd/
2007-02-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3953
	* elflink.c (_bfd_elf_add_default_symbol): Check warning symbol
	when adding default symbol.

ld/testsuite/

2007-02-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3953
	* ld-elf/beginwarn.c: New file.
	* ld-elf/warn.out: Likewise.

	* ld-elf/shared.exp (build_tests): Add "Build warn libbar.so".
	(run_tests): Add "Run warn with versioned libfoo.so".

	* lib/ld-lib.exp (default_ld_relocate): Make exec_output global
	and remove target first.
	(default_ld_link): Likewise.
	(default_ld_simple_link): Likewise.
	(run_ld_link_exec_tests): Take an optional linker warning and
	check it.
	(default_ld_link): Check pruned linker output.
2007-02-14 14:15:52 +00:00
H.J. Lu
a243fa9752 2007-02-13 H.J. Lu <hongjiu.lu@intel.com>
* ld-scripts/default-script1.d: Expect extra symbols.
	* ld-scripts/default-script2.d: Likewise.
	* ld-scripts/default-script3.d: Likewise.
	* ld-scripts/default-script4.d: Likewise.
2007-02-13 22:14:59 +00:00
Alan Modra
e4e0193e2b bfd/
* elf64-ppc.c (create_linkage_sections): Use section ".branch_lt"
	for branch lookup table.
ld/
	* emulparams/elf64ppc.sh (OTHER_READWRITE_SECTIONS): Add ".branch_lt".
	* emultempl/ppc64elf.em (ppc_add_stub_section): Create without
	SEC_RELOC flag set.
ld/testsuite/
	* ld-powerpc/relbrlt.d: Update.
	* ld-powerpc/tlsexe.r: Update.
	* ld-powerpc/tlsexetoc.r: Update.
	* ld-powerpc/tlsso.r: Update.
	* ld-powerpc/tlstocso.r: Update.
2007-02-13 01:53:03 +00:00
Alan Modra
84f5d08e6b bfd/
* elf64-ppc.c (create_linkage_sections): Don't create
	.rela.rodata.brlt for --emit-relocs.
	(ppc_build_one_stub): Create relocs for brlt --emit-relocs here.
	(ppc_size_one_stub): Count them.  Simplify test of stub type
	when counting stub relocs.  Set SEC_RELOC too.
	(ppc64_elf_size_stubs): Clear reloc_count and SEC_RELOC.
	(ppc64_elf_finish_dynamic_sections): Output brlt relocs.
ld/testsuite/
	* ld-powerpc/relbrlt.d: Update.
2007-02-12 12:02:58 +00:00
Nick Clifton
cc9fe4437e PR ld/3805
* ld-elf/sec64k.exp: Expect the relocatable version of this test to fail for
  the m32r because it creates both .rel and .rela sections.
2007-02-06 15:26:53 +00:00
Dave Brolley
19d9b7d3f8 Support for Toshiba MeP. 2007-02-05 20:16:32 +00:00
H.J. Lu
eb7834a66d Fix year in entries. 2007-02-05 19:37:12 +00:00
H.J. Lu
65ca155d27 ld/testsuite/
2076-02-05  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-i386/pcrel16.d: Undo the last change.
	* ld-x86-64/pcrel16.d: Likewise.

opcodes/

2076-02-05  H.J. Lu  <hongjiu.lu@intel.com>

	* i386-dis.c (OP_J): Undo the last change. Properly handle 64K
	wrap around within the same segment in 16bit mode.
2007-02-05 18:22:49 +00:00
H.J. Lu
206717e8e5 ld/testsuite/
2076-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-i386/pcrel16.d: Updated.
	* ld-x86-64/pcrel16.d: Likewise.

opcodes/

2076-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	* i386-dis.c (OP_J): Mask to 16bit only if there is a data16
	prefix.
2007-02-03 00:46:22 +00:00
Alan Modra
b25b09cb7e * ld-scripts/default-script.exp: Add "--local-store 0:0" to
LDFLAGS for spu.
2007-02-01 05:12:11 +00:00
Julian Brown
b785d0e121 * ld-arm/arm-elf.exp: Add VFP11 tests.
* ld-arm/vfp11-fix-none.s: New file.
	* ld-arm/vfp11-fix-none.d: Expected disassembly of above.
	* ld-arm/vfp11-fix-scalar.s: New file.
	* ld-arm/vfp11-fix-scalar.d: Expected disassembly of above.
	* ld-arm/vfp11-fix-vector.s: New file.
	* ld-arm/vfp11-fix-vector.d: Expected disassembly of above.
2007-01-29 16:27:34 +00:00
H.J. Lu
5f40043739 Add a space between date and name. 2007-01-25 03:41:17 +00:00
Nathan Sidwell
723cda2582 * ld-elf/header.d: Reduce page size, restrict to linux & vxworks
* ld-elf/header.s: Adjust.
	* ld-elf/header.t: Reduce initial offset.
2007-01-23 16:42:43 +00:00
Andreas Schwab
7b69d46638 * lib/ld-lib.exp (run_dump_test): Don't prematurely remove
assembler output.
2007-01-23 13:30:47 +00:00
H.J. Lu
d8cf8b5133 ld/
2007-01-19 H.J. Lu  <hongjiu.lu@intel.com>

	* ld.h (args_type): Add new symbolic and dynamic_list fields.

	* ld.texinfo: Update -Bsymbolic-functions.

	* ldmain.c (main): Initialize command_line.symbolic to
	symbolic_unset and command_line.dynamic_list to
	dynamic_list_unset.  Check -Bsymbolic, -Bsymbolic-functions and
	--dynamic-list* before setting link_info.symbolic,
	link_info.dynamic and link_info.dynamic_data.

	* lexsup.c (option_values): Add OPTION_SYMBOLIC_FUNCTIONS.
	(ld_options): Use OPTION_SYMBOLIC_FUNCTIONS with
	-Bsymbolic-functions.
	(parse_args): Handle -Bsymbolic-functions.  Don't set
	link_info.dynamic, link_info.dynamic_data and link_info.symbolic
	here.  Set command_line.symbolic for -Bsymbolic.  Set
	command_line.dynamic_list and command_line.symbolic for
	--dynamic-list-data, --dynamic-list-cpp-new,
	--dynamic-list-cpp-typeinfo and --dynamic-list.

ld/testsuite/

2007-01-19 H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/dl6.c: New file.
	* ld-elf/dl6a.out: Likewise.
	* ld-elf/dl6amain.c: Likewise.
	* ld-elf/dl6b.out: Likewise.
	* ld-elf/dl6bmain.c: Likewise.
	* ld-elf/dl6cmain.c: Likewise.
	* ld-elf/dl6dmain.c: Likewise.

	* ld-elf/shared.exp: Add new tests for -Bsymbolic,
	-Bsymbolic-functions, --dynamic-list-data and
	--dynamic-list-cpp-new.
2007-01-19 15:13:29 +00:00
H.J. Lu
b814286567 ld/
2007-01-19  Jakub Jelinek  <jakub@redhat.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* emultempl/elf32.em (handle_option): Make sure -z max-page-size
	or -z common-page-size argument is a power of 2.  Call
	bfd_emul_set_maxpagesize and bfd_emul_set_commonpagesize.

2007-01-19  H.J. Lu  <hongjiu.lu@intel.com>

	* ldmain.c (main): Don't call bfd_emul_set_maxpagesize nor
	bfd_emul_set_commonpagesize.

ld/testsuite/

2007-01-19  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/maxpage3.t: New file.
	* ld-elf/maxpage3a.d: Likewise.
	* ld-elf/maxpage3b.d: Likewise.
	* ld-elf/maxpage3c.d: Likewise.
2007-01-19 15:06:27 +00:00
H.J. Lu
14be856495 ld/
2007-01-19 H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Mention --default-script/-dT.

	* ld.h (args_type): Add a default_script field.

	* ld.texinfo: Document --default-script/-dT.

	* ldmain.c (main): Handle command_line.default_script.

	* lexsup.c (option_values): Add OPTION_DEFAULT_SCRIPT.
	(ld_options): Add entries for --default-script and -dT.
	(parse_args): Handle --default-script/-dT.

ld/testsuite/

2007-01-19 H.J. Lu  <hongjiu.lu@intel.com>

	* ld-scripts/default-script.exp: New file.
	* ld-scripts/default-script.s: Likewise.
	* ld-scripts/default-script.t: Likewise.
	* ld-scripts/default-script1.d: Likewise.
	* ld-scripts/default-script2.d: Likewise.
	* ld-scripts/default-script3.d: Likewise.
	* ld-scripts/default-script4.d: Likewise.
2007-01-19 14:51:27 +00:00
H.J. Lu
30dabe8a61 2007-01-18 H.J. Lu <hongjiu.lu@intel.com>
PR ld/1283
	* lib/ld-lib.exp (run_dump_test): Remove output file first.
2007-01-18 19:21:15 +00:00
H.J. Lu
e47251a9cb 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/header.d: Adjust for .text section with 16byte
	alignment.
2007-01-17 19:17:15 +00:00
H.J. Lu
f7a46012c7 2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/dl1main.c (main): Fix a typo.
2007-01-16 18:55:06 +00:00
H.J. Lu
40b36307e3 bfd/
2007-01-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3831
	* elf-bfd.h (bfd_elf_link_mark_dynamic_symbol): Add an
	argument, Elf_Internal_Sym *.

	* elflink.c (bfd_elf_link_mark_dynamic_symbol): Mark a data
	symbol dynamic if info->dynamic_data is TRUE.
	(bfd_elf_record_link_assignment): Updated call to
	bfd_elf_record_link_assignment.
	(_bfd_elf_merge_symbol): Likewise.  Always call
	bfd_elf_link_mark_dynamic_symbol.

include/

2007-01-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3831
	* bfdlink.h (bfd_link_info): Rename dynamic to dynamic_list.
	Add dynamic and dynamic_data.

ld/

2007-01-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3831
	* NEWS: Mention -Bsymbolic-functions, --dynamic-list-data and
	--dynamic-list-cpp-new.

	* ld.texinfo: Document -Bsymbolic-functions, --dynamic-list-data
	and --dynamic-list-cpp-new.

	* ldlang.c (lang_append_dynamic_list_cpp_new): New.
	(lang_process): Change link_info.dynamic to
	link_info.dynamic_list.
	(lang_append_dynamic_list): Likewise.
	* ldmain.c (main): Likewise.  Initialize link_info.dynamic and
	link_info.dynamic_data to FALSE.

	* ldlang.h (lang_append_dynamic_list_cpp_new): New.

	* lexsup.c (option_values): Add OPTION_DYNAMIC_LIST_DATA and
	OPTION_DYNAMIC_LIST_CPP_NEW.
	(ld_options): Add entries for -Bsymbolic-functions,
	--dynamic-list-data and --dynamic-list-cpp-new.  Make
	-Bsymbolic-functions an alias of --dynamic-list-data.
	(parse_args): Change link_info.dynamic to link_info.dynamic_list.
	Set link_info.dynamic to TRUE for --dynamic-list and
	--dynamic-list-cpp-typeinfo.  Handle --dynamic-list-data and
	--dynamic-list-cpp-new.

ld/testsuite/

2007-01-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3831
	* ld-elf/del.cc: New.
	* ld-elf/dl5.cc: Likewise.
	* ld-elf/dl5.out: Likewise.
	* ld-elf/new.cc: Likewise.

	* ld-elf/shared.exp: Add tests for --dynamic-list-data and
	 --dynamic-list-cpp-new.
2007-01-16 14:56:32 +00:00
Hans-Peter Nilsson
c3c6b70e63 * ld-elf/header.d: Allow arbitrary lines between "Program Header"
and "Sections".  Only run on *-*-linux*.
2007-01-12 01:57:28 +00:00
Nathan Sidwell
59e0647f0d bfd/
* elf.c (assign_file_positions_for_load_sections): We can
	require fewer phdrs than expected.
ld/
	* emultempl/elf-generic.em (gdl_map_segments): Only allow header
	shrinkage for the first few iterations.
ld/testsuite/
	* ld-elf/header.d: New.
	* ld-elf/header.t: New.
	* ld-elf/header.s: New.
2007-01-11 12:23:53 +00:00
H.J. Lu
5ccca1c071 Move 2006 ChangeLog entries to ChangeLog-2006. 2007-01-09 17:30:59 +00:00
Nick Clifton
42037fe5bb Renamed target x86_64-*-mingw64 to x86_64-*-mingw*. 2007-01-08 17:21:50 +00:00
Nathan Sidwell
cc3e2771c5 ld/
* ldexp.c (fold_name): Issue error on undefined sections.
ld/testsuite/
	* ld-scripts/expr.exp: New.
	* ld-scripts/expr1.s: New.
	* ld-scripts/expr1.d: New.
	* ld-scripts/expr1.t: New.
2007-01-06 22:03:46 +00:00
H.J. Lu
83ad0046cf bfd/
2006-12-29  H.J. Lu  <hongjiu.lu@intel.com>

	* elflink.c (elf_link_add_object_symbols): Remember the symbol
	size only if it is defined.

ld/testsuite/

2006-12-29  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/wrap.exp: New file.
	* ld-elf/wrap1.c: Likewise.
	* ld-elf/wrap1.out: Likewise.
	* ld-elf/wrap1a.c: Likewise.
	* ld-elf/wrap1b.c: Likewise.
2006-12-29 17:56:32 +00:00
Christopher Faylor
ff2bdb9c0d * pe-dll.c (pe_bfd_is_dll): New function.
* pe-dll.h (pe_bfd_is_dll): Declare.
* emultempl/pe.em (gld_${EMULATION_NAME}_recognized_file): Recognize dlls using
pe_bfd_is_dll instead of using the filename extension.
2006-12-18 22:38:53 +00:00
Dave Brolley
906156c429 2006-12-13 Dave Brolley <brolley@redhat.com>
* lib/ld-lib.exp (big_or_little_endian): Accept -meb and
        -mel for big and little endian respectively.
2006-12-13 16:38:37 +00:00
Alan Modra
67f744f3bc * ldlang.c (print_output_section_statement): Print load address
when lma differs from vma.
testsuite/
	* ld-scripts/overlay-size-map.d: Update.
2006-12-12 08:10:40 +00:00
H.J. Lu
e5d080028d bfd/
2006-12-07  H.J. Lu <hjl@gnu.org>

	PR ld/3666
	* elflink.c (elf_link_add_object_symbols): Keep symbol
	visibility for symbols from discarded section.

ld/testsuite/

2006-12-07  H.J. Lu <hjl@gnu.org>

	PR ld/3666
	* ld-elf/group3a.d: New file.
	* ld-elf/group3a.s: Likewise.
	* ld-elf/group3b.d: Likewise.
	* ld-elf/group3b.s: Likewise.
2006-12-07 13:32:02 +00:00
Alan Modra
fc0c78a1d9 * ld-alpha/tlspic.rd: Update for unused section removal.
* ld-frv/fdpic-shared-6.d: Likewise.
	* ld-frv/tls-dynamic-1.d: Update for symbol changes.
	* ld-frv/tls-dynamic-2.d: Likewise.
	* ld-frv/tls-dynamic-3.d: Likewise.
	* ld-frv/tls-initial-shared-2.d: Likewise.
	* ld-frv/tls-pie-1.d: Likewise.
	* ld-frv/tls-pie-3.d: Likewise.
	* ld-frv/tls-relax-dynamic-1.d: Likewise.
	* ld-frv/tls-relax-dynamic-2.d: Likewise.
	* ld-frv/tls-relax-dynamic-3.d: Likewise.
	* ld-frv/tls-relax-initial-shared-2.d: Likewise.
	* ld-frv/tls-relax-pie-1.d: Likewise.
	* ld-frv/tls-relax-pie-3.d: Likewise.
	* ld-frv/tls-relax-shared-1.d: Likewise.
	* ld-frv/tls-relax-shared-2.d: Likewise.
	* ld-frv/tls-relax-shared-3.d: Likewise.
	* ld-frv/tls-relax-static-3.d: Likewise.
	* ld-frv/tls-shared-1.d: Likewise.
	* ld-frv/tls-shared-2.d: Likewise.
	* ld-frv/tls-shared-3.d: Likewise.
	* ld-frv/tls-static-1.d: Likewise.
	* ld-frv/tls-static-3.d: Likewise.
2006-12-05 02:40:57 +00:00
Alan Modra
125c64931b * ld-elfvsb/sh1.c (overriddenvar, shlib_overriddencall2,
shared_data): If !SHARED, move to...
	* ld-elfvsb/sh2.c: ... here.
	* ld-elfvsb/elfvsb.exp: Add -DSHARED to compiler options when
	building with $picflag.
2006-12-05 01:29:58 +00:00
Jan Beulich
eb3d5f3b94 bfd/
2006-12-04  Jan Beulich  <jbeulich@novell.com>

	* elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
	.eh_frame_hdr section from here anymore.
	(bfd_elf_size_dynamic_sections): Call _bfd_elf_maybe_strip_eh_frame_hdr
	a little earlier.

ld/
2006-12-04  Jan Beulich  <jbeulich@novell.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Create
	.eh_frame_hdr section here.

ld/testsuite/
2006-12-04  Jan Beulich  <jbeulich@novell.com>

	* ld-elf/eh-frame-hdr.d: New.
	* ld-elf/eh-frame-hdr.s: New.
	* ld-ia64/tlsbin.dd, ld-ia64/tlsbin.sd: Don't depend on exact linkage
	table layout.
2006-12-04 08:57:09 +00:00
Thiemo Seufer
0e2bc53a68 * ld-elf/warn2.d: Match regex also for the second segment. 2006-11-23 16:50:39 +00:00
Daniel Jacobowitz
e821645dee opcodes/
* arm-dis.c (last_is_thumb): Delete.
	(enum map_type, last_type): New.
	(print_insn_data): New.
	(get_sym_code_type): Take MAP_TYPE argument.  Check the type of
	the right symbol.  Handle $d.
	(print_insn): Check for mapping symbols even without a normal
	symbol.  Adjust searching.  If $d is found see how much data
	to print.  Handle data.
gas/
	* config/tc-arm.h (md_cons_align): Define.
	(mapping_state): New prototype.
	* config/tc-arm.c (mapping_state): Make global.
gas/testsuite/
	* gas/arm/arm7t.d, gas/arm/neon-ldst-rm.d, gas/arm/thumb2_pool.d,
	gas/arm/tls.d: Update for $d support.
	* gas/arm/mapshort.d, gas/arm/mapshort.s: New test.
	* gas/elf/section2.e-armeabi: Update.
	* gas/elf/section2.e-armelf: New file.
	* gas/elf/elf.exp: Use it.
ld/testsuite/
	* ld-arm/mixed-app.d, ld-arm/tls-app.d, ld-arm/tls-lib.d: Update
	for $d support.
2006-11-22 17:45:57 +00:00
Jakub Jelinek
bce613b9bf * elf-eh-frame.c (struct cie): New type.
(cie_compare): Removed.
	(cie_eq, cie_hash, cie_compute_hash): New functions.
	(_bfd_elf_discard_section_eh_frame): Rewrite not to rely on FDEs
	pointing only to last CIE and allow merging of any duplicate CIEs,
	not just duplicate consecutive CIEs.
	(_bfd_elf_discard_section_eh_frame_hdr): Delete cies hash table.
	* elf-bfd.h (struct cie_header, struct cie): Removed.
	(struct eh_frame_sec_info): Remove alloced field.
	(struct eh_frame_hdr_info): Remove last_cie, last_cie_sec
	and last_cie_inf fields.  Add cies field.

	* ld-elf/eh5.d: New test.
	* ld-elf/eh5.s: New file.
	* ld-elf/eh5a.s: New file.
	* ld-elf/eh5b.s: New file.
2006-11-21 11:25:17 +00:00
Daniel Jacobowitz
f53e1b4030 * ld-arm/arm-dyn.ld, ld-arm/arm-lib.ld: Remove .stack.
* ld-arm/armthumb-lib.d, ld-arm/mixed-app.d, ld-arm/mixed-lib.d:
	Allow smaller section gap.
	* ld-arm/armthumb-lib.sym, ld-arm/mixed-lib.sym: Reorder.  Remove
	_stack.
	* ld-arm/mixed-app.sym: Remove _stack.
	* ld-arm/tls-app.d: Update start address.
2006-11-13 21:18:36 +00:00
Alan Modra
9e3be61d60 ld/
* emultempl/elf32.em (gld*_before_allocation): Adjust output section
	size for warning sections.
ld/testsuite/
	* ld-elf/group.ld: Handle .rodata.brlt for powerpc64.
2006-11-08 11:29:16 +00:00
Vladimir Prus
d661a1c202 2006-11-07 Vladimir Prus <vladimir@codesourcery.com>
* testsuite/ld-elf/symbol2w.s: Use "%" instead
        of "@" to avoid breakage on ARM.
2006-11-08 10:21:12 +00:00
Vladimir Prus
7d0317c40f 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
* testsuite/ld-elf/symbol1ref.s: Use ".dc.a" instead
       of ".long".
2006-11-06 12:15:35 +00:00
Vladimir Prus
bc251d509b * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
Don't prepend "warning" to the message.
	* testsuite/ld-elf/warn2.d: New.
	* testsuite/ld-elf/symbol2w.s: New.
	* testsuite/ld-elf/symbol2ref.s: New.
2006-11-06 10:39:17 +00:00
Hans-Peter Nilsson
c70cf8c0a1 * ld-cris/ldsym1.d: Adjust for semi-recent ld changes. 2006-11-05 19:15:32 +00:00
Daniel Jacobowitz
b1e24c0220 bfd/
* libbfd-in.h (_bfd_clear_contents): New prototype.
	* reloc.c (_bfd_clear_contents): New.
	* libbfd.h: Regenerated.

	* elf32-arm.c (elf32_arm_final_link_relocate): Use
	_bfd_clear_contents.
	* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-i386.c (elf_i386_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.

	* elfxx-ia64.c (elfNN_ia64_relocate_section): Set value to
	zero for discarded symbols.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
ld/testsuite/
	* ld-discard/zero-rel.d, ld-discard/zero-rel.s: New files.
2006-11-03 00:58:10 +00:00
Thiemo Seufer
b9d58d7191 [ bfd/ChangeLog ]
* elf-bfd.h (local_call_stubs): New member.
	* elfxx-mips.c (FN_STUB_P, CALL_STUB_P, CALL_FP_STUB_P): New macros.
	(mips_elf_calculate_relocation): Handle local mips16 call stubs.
	(mips16_stub_section_p): Rename from mips_elf_stub_section_p, use
	the new stub macros.
	(_bfd_mips_elf_check_relocs): Handle call stubs for code which
	mixes mips16 and mips32 functions. Use mips16_stub_section_p. Mark
	used stubs with SEC_KEEP. Use the new stub macros.

	[ gas/testsuite/ChangeLog ]
	* gas/mips/mips16-intermix.d, gas/mips/mips16-intermix.s: New
	testcase.
	* gas/mips/mips.exp: Run new testcase.

	[ ld/testsuite/ChangeLog ]
	* ld-mips-elf/mips16-intermix-1.s, ld-mips-elf/mips16-intermix-2.s,
	ld-mips-elf/mips16-intermix.d: New testcase.
	* ld-mips-elf/mips-elf.exp (mips16_intermix_test): Run new testcases.
2006-11-02 15:20:31 +00:00
Kaz Kojima
3091e75f27 * ld-sh/sh64/abi32.xd, ld-sh/sh64/abi64.xd, ld-sh/sh64/cmpct1.xd,
* ld-sh/sh64/crange1.rd, ld-sh/sh64/crange2.rd,
	* ld-sh/sh64/crange3-cmpct.rd, ld-sh/sh64/crange3-media.rd,
	* ld-sh/sh64/crange3.rd, ld-sh/sh64/mix1.xd, ld-sh/sh64/mix2.xd,
	* ld-sh/sh64/shdl32.xd, ld-sh/sh64/shdl64.xd: Update for removal
	of empty sections.
2006-10-30 00:48:03 +00:00
Alan Modra
e9f5312993 New Cell SPU port. 2006-10-25 06:49:21 +00:00
Alan Modra
e3b356e039 missed from last commit 2006-10-25 00:44:26 +00:00
Kaz Kojima
23bacdc9bf * gas/sh/sh64/syntax-1.d: Update.
* ld-sh/sh64/abi32.xd, ld-sh/sh64/abi64.xd, ld-sh/sh64/cmpct1.xd,
	* ld-sh/sh64/crange1.rd, ld-sh/sh64/crange2.rd,
	* ld-sh/sh64/crange3-cmpct.rd, ld-sh/sh64/crange3-media.rd,
	* ld-sh/sh64/crange3.rd, ld-sh/sh64/crangerel1.rd,
	* ld-sh/sh64/crangerel2.rd, ld-sh/sh64/mix1.xd,
	* ld-sh/sh64/mix2.xd, ld-sh/sh64/rel32.xd, ld-sh/sh64/rel64.xd,
	* ld-sh/sh64/reldl32.rd, ld-sh/sh64/reldl64.rd,
	* ld-sh/sh64/shdl32.xd, ld-sh/sh64/shdl64.xd: Update.
2006-10-22 01:19:06 +00:00
Kaz Kojima
af4658dc3d * ld-sh/tlsbin-1.d: Update.
* ld-sh/tlspic-1.d: Likewise.
	* ld-sh/tlstpoff-1.d: Likewise.
2006-10-20 15:16:44 +00:00
Richard Sandiford
bcfdf036c8 bfd/
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Make the
	size of .rel.dyn reflect the value of DT_RELSZ.

ld/testsuite/
	* ld-mips-elf/multi-got-1.d: Remove trailing R_MIPS_NONE entries.
	* ld-mips-elf/tls-multi-got-1.got: Likewise.
	* ld-mips-elf/tls-multi-got-1.r: Likewise.
2006-10-20 07:58:17 +00:00
Richard Sandiford
98c904a864 bfd/
* elfxx-mips.c (_bfd_mips_elf_additional_program_headers): Allocate
	a PT_NULL header for dynamic objects.
	(_bfd_mips_elf_modify_segment_map): Add it.

ld/testsuite/
	* ld-mips-elf/multi-got-1.d: Do not expect a particular address
	for DT_HASH.
	* ld-mips-elf/rel32-o32.d: Bump addresses by 0x20 to account for
	the extra program header.
	* ld-mips-elf/rel32-n32.d: Likewise.
	* ld-mips-elf/tlslib-o32.got: Likewise.
	* ld-mips-elf/tlslib-o32-hidden.got: Likewise.
	* ld-mips-elf/tlslib-o32-ver.got: Likewise.
	* ld-mips-elf/tls-multi-got-1.got: Likewise.
	* ld-mips-elf/tls-multi-got-1.r: Likewise.
	* ld-mips-elf/rel64.d: Bump addresses by 0x30 to account for the
	extra program header.
	* ld-mips-elf/tlsdyn-o32.d: Reduce the GOT offset by 32 to account
	for the extra program header, and thus the shorter gap between the
	text and data segments.
	* ld-mips-elf/tlsdyn-o32-1.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-2.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
	* ld-mips-elf/tlsdyn-o32.got: Bump GOT text addresses by 0x20
	to account for the extra program header.
	* ld-mips-elf/tlsdyn-o32-1.got: Likewise.
	* ld-mips-elf/tlsdyn-o32-2.got: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.got: Likewise.
2006-10-20 07:57:03 +00:00
Richard Sandiford
5427f821ae ld/
* emulparams/elf32bmip.sh (OTHER_GOT_RELOC_SECTIONS): Define.
	* emulparams/elf32bmipn32-defs.sh (OTHER_GOT_RELOC_SECTIONS): Likewise.

ld/testsuite/
	* ld-mips-elf/rel32-o32.d: Bump the section number of .text by 1
	to account for the fact that .rel.dyn is now before .text in the
	section table.
	* ld-mips-elf/rel32-n32.d: Likewise.
	* ld-mips-elf/rel64.d: Likewise.
2006-10-20 07:55:37 +00:00
Richard Sandiford
6870500c04 bfd/
* elfxx-mips.c (sort_dynamic_relocs): Sort relocations against the
	same symbol by increasing r_offset.
	(sort_dynamic_relocs_64): Likewise.  Fix comparisons between very
	large and very small symbol indexes.

ld/testsuite/
	* ld-mips-elf/tlslib-o32-hidden.got: Sort relocations against the
	same symbol in order of increasing r_offset.
	* ld-mips-elf/tls-multi-got-1.got: Likewise.
	* ld-mips-elf/tls-hidden3.r: Likewise.
	* ld-mips-elf/tls-hidden4.r: Likewise.
2006-10-19 13:47:10 +00:00
Richard Sandiford
6a4837657a bfd/
* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Add DT_DEBUG
	and DT_MIPS_RLD_MAP tags for position-independent executables.
	Do not add DT_DEBUG to shared libraries for any MIPS target.

ld/testsuite/
	* ld-mips-elf/multi-got-1.d: Remove DT_DEBUG tag.  Do not require
	a specific file offset for .dynamic.  Reduce DT_HASH by 8 to account
	for removed tag.
	* ld-mips-elf/tls-multi-got-1.r: Likewise.  Also reduce DT_REL by 8.
	Reduce PLTGOT and symbol values by 16 to account for the removed tag.
	* ld-mips-elf/textrel-1.d: Remove DT_DEBUG tag.
	* ld-mips-elf/rel32-n32.d: Reduce addresses by 16 to account for
	removed DT_DEBUG tag.
	* ld-mips-elf/rel64.d: Likewise.
	* ld-mips-elf/tls-multi-got-1.got: Likewise.
	* ld-mips-elf/tlslib-o32-hidden.got: Likewise.
2006-10-19 13:42:17 +00:00
H.J. Lu
92b7c7b6e9 bfd/
2006-10-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3290
	* elflink.c (elf_link_add_object_symbols): Hide definitions in
	debug sections.

ld/testsuite/

2006-10-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3290
	* ld-elf/dummy.c: New file.
	* ld-elf/dwarf.exp: Likewise.
	* ld-elf/dwarf1.c: Likewise.
	* ld-elf/dwarf1.h: Likewise.
	* ld-elf/dwarf1.out: Likewise.
	* ld-elf/dwarf1main.c: Likewise.
2006-10-19 02:40:14 +00:00
H.J. Lu
c555238b1a 2006-10-18 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/dl4.c: New file.
	* ld-elf/dl4.list: Likewise.
	* ld-elf/dl4a.out: Likewise.
	* ld-elf/dl4b.out: Likewise.
	* ld-elf/dl4main.c: Likewise.
	* ld-elf/dl4xxx.c: Likewise.
	* ld-elf/dl4xxx.list: Likewise.

	* ld-elf/shared.exp (build_tests): Add libdl4a.so and
	libdl4b.so.
	(run_tests): Likewise.
2006-10-18 16:23:24 +00:00
Richard Sandiford
0d22c9559b ld/testsuite/
* ld-mips-elf/reloc-1-n64.d: Match 16-character VMAs on LP64 hosts.
2006-10-18 13:02:01 +00:00
Richard Sandiford
269186e397 Fix typo in last changelog. 2006-10-18 12:38:26 +00:00
Richard Sandiford
7e1fa4ad31 ld/testsuite/
* ld-mips-elf/rel32-n32.d: Bump addresses by 0x30 to account for
	the fact that .reginfo is now placed before .text.  Change the
	section number of .text accordingly.
2006-10-18 12:34:19 +00:00
Richard Sandiford
2838ec41f8 ld/testsuite/
* ld-mips-elf/elf-rel-got-n32.d: Adjust page gap from 0x100000
	to 0x10000.  Move .reginfo before .text and bump .text addresses
	by 0x10 to make room.  Move data segment down by 0x10 bytes to
	account for new size of text segment.
	* ld-mips-elf/elf-rel-xgot-n32.d: Likewise.
	* ld-mips-elf/elf-rel-got-n64-linux.d: Adjust page gap from
	0x100000 to 0x10000.
	* ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise.
2006-10-18 07:13:47 +00:00
Mark Shinwell
e95de06338 bfd/
* elf32-arm.c (elf32_arm_howto_table_1): Change offset for
	R_THM_CALL to 25 and remove FIXME comment.
	(using_thumb2): New function.
	(elf32_arm_final_link_relocate): Cope with Thumb-2 BL encoding.

	include/
	* elf/arm.h: Define TAG_CPU_ARCH_* constants.

	ld/testsuite/
	* ld-arm/arm-elf.exp: Add thumb1-bl, thumb2-bl,
	thumb2-bl-as-thumb1-bad and thumb2-bl-bad tests.
	* ld-arm/thumb1-bl.d: New.
	* ld-arm/thumb1-bl.s: New.
	* ld-arm/thumb2-bl-as-thumb1-bad.d: New.
	* ld-arm/thumb2-bl-as-thumb1-bad.s: New.
	* ld-arm/thumb2-bl-bad.d: New.
	* ld-arm/thumb2-bl-bad.s: New.
	* ld-arm/thumb2-bl.d: New.
	* ld-arm/thumb2-bl.s: New.
2006-10-17 15:46:21 +00:00
Alan Modra
74541ad4c0 bfd/
* elf-bfd.h (struct elf_link_hash_table): Reorder.  Add
	text_index_section and data_index_section.
	(struct elf_backend_data): Add elf_backend_init_index_section.
	(_bfd_elf_init_1_index_section): Declare.
	(_bfd_elf_init_2_index_sections): Declare.
	* elfxx-target.h (elf_backend_init_index_section): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_link_omit_section_dynsym): Keep first tls
	section and text_index_section plus data_index_section.
	(_bfd_elf_link_renumber_dynsyms): Clear dynindx on omitted sections.
	(_bfd_elf_init_1_index_section): New function.
	(_bfd_elf_init_2_index_sections): New function.
	(bfd_elf_size_dynsym_hash_dynstr): Call elf_backend_init_index_section.
	(elf_link_input_bfd): When emitting relocs, use text_index_section
	and data_index_section for removed sections.
	* elf-m10300.c (elf_backend_omit_section_dynsym): Define.
	* elf32-i386.c: Likewise.
	* elf32-m32r.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-xstormy16.c: Likewise.
	* elf32-xtensa.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-mmix.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elf32-arm.c (elf32_arm_final_link_relocate): Use text_index_section
	and data_index_section sym for relocs against sections with no dynamic
	section sym.
	(elf_backend_init_index_section): Define.
	* elf32-cris.c: Similarly.
	* elf32-hppa.c: Similarly.
	* elf32-i370.c: Similarly.
	* elf32-m68k.c: Similarly.
	* elf32-mips.c: Similarly.
	* elf32-ppc.c: Similarly.
	* elf32-s390.c: Similarly.
	* elf32-sparc.c: Similarly.
	* elf32-vax.c: Similarly.
	* elf64-mips.c: Similarly.
	* elf64-ppc.c: Similarly.
	* elf64-s390.c: Similarly.
	* elf64-sparc.c: Similarly.
	* elf64-x86-64.c: Similarly.
	* elfn32-mips.c: Similarly.
	* elfxx-mips.c: Similarly.
	* elfxx-sparc.c: Similarly.
	* linker.c (fix_syms): Base symbols in removed sections on
	previous section in preference to using absolute section.

ld/
	* ldlang.c (strip_excluded_output_sections): Do strip sections
	that define syms, but don't ignore them.
	* ld.texinfo (Output Section Discarding): Revise.
	* emultempl/armcoff.em (gld${EMULATION_NAME}_finish): Always call
	finish_default.

ld/testsuite/
	Update for section sym changes.
2006-10-17 13:41:49 +00:00
Richard Sandiford
94bb04b3c6 ld/
* Makefile.am (eelf64bmip.c): Depend on emulparams/elf64bmip-defs.sh.
	(eelf64btsmip.c, eelf64ltsmip.c): Likewise.
	* Makefile.in: Regenerate.
	* emulparams/elf32bmipn32-defs.sh (INITIAL_READONLY_SECTIONS): Include
	.reginfo rather than .MIPS.options.
	* emulparams/elf64bmip-defs.sh: New file.
	* emulparams/elf64bmip.sh: Include it.
	(COMMONPAGESIZE): Delete.
	* emulparams/elf64btsmip.sh: As for elf64bmip.sh.

ld/testsuite/
	* ld-mips-elf/branch-misc-1.d: Set the start address to 0x20000000.
	* ld-mips-elf/jalbal.d: Likewise 0x200000a0.
	* ld-mips-elf/jaloverflow-2.d: Likewise 0x20000000.
	* ld-mips-elf/reloc-3-n32.d: Likewise.
	* ld-mips-elf/reloc-3.d: Likewise.
	* ld-mips-elf/textrel-1.d: Don't require a specific file offset for
	.dynamic.
2006-10-16 21:34:25 +00:00
Jakub Jelinek
ac685e6adf * elf-bfd.h (struct eh_cie_fde): Add set_loc pointer.
* elf-eh-frame.c (skip_cfa_op): Fix handling of DW_CFA_advance_loc.
	Handle DW_CFA_{remember,restore}_state, DW_CFA_GNU_window_save,
	DW_CFA_val_{offset{,_sf},expression}.
	(skip_non_nops): Record number of DW_CFA_set_loc ops.
	(_bfd_elf_discard_section_eh_frame): Require skip_non_nops recognizes
	all ops.  If there are any DW_CFA_set_loc ops and they are pcrel
	or going to be pcrel, compute set_loc array.
	(_bfd_elf_eh_frame_section_offset): If make_relative, kill relocations
	against DW_CFA_set_loc operands.
	(_bfd_elf_write_section_eh_frame): Handle DW_CFA_set_loc adjusting.

	* ld-elf/eh4.d: New test.
	* ld-elf/eh4.s: New file.
	* ld-elf/eh4a.s: New file.
2006-10-03 13:15:39 +00:00
Nick Clifton
4303612646 * ld-arm/use-thumb-lib.sym: Robustify, by ignoring symbols we're
not interested in and bucket number.
2006-10-02 17:10:56 +00:00
Nick Clifton
0be14fe08c * ld-fastcall/fastcall.exp: Add x86_64-pc-mingw64 as valid target.
* ld-pe/pe.exp: Likewise.
* lib/ld-lib.exp ( is_pecoff_format): Accept x86_64-pc-mingw64.
2006-10-02 16:53:04 +00:00
Kaz Kojima
aeb0c9c635 * ld-sh/tlspic-2.d: Update. 2006-09-29 12:37:28 +00:00
H.J. Lu
49c13adb16 bfd/
2006-09-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3223
	PR ld/3267
	* elf.c (assign_file_positions_for_non_load_sections): Don't
	warn zero size allocated sections.

ld/

2006-09-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3223
	PR ld/3267
	* ld.texinfo: Updated Output Section Discarding.

	* ldlang.h (lang_output_section_statement_type): Add
	section_relative_symbol.
	* ldlang.c (strip_excluded_output_sections): Don't strip a
	section with a symbol relative to it.
	(lang_size_sections_1): Mark if an output section has a symbol
	symbol relative to it.

ld/testsuite/

2006-09-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3223
	PR ld/3267
	* ld-scripts/empty-address-1.d: New file.
	* ld-scripts/empty-address-1.s: Likewise.
	* ld-scripts/empty-address-1.t: Likewise.
	* ld-scripts/empty-address-2.s: Likewise.
	* ld-scripts/empty-address-2a.d: Likewise.
	* ld-scripts/empty-address-2a.t: Likewise.
	* ld-scripts/empty-address-2b.d: Likewise.
	* ld-scripts/empty-address-2b.t: Likewise.
	* ld-scripts/empty-address-3.s: Likewise.
	* ld-scripts/empty-address-3a.d: Likewise.
	* ld-scripts/empty-address-3a.t: Likewise.
	* ld-scripts/empty-address-3b.d: Likewise.
	* ld-scripts/empty-address-3b.t: Likewise.
	* ld-scripts/empty-address-3c.d: Likewise.
	* ld-scripts/empty-address-3c.t: Likewise.
	* ld-scripts/empty-address.exp: Likewise.
2006-09-27 04:18:16 +00:00
Andreas Schwab
5bd4b6af45 * ld-m68k/plt1-68020.d: Fix patterns to match also for 64-bit
hosts.
2006-09-21 09:41:34 +00:00
Nick Clifton
99ad839030 Add x86_64-mingw64 target 2006-09-20 11:35:11 +00:00
Thiemo Seufer
3b7882616d * ld-mips-elf/mips-elf.exp: Add test for R_MIPS16_GPREL relocations.
* ld-mips-elf/reloc-3-n32.d, ld-mips-elf/reloc-3.d: New files.
2006-09-18 18:21:42 +00:00
Thiemo Seufer
674e82fc12 * ld-elfcomm/elfcomm.exp: Enable the alignment test for
mips*-*-*.
2006-09-18 14:41:10 +00:00
Nick Clifton
1c0d3aa6ae Add support for Score target. 2006-09-16 23:51:50 +00:00
H.J. Lu
76052d04e0 2006-09-15 H.J. Lu <hongjiu.lu@intel.com>
* ld-scripts/overlay-size.t: Discard .reginfo sections.
2006-09-15 16:19:33 +00:00
H.J. Lu
65163a8aaa 2006-09-15 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/hash.d: Don't run for mips targets.
2006-09-15 14:55:42 +00:00
H.J. Lu
06010a4e79 2006-09-15 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/loadaddr.s: Pad sections to 16 bytes.
	* ld-elf/loadaddr1.d: Updated.
	* ld-elf/loadaddr2.d: Likewise.
	* ld-elf/loadaddr3a.d: Likewise.
	* ld-elf/loadaddr3b.d: Likewise.
2006-09-15 14:48:46 +00:00
H.J. Lu
41198d0cfa bfd/
2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3197
	* elflink.c (elf_link_output_extsym): Compute bucket only if
	needed.

ld/testsuite/

2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3197
	* ld-elf/hash.d: New test.
2006-09-12 22:10:31 +00:00
Richard Earnshaw
c782d94cd1 2006-09-04 Vladimir Prus <vladimir@codesourcery.com>
* ld-arm/use-thumb-lib.sym: Use regexps instead of
	absolute addresses, for robustness.
2006-09-08 10:32:28 +00:00
H.J. Lu
55255daec3 bfd/
2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (elf_link_hash_entry): Add a dynamic field.
	(bfd_elf_link_mark_dynamic_symbol): New.
	(SYMBOLIC_BIND): New.

	* elf32-i386.c (elf_i386_check_relocs): Replace info->symbolic
	with SYMBOLIC_BIND (info, h).
	(elf_i386_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise.

	* elflink.c (bfd_elf_link_mark_dynamic_symbol): New.
	(bfd_elf_record_link_assignment): Call
	bfd_elf_link_mark_dynamic_symbol on new entry.
	(_bfd_elf_merge_symbol): Likewise.
	(_bfd_elf_export_symbol): Return if the symbol isn't exported.
	(_bfd_elf_fix_symbol_flags): Replace info->symbolic with
	SYMBOLIC_BIND (info, h).
	(_bfd_elf_dynamic_symbol_p): Likewise.
	(_bfd_elf_symbol_refs_local_p): Likewise.
	(bfd_elf_size_dynamic_sections): Updated.

include/

2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* bfdlink.h (bfd_elf_dynamic_list): New.
	(bfd_link_info): Add a dynamic field.

ld/

2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (CXX): Set to g++.
	(CXX_FOR_TARGET): Likewise.
	* Makefile.in: Regenerated.

	* NEWS: Mention --dynamic-list.

	* ld.texinfo: Document --dynamic-list.

	* ldgram.y: Support dynamic list.

	* ldlang.c (lang_process): Call lang_finalize_version_expr_head
	on link_info.dynamic if needed.
	(lang_append_dynamic_list): New.
	(lang_append_dynamic_list_cpp_typeinfo): New.
	* ldlang.h (lang_append_dynamic_list): Likewise.
	* ldlang.h (lang_append_dynamic_list_cpp_typeinfo): Likewise.

	* ldlex.h (input_enum): Add input_dynamic_list.
	* ldlex.l: Handle it.

	* ldmain.c (main): Initialize link_info.dynamic.

	* lexsup.c (option_values): Add OPTION_DYNAMIC_LIST and
	OPTION_DYNAMIC_LIST_CPP_TYPEINFO.
	(ld_options): Add entries for OPTION_DYNAMIC_LIST and
	OPTION_DYNAMIC_LIST_CPP_TYPEINFO.
	(parse_args): Handle OPTION_DYNAMIC_LIST and
	OPTION_DYNAMIC_LIST_CPP_TYPEINFO.

ld/testsuite/

2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/dl1.c: New file.
	* ld-elf/dl1.list: Likewise.
	* ld-elf/dl1.out: Likewise.
	* ld-elf/dl1main.c: Likewise.
	* ld-elf/dl2.c: Likewise.
	* ld-elf/dl2.list: Likewise.
	* ld-elf/dl2a.out: Likewise.
	* ld-elf/dl2b.out: Likewise.
	* ld-elf/dl2main.c: Likewise.
	* ld-elf/dl2xxx.c: Likewise.
	* ld-elf/dl2xxx.list: Likewise.
	* ld-elf/dl3.cc: Likewise.
	* ld-elf/dl3.list: Likewise.
	* ld-elf/dl3a.out: Likewise.
	* ld-elf/dl3b.out: Likewise.
	* ld-elf/dl3header.h: Likewise.
	* ld-elf/dl3main.cc: Likewise.

	* ld-elf/shared.exp: Updated.

	* lib/ld-lib.exp (run_ld_link_exec_tests): Take an optional
	argument for source language. Use CC/CXX for link, depending
	on source language.
	(run_cc_link_tests): Likewise.
2006-09-07 17:16:34 +00:00
Alan Modra
a0c4652421 Adjust target test. 2006-08-29 05:16:18 +00:00
Alan Modra
0e7461c15f New tests. 2006-08-29 01:24:17 +00:00
H.J. Lu
3085c3308f 2006-08-23 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3052
	* ld-elf/loadaddr1.t: Add "AT (ADDR(.data))".
	* ld-elf/loadaddr2.t: Likewise.
2006-08-23 14:45:30 +00:00
H.J. Lu
20acfda2ef 2006-08-23 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3103
	* ld-elf/overlay.d: New file.
	* ld-elf/overlay.s: Likewise.
	* ld-elf/overlay.t: Likewise.
2006-08-23 14:43:56 +00:00
Paul Brook
a4fd1a8ee5 2006-08-18 Paul Brook <paul@codesourcery.com>
bfd/
	* elf32-arm.c (elf32_arm_link_hash_entry): Add export_glue.
	(elf32_arm_link_hash_newfunc): Initialize export_glue.
	(record_arm_to_thumb_glue): Return stub symbol.
	(elf32_arm_create_thumb_stub): New function.
	(elf32_arm_to_thumb_stub): Use it.
	(elf32_arm_to_thumb_export_stub): New function.
	(elf32_arm_begin_write_processing): New function.
	(allocate_dynrelocs): Allocate Arm stubs.
	(elf_backend_begin_write_processing): Define.
	(elf32_arm_symbian_begin_write_processing): Remove ATTRIBUTE_UNUSED.
	Call elf32_arm_begin_write_processing.

	ld/
	* emultempl/armelf.em (arm_elf_before_allocation): Call
	gld${EMULATION_NAME}_before_allocation after setting interworking bfd.

	ld/testsuite/
	* ld-arm/arm-elf.exp (armelftests): Add armthumb-lib.so.  Add
	-use-blx to mixed-lib.so
	* ld-arm/armthumb-lib.d: New file.
	* ld-arm/armthumb-lib.sym: New file.
2006-08-18 15:00:18 +00:00
H.J. Lu
7c9e8d9811 2006-08-18 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3052
	* ld-elf/loadaddr.s: New file.
	* ld-elf/loadaddr1.d: Likewise.
	* ld-elf/loadaddr1.t: Likewise.
	* ld-elf/loadaddr2.d: Likewise.
	* ld-elf/loadaddr2.t: Likewise.
2006-08-18 14:38:00 +00:00
Alan Modra
ee4bf8d232 bfd/
* elf64-ppc.c (create_linkage_sections): Align .glink to 8 bytes.
	(ppc64_elf_build_stubs): Use new lazy linking stub.
ld/testsuite/
	* ld-powerpc/tlsexe.d: Update for lazy link stub change.
	* ld-powerpc/tlsexe.r: Likewise.
	* ld-powerpc/tlsexetoc.d: Likewise.
	* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlsso.d: Likewise.
	* ld-powerpc/tlstocso.d: Likewise.
2006-08-17 08:21:06 +00:00
H.J. Lu
c9df6640d5 bfd/
2006-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3015
	* elf.c (get_program_header_size): Add a PT_GNU_RELRO segment
	only if there is a PT_DYNAMIC segment.
	(_bfd_elf_map_sections_to_segments): Likewise.
	(assign_file_positions_for_load_sections): Set PT_GNU_RELRO
	segment alignment to 1.

ld/testsuite/

2006-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3015
	* ld-elf/binutils.exp: Add tests for "-z relro".
2006-08-17 02:04:53 +00:00
Alan Modra
cde9e0be8b ld/
PR 3052
	* ldlang.h (lang_output_section_statement_type): Replace
	"processed" field with "processed_vma" and "processed_lma".
	* ldlang.c (lang_do_assignments_1): Move lma setting code..
	(lang_size_sections_1): ..to here.
	(lang_reset_memory_regions): Adjust for
	lang_output_section_statement_type change.
	* ldexp.c (fold_name): Likewise.

And this is something I forgot the check in from the previous patch.
ld/testsuite/
	* ld-scripts/overlay-size-map.d: Adjust.
2006-08-16 08:31:45 +00:00
Thiemo Seufer
f46cb54199 * ld-elfcomm/elfcomm.exp (dump_common1): Extend regexp to match also
MIPS small commons.
2006-08-11 14:05:12 +00:00
H.J. Lu
0d0999db2f ld/
2006-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3009
	* ldlang.c (update_wild_statements): Update the whole wild
	section list.

ld/testsuite/

2006-08-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3009
	* ld-scripts/sort.t: New file.
	* ld-scripts/sort_b_a-1.d: Likewise.
	* ld-scripts/sort_b_a-1.s: Likewise.
	* ld-scripts/sort_b_n-1.d: Likewise.
	* ld-scripts/sort_b_n-1.s: Likewise.
2006-08-08 15:07:16 +00:00
Nick Clifton
f0927246c4 * bfd.c (bfd_get_sign_extend_vma): Add cases for pe-arm-little and pei-arm-little.
* coff-arm.c (coff_arm_rtype_to_howto) [COFF_WITH_PE]: Handle ARM_SECREL.
  (coff_arm_reloc_type_lookup): Map BFD_RELOC_32_SECREL to  ARM_SECREL.
* pe-arm.c [COFF_SECTION_ALIGNMENT_ENTRIES]: Define.
* pei-arm.c [TARGET_UNDERSCORE]: Define for ARM_WINCE like in pe-arm.c.
  [COFF_SECTION_ALIGNMENT_ENTRIES]: Define.

* config/tc-arm.c: Move "dwarf2dbg.h" inclusion out of OBJ_ELF only block.
  (pe_directive_secrel) [TE_PE]: New function.
  (md_pseudo_table) [!OBJ_ELF]: Handle 2byte, 4byte, 8byte, file, loc, loc_mark_labels.
  [TE_PE]: Handle secrel32.
  (output_relax_insn): Remove OBJ_ELF around dwarf2_emit_insn call.
  (output_inst): Remove OBJ_ELF around dwarf2_emit_insn call.
  (arm_frob_label): Remove OBJ_ELF around dwarf2_emit_label call.
  (md_section_align): Only round section sizes here for AOUT targets.
  (tc_arm_regname_to_dw2regnum): Move out for OBJ_ELF only block.
  (tc_pe_dwarf2_emit_offset): New function.
  (md_apply_fix) [TE_PE]: Handle BFD_RELOC_32_SECREL.
  (cons_fix_new_arm): Handle O_secrel.
* config/tc-arm.h : Move DWARF2_LINE_MIN_INSN_LENGTH, DWARF2_DEFAULT_RETURN_COLUMN and DWARF2_CIE_DATA_ALIGNMENT out of OBJ_ELF only block.
  [TE_PE]: Define O_secrel, TC_DWARF2_EMIT_OFFSET, and declare tc_pe_dwarf2_emit_offset.

* ld-pe/pe.exp: Enable tests on arm-wince-pe.
* ld-pe/secrel.d: Adjust test to work on arm-wince-pe too.
2006-08-06 15:04:23 +00:00
Richard Sandiford
55e6e39790 bfd/
2006-08-02  Richard Sandiford  <richard@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config.bfd (sh-*-vxworks): Use bfd_elf32_shvxworks_vec and
	bfd_elf32_shlvxworks_vec.
	* configure.in (bfd_elf32_sh64_vec): Add elf-vxworks.lo.
	(bfd_elf32_sh64l_vec, bfd_elf32_sh64lin_vec): Likewise.
	(bfd_elf32_sh64blin_vec, bfd_elf32_sh64lnbsd_vec): Likewise.
	(bfd_elf32_sh64nbsd_vec, bfd_elf32_sh_vec): Likewise.
	(bfd_elf32_shblin_vec, bfd_elf32_shl_vec): Likewise.
	(bfd_elf32_shl_symbian_vec, bfd_elf32_shlin_vec): Likewise.
	(bfd_elf32_shlnbsd_vec, bfd_elf32_shnbsd_vec): Likewise.
	(bfd_elf32_shlvxworks_vec, bfd_elf32_shvxworks_vec): New stanzas.
	* configure: Regenerate.
	* Makefile.am: Regenerate dependencies.
	* Makefile.in: Regenerate.
	* elf-vxworks.c (elf_vxworks_gott_symbol_p): New function.
	(elf_vxworks_add_symbol_hook): Use it.
	(elf_vxworks_link_output_symbol_hook): Likewise.  Use the hash
	table entry to check for weak undefined symbols and to obtain
	the original bfd.
	(elf_vxworks_emit_relocs): Use target_index instead of this_idx.
	* elf32-sh-relocs.h: New file, split from elf32-sh.c.
	(R_SH_DIR32): Use SH_PARTIAL32 for the partial_inplace field,
	SH_SRC_MASK32 for the src_mask field, and SH_ELF_RELOC for the
	special_function field.
	(R_SH_REL32): Use SH_PARTIAL32 and SH_SRC_MASK32 here too.
	(R_SH_REL32, R_SH_TLS_GD_32, R_SH_TLS_LD_32): Likewise.
	(R_SH_TLS_LDO_32, R_SH_TLS_IE_32, R_SH_TLS_LE_32): Likewise.
	(R_SH_TLS_DTPMOD32, R_SH_TLS_DTPOFF32, R_SH_TLS_TPOFF32): Likewise.
	(R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT): Likewise.
	(R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Likewise.
	(SH_PARTIAL32, SH_SRC_MASK32, SH_ELF_RELOC): Undefine at end of file.
	* elf32-sh.c: Include elf32-vxworks.h.
	(MINUS_ONE): Define.
	(sh_elf_howto_table): Include elf32-sh-relocs.h with SH_PARTIAL32
	set to TRUE, SH_SRC_MASK32 set to 0xffffffff, and SH_ELF_RELOC set
	to sh_elf_reloc.
	(sh_vxworks_howto_table): New variable.  Include elf32-sh-relocs.h
	with SH_PARTIAL32 set to FALSE, SH_SRC_MASK32 set to 0, and
	SH_ELF_RELOC set to bfd_elf_generic_reloc.
	(vxworks_object_p, get_howto_table): New functions.
	(sh_elf_reloc_type_lookup): Fix typo.  Use get_howto_table.
	(sh_elf_info_to_howto): Use get_howto_table.
	(sh_elf_relax_section): Honor the partial_inplace field of the
	R_SH_DIR32 howto.
	(sh_elf_relax_delete_bytes): Likewise.
	(elf_sh_plt_info): New structure.
	(PLT_ENTRY_SIZE): Replace both definitions with...
	(ELF_PLT_ENTRY_SIZE): ...this new macro, with separate definitions for
	INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
	(elf_sh_plt0_entry_be): Update sizes of both definitions accordingly.
	(elf_sh_plt0_entry_le): Likewise.
	(elf_sh_plt_entry_be, elf_sh_plt_entry_le): Likewise.
	(elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le): Likewise.
	(elf_sh_plts): New structure, with separate definitions for
	INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
	(elf_sh_plt0_entry): Delete both definitions.
	(elf_sh_plt_entry, elf_sh_pic_plt_entry): Likewise.
	(elf_sh_sizeof_plt, elf_sh_plt_plt0_offset): Likewise.
	(elf_sh_plt_temp_offset, elf_sh_plt_symbol_offset): Likewise.
	(elf_sh_plt_reloc_offset): Likewise.
	(movi_shori_putval): Delete in favor of...
	(install_plt_field): ...this new function, with separate definitions
	for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
	(get_plt_info): New function, with separate definitions
	for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA.
	(elf_sh_plt0_linker_offset, elf_sh_plt0_gotid_offset): Delete.
	(VXWORKS_PLT_HEADER_SIZE, VXWORKS_PLT_ENTRY_SIZE): New macros.
	(vxworks_sh_plt0_entry_be, vxworks_sh_plt0_entry_le): New constants.
	(vxworks_sh_plt_entry_be, vxworks_sh_plt_entry_le): Likewise.
	(vxworks_sh_pic_plt_entry_be, vxworks_sh_pic_plt_entry_le): Likewise.
	(get_plt_index, get_plt_offset): New functions.
	(elf_sh_link_hash_table): Add srelplt2, plt_info and vxworks_p fields.
	(sh_elf_link_hash_table_create): Initialize them.
	(sh_elf_create_dynamic_sections): Call
	elf_vxworks_create_dynamic_sections for VxWorks.
	(allocate_dynrelocs): Use htab->plt_info to get the size of PLT
	entries.  Allocate relocation entries in .rela.plt.unloaded if
	generating a VxWorks executable.
	(sh_elf_always_size_sections): New function.
	(sh_elf_size_dynamic_sections): Extend .rela.plt handling to
	.rela.plt.unloaded.
	(sh_elf_relocate_section): Use get_howto_table.  Honor
	partial_inplace when calculating the addend for dynamic
	relocations.  Use get_plt_index.
	(sh_elf_finish_dynamic_symbol): Use get_plt_index, install_plt_field
	and htab->plt_info.  Fill in the bra .plt offset for VxWorks
	executables.  Populate .rela.plt.unloaded.  Do not make
	_GLOBAL_OFFSET_TABLE_ absolute on VxWorks.
	(sh_elf_finish_dynamic_sections): Use install_plt_field and
	htab->plt_info.  Handle cases where there is no special PLT header.
	Populate the first relocation in .rela.plt.unloaded and fix up
	the remaining entries.
	(sh_elf_plt_sym_val): Use get_plt_info.
	(elf_backend_always_size_sections): Define.
	(TARGET_BIG_SYM, TARGET_BIG_NAME): Override for VxWorks.
	(TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
	(elf32_bed, elf_backend_want_plt_sym): Likewise.
	(elf_symbol_leading_char, elf_backend_want_got_underscore): Likewise.
	(elf_backend_grok_prstatus, elf_backend_grok_psinfo): Likewise.
	(elf_backend_add_symbol_hook): Likewise.
	(elf_backend_link_output_symbol_hook): Likewise.
	(elf_backend_emit_relocs): Likewise.
	(elf_backend_final_write_processing): Likewise.
	(ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): Likewise.
	* targets.c (bfd_elf32_shlvxworks_vec): Declare.
	(bfd_elf32_shvxworks_vec): Likewise.
	(_bfd_target_vector): Include bfd_elf32_shlvxworks_vec and
	bfd_elf32_shvxworks_vec.

gas/
	* config/tc-sh.c (apply_full_field_fix): New function.
	(md_apply_fix): Use it instead of md_number_to_chars.  Do not fill
	in fx_addnumber for BFD_RELOC_32_PLT_PCREL.
	(tc_gen_reloc): Use fx_addnumber rather than 0 as the default case.
	* config/tc-sh.h (TARGET_FORMAT): Override for TE_VXWORKS.

ld/
2006-08-02  Richard Sandiford  <richard@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>

	* Makefile.am (ALL_EMULATIONS): Add eshelf_vxworks.o and
	eshlelf_vxworks.o.
	(eshelf_vxworks.c, eshlelf_vxworks.c): New rules.
	* Makefile.in: Regenerate.
	* configure.tgt (sh-*-vxworks): Use shelf_vxworks and
	shlelf_vxworks.
	* emulparams/shelf_vxworks.sh: New file.
	* emulparams/shlelf_vxworks.sh: Likewise.
	* emulparams/vxworks.sh (FINI): Prefix _etext with ${SYMPREFIX}.
	(OTHER_END_SYMBOLS): Likewise _ehdr.
	(DATA_END_SYMBOLS): Likewise _edata.
	* emultempl/vxworks.em (vxworks_after_open): Check whether output_bfd
	is indeed an ELF file before dealing with --force-dynamic.

ld/testsuite/
	* ld-sh/rd-sh.exp: Treat vxworks1-static.d specially.
	* ld-sh/sh-vxworks.exp: New file.
	* ld-sh/sh.exp: Extend sh-linux SIZEOF_HEADERS handling to
	sh-*-vxworks.
	* ld-sh/vxworks1-le.dd, ld-sh/vxworks1-lib-le.dd,
	* ld-sh/vxworks1-lib.dd, ld-sh/vxworks1-lib.nd,
	* ld-sh/vxworks1-lib.rd, ld-sh/vxworks1-lib.s,
	* ld-sh/vxworks1-static.d, ld-sh/vxworks1.dd,
	* ld-sh/vxworks1.ld, ld-sh/vxworks1.rd, ld-sh/vxworks1.s,
	* ld-sh/vxworks2-static.sd, ld-sh/vxworks2.s,
	* ld-sh/vxworks2.sd, ld-sh/vxworks3-le.dd,
	* ld-sh/vxworks3-lib-le.dd, ld-sh/vxworks3-lib.dd,
	* ld-sh/vxworks3-lib.s, ld-sh/vxworks3.dd, ld-sh/vxworks3.s,
	* ld-sh/vxworks4.d, ld-sh/vxworks4a.s, ld-sh/vxworks4b.s,
	* ld-sh/reloc1.s, ld-sh/reloc1.d: New tests.
2006-08-04 13:13:56 +00:00
H.J. Lu
12d814e1a0 ld/
2006-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* ldlang.c (init_os): Add flags. Replace bfd_make_section with
	bfd_make_section_with_flags.
	(exp_init_os): Updated.
	(lang_add_section): Call init_os with flags.
	(map_input_to_output_sections): Likewise.

ld/testsuite/

2006-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/noload-1.d: New.
	* ld-elf/noload-1.s: Likewise.
	* ld-elf/noload-1.t: Likewise.
2006-08-01 17:50:52 +00:00
Richard Sandiford
73934d319d ld/
* Makefile.am (eelf32b4300.c): Update dependencies.
	(eelf32bmip.c): Likewise.
	(eelf32bsmip.c): Likewise.
	(eelf32btsmip.c): Likewise.
	(eelf32btsmipn32.c): Likewise.
	(eelf32ltsmip.c): Likewise.
	(eelf32ltsmipn32.c): Likewise.
	(eelf32ebmip.c): Likewise.
	(eelf32ebmipvxworks.c): Likewise.
	(eelf32elmip.c): Likewise.
	(eelf32elmipvxworks.c): Likewise.
	(eelf32bmipn32.c): Likewise.
	(eelf32lmip.c): Likewise.
	(eelf32mipswindiss.c): Likewise.
	(eelf32lsmip.c): Likewise.
	(eelf64bmip.c): Likewise.
	(eelf64btsmip.c): Likewise.
	(eelf64ltsmip.c): Likewise.
	(emipsbig.c): Likewise.  Canonicalize ${GENSCRIPTS} line.
	(emipsbsd.c): Likewise.
	(emipsidt.c): Update dependencies.
	(emipsidtl.c): Likewise.
	(emipslit.c): Likewise.
	(emipslnews.c): Likewise.
	(emipspe.c): Likewise.  Fix ${GENSCRIPTS} invocation.
	* Makefile.in: Regenerate.
	* emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define.
	* emulparams/elf32bmipn32-defs.sh (EXTRA_EM_FILE): Likewise.
	* emultempl/irix.em: Include emultempl/mipself.em.
	* emultempl/mipself.em: New file.

ld/testsuite/
	* ld-mips-elf/hash1.s, ld-mips-elf/hash1a.d,
	* ld-mips-elf/hash1b.d, ld-mips-elf/hash1c.d: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2006-07-29 08:48:15 +00:00
Alan Modra
a7f651f7f2 * ld-scripts/overlay-size-map.d: Update. 2006-07-26 05:10:05 +00:00
Thiemo Seufer
6085129af6 * ld-mips-elf/mips16-call-global-2.s,
ld-mips-elf/mips16-call-global-3.s, ld-mips-elf/mips16-call-global.d:
	Improve test robustness.
2006-07-25 16:45:55 +00:00
Nick Clifton
3e4cf9243a * ld-sh/arch/arch.exp (test_arch): Set the endian flag to suit the multilib
being tested.
2006-07-21 09:56:40 +00:00
Thiemo Seufer
35d3d567cc [ bfd/ChangeLog ]
* elf32-mips.c (mips16_jump_reloc): Remove function.
	(elf_mips16_howto_table_rel): Use _bfd_mips_elf_generic_reloc
	instead of mips16_jump_reloc.
	* elf64_mips.c, wlfn32-mips.c (mips16_jump_reloc): Remove function.
	(elf_mips16_howto_table_rel, elf_mips16_howto_table_rela): Use
	_bfd_mips_elf_generic_reloc instead of mips16_jump_reloc.

	[ gas/ChangeLog ]
	* config/tc-mips.c (mips_fix_adjustable): Handle BFD_RELOC_MIPS16_JMP.
	(tc_gen_reloc): Handle mips16 jumps to section symbol offsets.

	[ ld/testsuite/ChangeLog ]
	* ld-mips-elf/mips16-call-global-1.s,
	ld-mips-elf/mips16-call-global-2.s,
	ld-mips-elf/mips16-call-global-3.s, ld-mips-elf/mips16-call-global.d:
	Test linking of external mips16 jumps.
	* ld-mips-elf/mips-elf.exp: Run new test.
2006-07-20 16:46:30 +00:00
Thiemo Seufer
8c991f1883 * ld-selective/selective.exp: Fix selective testcases for MIPS. 2006-07-19 11:49:32 +00:00
Thiemo Seufer
5bf2ff2f3e * ld-mips-elf/tlslib-o32-ver.got, ld-mips-elf/tlslib-o32.got:
Update TLS testcases.
2006-07-13 10:58:47 +00:00
H.J. Lu
d2dee3b25c bfd/
2006-07-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/2884
	* elflink.c (_bfd_elf_merge_symbol): Copy the symbol info from
	the old versioned dynamic definition to the new one with
	non-default visibility.  Hide the symbol if it is hidden or
	internal.

ld/testsuite/

2006-07-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/2884
	* ld-elf/begin.c: New file.
	* ld-elf/end.c: Likewise.
	* ld-elf/endhidden.c: Likewise.
	* ld-elf/endprotected.c: Likewise.
	* ld-elf/foo.c: Likewise.
	* ld-elf/foo.map: Likewise.
	* ld-elf/hidden.out: Likewise.
	* ld-elf/main.c: Likewise.
	* ld-elf/normal.out: Likewise.
	* ld-elf/shared.exp: Likewise.

	* lib/ld-lib.exp (run_cc_link_tests): New.
2006-07-12 15:45:33 +00:00
Richard Sandiford
fb405f8a9f bfd/
2006-07-12  Matthew R. Dempsky  <mrd@alkemio.org>

	* cpu-m68k.c (bfd_m68k_compatible): Handle CPU32.

ld/testsuite/
2006-07-12  Richard Sandiford  <richard@codesourcery.com>

	* ld-m68k/merge-ok-1c.d: New test.
	* ld-m68k/m68k.exp: Run it.
2006-07-12 12:47:00 +00:00
Hans-Peter Nilsson
73724cd71b * ld-cris/libdso-2.d: Adjust for recent hash-related changes. 2006-07-11 21:47:41 +00:00
Jakub Jelinek
fdc90cb46b include/
* bfdlink.h (struct bfd_link_info): Add emit_hash and
	emit_gnu_hash bitfields.
include/elf/
	* common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.
ld/
	* scripttempl/elf.sc: Add .gnu.hash section.
	* emultempl/elf32.em (OPTION_HASH_STYLE): Define.
	(gld${EMULATION_NAME}_add_options): Register --hash-style option.
	(gld${EMULATION_NAME}_handle_option): Handle it.
	(gld${EMULATION_NAME}_list_options): Document it.
	* ldmain.c (main): Initialize emit_hash and emit_gnu_hash.
	* ld.texinfo: Document --hash-style option.
bfd/
	* elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH.
	(bfd_section_from_shdr, elf_fake_sections, assign_section_numbers):
	Handle SHT_GNU_HASH.
	(special_sections_g): Include .gnu.hash section.
	(bfd_elf_gnu_hash): New function.
	* elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes.
	(struct elf_backend_data): Add elf_hash_symbol method.
	* elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash
	only if info->emit_hash, create .gnu.hash section if
	info->emit_gnu_hash.
	(struct collect_gnu_hash_codes): New type.
	(elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms,
	_bfd_elf_hash_symbol): New functions.
	(compute_bucket_count): Don't compute HASHCODES array, instead add
	that and NSYMS as arguments.  Use bed->s->sizeof_hash_entry
	instead of bed->s->arch_size / 8.  Fix .hash size estimation.
	When not optimizing, use the number of hashed symbols rather than
	dynsymcount.
	(bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash,
	and ADD DT_GNU_HASH if info->emit_gnu_hash.
	(bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash,
	adjust compute_bucket_count caller.  Create and populate .gnu.hash
	section if info->emit_gnu_hash.
	(elf_link_output_extsym): Only populate .hash section if
	finfo->hash_sec != NULL.
	(bfd_elf_final_link): Adjust assertion.  Handle DT_GNU_HASH.
	* elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined.
	(elfNN_bed): Add elf_backend_hash_symbol.
	* elf64-x86-64.c (elf64_x86_64_hash_symbol): New function.
	(elf_backend_hash_symbol): Define.
	* elf32-i386.c (elf_i386_hash_symbol): New function.
	(elf_backend_hash_symbol): Define.
binutils/
	* readelf.c (get_dynamic_type): Handle DT_GNU_HASH.
	(get_section_type_name): Handle SHT_GNU_HASH.
	(dynamic_info_DT_GNU_HASH): New variable.
	(process_dynamic_section): Handle DT_GNU_HASH.
	(process_symbol_table): Print also DT_GNU_HASH histogram.
ld/testsuite/
	* ld-powerpc/tlsso32.r: Adjust.
	* ld-powerpc/tlsso32.d: Adjust.
	* ld-powerpc/tlsso32.g: Adjust.
	* ld-powerpc/tlsso.r: Adjust.
	* ld-powerpc/tlsso.g: Adjust.
	* ld-powerpc/tlstocso.g: Adjust.
2006-07-10 21:40:25 +00:00
Thiemo Seufer
de4f2349c5 * ld-mips-elf/multi-got-1.d, ld-mips-elf/tls-multi-got-1.got,
ld-mips-elf/tls-multi-got-1.r: Update multigot testcases.
2006-07-05 16:01:38 +00:00
H.J. Lu
10efb593b7 bfd/
2006-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_relocate_section): Use xchg %ax,%ax
	instead of 2 nops.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_plt0_entry): Use nopl 0(%rax) instead of 4 nops.

ld/testsuite/

2006-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-i386/tlsbindesc.dd: Updated to expect xchg %ax,%ax instead
	of 2 nops.
	* ld-i386/tlsdesc.dd: Likewise.
	* ld-i386/tlsgdesc.dd: Likewise.
	* ld-x86-64/tlsbindesc.dd: Likewise.
	* ld-x86-64/tlsdesc.dd: Likewise.
	* ld-x86-64/tlsdesc.pd: Likewise.
	* ld-x86-64/tlsgdesc.dd: Likewise.
2006-06-30 14:16:13 +00:00
Jakub Jelinek
ebcfb3c00f PR ld/2513
* elf32-i386.c (GOT_TLS_MASK, GOT_TLS_IE_IE, GOT_TLS_IE_GD,
	GOT_TLS_IE_MASK, elf_i386_check_relocs, allocate_dynrelocs): Revert
	2006-04-08 changes.
	(elf_i386_relocate_section): Likewise.  For GD->IE transition
	change subl into addl whenever tls_type is GOT_TLS_IE_POS.

	* ld-i386/tlsbin.dd: Fix expected output.
2006-06-29 12:34:37 +00:00
Alan Modra
c219a7a5ff * ld-elf/tls_common.exp: Match 32-bit output. 2006-06-21 05:36:17 +00:00
Jakub Jelinek
6a4a0940e5 * elflink.c (elf_link_add_object_symbols): Don't create .tcommon
section for relocatable link.

	* ld-elf/tls_common.exp: New test.
	* ld-elf/tls_common.s: New file.
2006-06-20 16:36:18 +00:00
Alan Modra
8ded5a0fc3 bfd/
* elf-bfd.h: Formatting.
	(_bfd_elf_map_sections_to_segments): Declare.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame_hdr): Don't
	clear program_header_size.
	* elf.c (get_program_header_size): Move.  Don't use or set saved
	program_header_size here.
	(elf_modify_segment_map): New function.  Split out from..
	(assign_file_positions_for_load_sections): ..here.  Assert
	header size is correct.  Remove dead code.
	(_bfd_elf_map_sections_to_segments): Rename from
	map_sections_to_segments.  Make global.  Use get_program_header_size
	when we need estimate of header size.  Call elf_modify_segment_map.
	Set program_header_size.
	(print_segment_map): Delete.
	(_bfd_elf_sizeof_headers): If segment_map available, get the
	actual size.
	* elf32-arm.c (elf32_arm_symbian_modify_segment_map): Make safe
	for calling more than once.
	* elf32-bfin.c (elf32_bfinfdpic_modify_segment_map): Likewise.
	* elf32-frv.c (elf32_frvfdpic_modify_segment_map): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Likewise.
	* elf32-i370.c (elf_backend_add_symbol_hook): Delete.
	(elf_backend_additional_program_headers): Delete.
	(elf_backend_modify_segment_map): Delete.
	* elf64-hppa.c (elf64_hppa_modify_segment_map): Convert to ISO C.
	* elfxx-ia64.c (elfNN_ia64_modify_segment_map): Likewise.
	* doc/bfdint.texi: Delete SIZEOF_HEADERS difficulties.
ld/
	* Makefile.am (ELF_DEPS): Define.  Use in emul file deps.  Fix
	many ELF emul file deps that incorrectly said they needed elf32.em
	instead of generic.em.  Add genelf.em as required.
	* Makefile.in: Regenerate.
	* ldlang.c (lang_process): Call ldemul_finish before
	lang_check_section_addresses.
	* emulparams/arcelf.sh: Generic elf target needs genelf.
	* emulparams/d30v_e.sh: Likewise.
	* emulparams/d30v_o.sh: Likewise.
	* emulparams/d30velf.sh: Likewise.
	* emulparams/elf32_dlx.sh: Likewise.
	* emulparams/elf32_i860.sh: Likewise.
	* emulparams/elf32fr30.sh: Likewise.
	* emulparams/elf32frv.sh: Likewise.
	* emulparams/elf32iq10.sh: Likewise.
	* emulparams/elf32iq2000.sh: Likewise.
	* emulparams/elf32mt.sh: Likewise.
	* emulparams/mn10200.sh: Likewise.
	* emulparams/or32.sh: Likewise.
	* emulparams/or32elf.sh: Likewise.
	* emulparams/pjelf.sh: Likewise.
	* emulparams/msp430all.sh: Likewise.  Extract common entries.
	* emulparams/pjlelf.sh: Include pjelf.sh.
	* emulparams/elf32frvfd.sh (EXTRA_EM_FILE): Unset.
	* emulparams/mn10300.sh (EXTRA_EM_FILE): Unset.
	* emultempl/elf-generic.em: New file.
	* emultempl/genelf.em: New file.
	* emultempl/elf32.em: Include elf-generic.em.
	(gld${EMULATION_NAME}_layout_sections_again): Delete.
	(gld${EMULATION_NAME}_finish): Call gld${EMULATION_NAME}_map_segments.
	* emultempl/hppaelf.em (hppaelf_layout_sections_again): Likewise.
	(gld${EMULATION_NAME}_finish): Rename from hppaelf_finish.  Call
	gld${EMULATION_NAME}_map_segments.
	(LDEMUL_FINISH): Update.
	* emultempl/mmo.em: Correct comment.  Include elf-bfd.h and
	source elf-generic.em.
	(mmo_finish): Call gld${EMULATION_NAME}_map_segments.
	* emultempl/ppc64elf.em (ppc_layout_sections_again): Likewise.
	(gld${EMULATION_NAME}_finish): Rename from ppc_finish.  Call
	gld${EMULATION_NAME}_map_segments.
	(LDEMUL_FINISH): Update.
ld/testsuite/
	* ld-elf/eh1.d: Update for fewer program headers.
	* ld-elf/eh2.d: Likewise.
	* ld-elf/eh3.d: Likewise.
2006-06-20 02:22:16 +00:00
Paul Brook
0fa3dcad7e 2006-06-19 Vladimir Prus <vladimir@codesourcery.com>
bfd/
	* elf32-arm.c (elf32_arm_swap_symbol_out): Don't set low
	bit for undefined symbols.

	ld/testsuite
	* ld-arm/arm-elf.exp: New test.
	* ld-arm/use-thumb-lib.s: New file.
	* ld-arm/use-thumb-lib.sym: New file.
2006-06-19 14:22:27 +00:00
Mark Shinwell
4962c51a67 * include/elf/arm.h: Correct names of R_ARM_LDC_G{0,1,2}
to R_ARM_LDC_SB_G{0,1,2} respectively.

bfd/
	* bfd-in2.h: Regenerate.
	* elf32-arm.c (R_ARM_ALU_PC_G0_NC, R_ARM_ALU_PC_G0,
	R_ARM_ALU_PC_G1_NC, R_ARM_ALU_PC_G1, R_ARM_ALU_PC_G2,
	R_ARM_LDR_PC_G1, R_ARM_LDR_PC_G2, R_ARM_LDRS_PC_G0,
	R_ARM_LDRS_PC_G1, R_ARM_LDRS_PC_G2, R_ARM_LDC_PC_G0,
	R_ARM_LDC_PC_G1, R_ARM_LDC_PC_G2, R_ARM_ALU_SB_G0_NC,
	R_ARM_ALU_SB_G0, R_ARM_ALU_SB_G1_NC, R_ARM_ALU_SB_G1,
	R_ARM_ALU_SB_G2, R_ARM_LDR_SB_G0, R_ARM_LDR_SB_G1,
	R_ARM_LDR_SB_G2, R_ARM_LDRS_SB_G0, R_ARM_LDRS_SB_G1,
	R_ARM_LDRS_SB_G2, R_ARM_LDC_SB_G0, R_ARM_LDC_SB_G1,
	R_ARM_LDC_SB_G2): New relocation types.
	(R_ARM_PC13): Rename to AAELF name R_ARM_LDR_PC_G0 and
	adjust HOWTO entry to be consistent with R_ARM_LDR_PC_G1
	and friends.
	(elf32_arm_howto_table_3): Delete; contents merged into
	elf32_arm_howto_table_2.
	(elf32_arm_howto_from_type): Adjust correspondingly.
	(elf32_arm_reloc_map): Extend with the above relocations.
	(calculate_group_reloc_mask): New function.
	(identify_add_or_sub): New function.
	(elf32_arm_final_link_relocate): Support for the above
	relocations.
	* reloc.c: Add enumeration entries for BFD_RELOC_ARM_...
	codes to correspond to the above relocations.

gas/
	* config/tc-arm.c (enum parse_operand_result): New.
	(struct group_reloc_table_entry): New.
	(enum group_reloc_type): New.
	(group_reloc_table): New array.
	(find_group_reloc_table_entry): New function.
	(parse_shifter_operand_group_reloc): New function.
	(parse_address_main): New function, incorporating code
	from the old parse_address function.  To be used via...
	(parse_address): wrapper for parse_address_main; and
	(parse_address_group_reloc): new function, likewise.
	(enum operand_parse_code): New codes OP_SHG, OP_ADDRGLDR,
	OP_ADDRGLDRS, OP_ADDRGLDC.
	(parse_operands): Support for these new operand codes.
	New macro po_misc_or_fail_no_backtrack.
	(encode_arm_cp_address): Preserve group relocations.
	(insns): Modify to use the above operand codes where group
	relocations are permitted.
	(md_apply_fix): Handle the group relocations
	ALU_PC_G0_NC through LDC_SB_G2.
	(tc_gen_reloc): Likewise.
	(arm_force_relocation): Leave group relocations for the linker.
	(arm_fix_adjustable): Likewise.

gas/testsuite/
	* gas/arm/group-reloc-alu.d: New test.
	* gas/arm/group-reloc-alu-encoding-bad.d: New test.
	* gas/arm/group-reloc-alu-encoding-bad.l: New test.
	* gas/arm/group-reloc-alu-encoding-bad.s: New test.
	* gas/arm/group-reloc-alu-parsing-bad.d: New test.
	* gas/arm/group-reloc-alu-parsing-bad.l: New test.
	* gas/arm/group-reloc-alu-parsing-bad.s: New test.
	* gas/arm/group-reloc-alu.s: New test.
	* gas/arm/group-reloc-ldc.d: New test.
	* gas/arm/group-reloc-ldc-encoding-bad.d: New test.
	* gas/arm/group-reloc-ldc-encoding-bad.l: New test.
	* gas/arm/group-reloc-ldc-encoding-bad.s: New test.
	* gas/arm/group-reloc-ldc-parsing-bad.d: New test.
	* gas/arm/group-reloc-ldc-parsing-bad.l: New test.
	* gas/arm/group-reloc-ldc-parsing-bad.s: New test.
	* gas/arm/group-reloc-ldc.s: New test.
	* gas/arm/group-reloc-ldr.d: New test.
	* gas/arm/group-reloc-ldr-encoding-bad.d: New test.
	* gas/arm/group-reloc-ldr-encoding-bad.l: New test.
	* gas/arm/group-reloc-ldr-encoding-bad.s: New test.
	* gas/arm/group-reloc-ldr-parsing-bad.d: New test.
	* gas/arm/group-reloc-ldr-parsing-bad.l: New test.
	* gas/arm/group-reloc-ldr-parsing-bad.s: New test.
	* gas/arm/group-reloc-ldr.s: New test.
	* gas/arm/group-reloc-ldrs.d: New test.
	* gas/arm/group-reloc-ldrs-encoding-bad.d: New test.
	* gas/arm/group-reloc-ldrs-encoding-bad.l: New test.
	* gas/arm/group-reloc-ldrs-encoding-bad.s: New test.
	* gas/arm/group-reloc-ldrs-parsing-bad.d: New test.
	* gas/arm/group-reloc-ldrs-parsing-bad.l: New test.
	* gas/arm/group-reloc-ldrs-parsing-bad.s: New test.
	* gas/arm/group-reloc-ldrs.s: New test.

ld/testsuite/
	* ld-arm/group-relocs-alu-bad.d: New test.
	* ld-arm/group-relocs-alu-bad.s: New test.
	* ld-arm/group-relocs.d: New test.
	* ld-arm/group-relocs-ldc-bad.d: New test.
	* ld-arm/group-relocs-ldc-bad.s: New test.
	* ld-arm/group-relocs-ldr-bad.d: New test.
	* ld-arm/group-relocs-ldr-bad.s: New test.
	* ld-arm/group-relocs-ldrs-bad.d: New test.
	* ld-arm/group-relocs-ldrs-bad.s: New test.
	* ld-arm/group-relocs.s: New test.
	* ld-arm/arm-elf.exp: Wire in new tests.
2006-06-15 11:03:02 +00:00
Richard Sandiford
cc3e26bed7 bfd/
* elf32-m68k.c (elf_m68k_plt_info): New structure.
	(elf_m68k_plt0_entry): Add R_68K_PC32-style in-place addends.
	(elf_m68k_plt_entry): Likewise.
	(elf_m68k_plt_info): New table.
	(CFV4E_PLT_ENTRY_SIZE): Rename to...
	(ISAB_PLT_ENTRY_SIZE): ...this.
	(CFV4E_FLAG): Delete.
	(elf_cfv4e_plt0_entry): Rename to...
	(elf_isab_plt0_entry): ...this.  Adjust comments.  Use (-6,%pc,%d0)
	for the second instruction too.
	(elf_cfv4e_plt_entry): Rename to...
	(elf_isab_plt_entry): ...this.  Adjust comments and use (-6,%pc,%d0).
	(elf_isab_plt_info): New table.
	(CPU32_FLAG): Delete.
	(PLT_CPU32_ENTRY_SIZE): Rename to...
	(CPU32_PLT_ENTRY_SIZE): ...this.
	(elf_cpu32_plt0_entry): Update bounds accordingly.  Add R_68K_PC32-
	style in-place addends.
	(elf_cpu32_plt_entry): Likewise.
	(elf_cpu32_plt_info): New table.
	(elf_m68k_link_hash_table): Add a plt_info field.
	(elf_m68k_link_hash_table_create): Initialize it.
	(elf_m68k_get_plt_info): New function.
	(elf_m68k_always_size_sections): Likewise.
	(elf_m68k_adjust_dynamic_symbol): Use the plt_info hash table field.
	(elf_m68k_install_pc32): New function.
	(elf_m68k_finish_dynamic_symbol): Factor code using plt_info and
	elf_m68k_install_pc32.
	(elf_m68k_finish_dynamic_sections): Likewise.
	(elf_m68k_plt_sym_val): Use elf_m68k_get_plt_info.
	(elf_backend_always_size_sections): Define.

ld/testsuite/
	* ld-m68k/plt1.s, ld-m68k/plt1-empty.s, ld-m68k/plt1.ld: New files.
	* ld-m68k/plt1-68020.d, ld-m68k/plt1-cpu32.d: Likewise.
	* ld-m68k/plt1-isab.d: Likewise.
	* ld-m68k/m68k.exp: Run new PLT tests.
2006-06-14 08:27:41 +00:00
Thiemo Seufer
7fd91fe0bb [ bfd/ChangeLog ]
* elf32-mips.c: Expand comment about ABI-mandated pagesize values.
	(ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): define in a more obvious way.
	* elf64-mips.c, elfn32-mips.c (ELF_MAXPAGESIZE): Fix value for IRIX6.
	Delete old comments.
	(ELF_COMMONPAGESIZE): Define in a more obvious way.

	[ ld/ChangeLog ]
	* emulparams/elf64bmip.sh, emulparams/elf64btsmip.sh (COMMONPAGESIZE):
	Define.

	[ ld/testsuite/ChangeLog ]
	* ld-mips-elf/multi-got-no-shared.d: Adjust for recent change of
	ELF_MAXPAGESIZE.
2006-06-12 11:35:45 +00:00
Richard Sandiford
5108fc1bc9 bfd/
* elfxx-mips.c (mips_elf_link_hash_table): Add function_stub_size.
	(STUB_ORI): New macro.
	(STUB_LI16U): Fix formatting.
	(MIPS_FUNCTION_STUB_SIZE): Delete.
	(MIPS_FUNCTION_STUB_MAX_SIZE): Likewise.
	(MIPS_FUNCTION_STUB_NORMAL_SIZE): New macro.
	(MIPS_FUNCTION_STUB_BIG_SIZE): Likewise.
	(_bfd_mips_elf_adjust_dynamic_symbol): Use htab->function_stub_size
	instead of MIPS_FUNCTION_STUB_SIZE.
	(count_section_dynsyms): New function, split out from
	_bfd_mips_elf_final_link.
	(_bfd_mips_elf_always_size_sections): Get a worst-case estimate
	of the number of dynamic symbols needed and use it to set up
	function_stub_size.  Use function_stub_size rather than
	MIPS_FUNCTION_STUB_SIZE to determine the size of the stub section.
	Use 16-byte stubs for 0x10000 dynamic symbols.
	(_bfd_mips_elf_size_dynamic_sections): Use htab->function_stub_size
	instead of MIPS_FUNCTION_STUB_SIZE.  Fix formatting.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.  Change the
	size of the stub buffer from MIPS_FUNCTION_STUB_MAX_SIZE to
	MIPS_FUNCTION_STUB_BIG_SIZE.  Tweak the check for unhandled dynindxes.
	Use MIPS_FUNCTION_STUB_BIG_SIZE rather than a hard-coded 20.
	Use STUB_ORI rather than STUB_LI16U for big stubs.
	(_bfd_mips_elf_link_hash_table_create): Initialize function_stub_size.
	(_bfd_mips_elf_final_link): Use count_section_dynsyms.

ld/testsuite/
	* ld-mips-elf/stub-dynsym-1.s,
	* ld-mips-elf/stub-dynsym-1.ld,
	* ld-mips-elf/stub-dynsym-1-7fff.d,
	* ld-mips-elf/stub-dynsym-1-8000.d,
	* ld-mips-elf/stub-dynsym-1-fff0.d,
	* ld-mips-elf/stub-dynsym-1-10000.d,
	* ld-mips-elf/stub-dynsym-1-2fe80.d: New test.
	* ld-mips-elf/mips-elf.exp: Run it.
2006-06-11 08:33:27 +00:00
Alan Modra
65864bd2a6 * ld-elfvers/vers.exp (objdump_versionstuff): Allow versions in
any order.
	* ld-elfvers/vers1.ver: Update.
	* ld-elfvers/vers2.ver: Update.
	* ld-elfvers/vers4a.ver: Update.
	* ld-elfvers/vers7a.ver: Update.
	* ld-elfvers/vers8.ver: Update.
	* ld-elfvers/vers9.ver: Update.
	* ld-elfvers/vers15.ver: Update.
	* ld-elfvers/vers16a.ver: Update.
	* ld-elfvers/vers17.ver: Update.
	* ld-elfvers/vers18.ver: Update.
	* ld-elfvers/vers20.ver: Update.
	* ld-elfvers/vers20a.ver: Update.
	* ld-elfvers/vers21.ver: Update.
	* ld-elfvers/vers22a.ver: Update.
	* ld-elfvers/vers22b.ver: Update.
	* ld-elfvers/vers23a.ver: Update.
	* ld-elfvers/vers23b.ver: Update.
	* ld-elfvers/vers23c.ver: Update.
	* ld-elfvers/vers25a.ver: Update.
	* ld-elfvers/vers26a.ver: Update.
	* ld-elfvers/vers27a.ver: Update.
	* ld-elfvers/vers27d.ver: Update.
	* ld-elfvers/vers28b.ver: Update.
	* ld-elfvers/vers29.ver: Update.
	* ld-elfvers/vers30.ver: Update.
	* ld-elfvers/vers31.ver: Update.
2006-06-06 04:30:21 +00:00
Alan Modra
bac7e5292c * ld-elf/sec64k.exp: Add "main" symbol. Use dc.a for addresses.
Cater for different address sizes.  Match end of line when
	comparing symbols.
	* ld-elf/start.s: Use dc.a for addresses.
2006-06-05 12:53:50 +00:00
Alan Modra
92c6c67a5d * ld-powerpc/tlsexe.r: Update for removal of some section syms.
* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlsso.r: Likewise.
	* ld-powerpc/tlstocso.r: Likewise.
	* ld-s390/tlsbin_64.rd: Likewise.
	* ld-s390/tlspic_64.rd: Likewise.
2006-06-02 07:53:30 +00:00
Alan Modra
f0b5bb34d5 bfd/
PR ld/2723
	* elflink.c (bfd_elf_final_link): Don't output section symbols
	for special ELF sections.
ld/testsuite/
Update for removal of some section syms.
2006-06-02 00:32:00 +00:00
H.J. Lu
1224efb888 include/elf/
2006-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* internal.h (ELF_SECTION_SIZE): New.
	(ELF_IS_SECTION_IN_SEGMENT): Likewise.
	(ELF_IS_SECTION_IN_SEGMENT_FILE): Updated.
	(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.

ld/testsuite/

2006-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/binutils.exp: Make it Linux only.
	(strip_test): Renamed to binutils_test. Check for unsupported
	options.
	Add more tests.

	* ld-elf/commonpage1.d: Make it Linux only.
	* ld-elf/maxpage1.d: Likewise.

	* ld-elf/maxpage1.s: Add main, start and __start.

	* ld-elf/maxpage2.d: New file.
	* ld-elf/tbss1.s: Likewise.
	* ld-elf/tbss2.s: Likewise.
	* ld-elf/tdata1.s: Likewise.
	* ld-elf/tdata2.s: Likewise.
2006-06-01 05:40:24 +00:00
H.J. Lu
24718e3ba5 bfd/
2006-05-30  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd.c (bfd_emul_get_maxpagesize): New.
	(bfd_elf_set_pagesize): Likewise.
	(bfd_emul_set_maxpagesize): Likewise.
	(bfd_emul_get_commonpagesize): Likewise.
	(bfd_emul_set_commonpagesize): Likewise.
	* bfd-in2.h: Regenerated.

	* elf-bfd.h (elf_backend_data): Add commonpagesize.
	(xvec_get_elf_backend_data): New.
	(get_elf_backend_data): Use xvec_get_elf_backend_data.

	* elf32-arm.c (elf32_arm_vxworks_bed): Remove const.
	* elfxx-target.h (elfNN_bed): Likewise.

	* elf32-arm.c (ELF_COMMONPAGESIZE): Defined.
	* elf32-mips.c (ELF_COMMONPAGESIZE): Likewise.
	* elf32-ppc.c (ELF_COMMONPAGESIZE): Likewise.
	* elf32-sh.c (ELF_COMMONPAGESIZE): Likewise.
	* elf32-sh64.c (ELF_COMMONPAGESIZE): Likewise.
	* elf32-sparc.c (ELF_COMMONPAGESIZE): Likewise.
	* elf64-alpha.c (ELF_COMMONPAGESIZE): Likewise.
	* elf64-ppc.c (ELF_COMMONPAGESIZE): Likewise.
	* elf64-sparc.c (ELF_COMMONPAGESIZE): Likewise.
	* elf64-x86-64.c (ELF_COMMONPAGESIZE): Likewise.
	* elfn32-mips.c (ELF_COMMONPAGESIZE): Likewise.
	* elfxx-ia64.c (ELF_COMMONPAGESIZE): Likewise.

	* elfxx-target.h (ELF_COMMONPAGESIZE): Define if not defined.
	(elfNN_bed): Initialize commonpagesize with ELF_COMMONPAGESIZE.

	* targets.c (bfd_find_target): Support NULL abfd.

ld/

2006-05-30  H.J. Lu  <hongjiu.lu@intel.com>

	* emulparams/arcelf.sh (MAXPAGESIZE): Changed to
	"CONSTANT (MAXPAGESIZE)".
	* emulparams/armelf_nbsd.sh: Likewise.
	* emulparams/armelf_vxworks.sh: Likewise.
	* emulparams/armnto.sh: Likewise.
	* emulparams/armsymbian.sh: Likewise.
	* emulparams/crislinux.sh: Likewise.
	* emulparams/elf32_i860.sh: Likewise.
	* emulparams/elf32_i960.sh: Likewise.
	* emulparams/elf32am33lin.sh: Likewise.
	* emulparams/elf32bfinfd.sh: Likewise.
	* emulparams/elf32bmipn32-defs.sh: Likewise.
	* emulparams/elf32frvfd.sh: Likewise.
	* emulparams/elf32i370.sh: Likewise.
	* emulparams/elf32lppcnto.sh: Likewise.
	* emulparams/elf32mcore.sh: Likewise.
	* emulparams/elf32openrisc.sh: Likewise.
	* emulparams/elf32ppcnto.sh: Likewise.
	* emulparams/elf32ppcwindiss.sh: Likewise.
	* emulparams/elf32vax.sh: Likewise.
	* emulparams/elf32xc16x.sh: Likewise.
	* emulparams/elf32xc16xl.sh: Likewise.
	* emulparams/elf32xc16xs.sh: Likewise.
	* emulparams/elf64_aix.sh: Likewise.
	* emulparams/elf64hppa.sh: Likewise.
	* emulparams/elf64mmix.sh: Likewise.
	* emulparams/elf_i386_be.sh: Likewise.
	* emulparams/elf_i386_chaos.sh: Likewise.
	* emulparams/elf_i386_ldso.sh: Likewise.
	* emulparams/hppa64linux.sh: Likewise.
	* emulparams/hppalinux.sh: Likewise.
	* emulparams/hppaobsd.sh: Likewise.
	* emulparams/i386lynx.sh: Likewise.
	* emulparams/i386moss.sh: Likewise.
	* emulparams/i386nto.sh: Likewise.
	* emulparams/i386nw.sh: Likewise.
	* emulparams/m32relf_linux.sh: Likewise.
	* emulparams/m68kpsos.sh: Likewise.
	* emulparams/or32elf.sh: Likewise.
	* emulparams/pjelf.sh: Likewise.
	* emulparams/pjlelf.sh: Likewise.
	* emulparams/ppclynx.sh: Likewise.
	* emulparams/ppcnw.sh: Likewise.
	* emulparams/shelf32_nbsd.sh : Likewise.
	* emulparams/shelf_nbsd.sh: Likewise.
	* emulparams/shelf_nto.sh: Likewise.
	* emulparams/shlelf_nto.sh: Likewise.
	* emulparams/xtensa-config.sh: Likewise.

	* emulparams/armelf_linux.sh (MAXPAGESIZE): Changed to
	"CONSTANT (MAXPAGESIZE)".
	(COMMONPAGESIZE): Changed to "CONSTANT (COMMONPAGESIZE)".
	* emulparams/elf32_sparc.sh: Likewise.
	* emulparams/elf32bmip.sh: Likewise.
	* emulparams/elf32ppccommon.sh: Likewise.
	* emulparams/elf64_ia64.sh: Likewise.
	* emulparams/elf64_s390.sh: Likewise.
	* emulparams/elf64_sparc.sh: Likewise.
	* emulparams/elf64alpha.sh: Likewise.
	* emulparams/elf64ppc.sh: Likewise.
	* emulparams/elf_i386.sh: Likewise.
	* emulparams/elf_i386_vxworks.sh: Likewise.
	* emulparams/elf_s390.sh: Likewise.
	* emulparams/elf_x86_64.sh: Likewise.
	* emulparams/shlelf32_linux.sh: Likewise.
	* emulparams/shlelf_linux.sh: Likewise.

	* emulparams/elf32bmipn32.sh (COMMONPAGESIZE): Changed to
	"CONSTANT (COMMONPAGESIZE)".
	* emulparams/elf32btsmipn32.sh: Likewise.

	* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Add
	"-z max-page-size=" and "-z common-page-size=".
	(gld${EMULATION_NAME}_list_options): Likewise.

	* ld.h (ld_config_type): Add maxpagesize and commonpagesize.

	* ld.texinfo: Document "-z max-page-size=" and
	"-z common-page-size=".

	* ldexp.c (exp_print_token): Handle CONSTANT.
	(fold_name): Likewise.
	* ldgram.y: Likewise.
	* ldlex.l: Likewise.

	* ldmain.c (main): Initiliaze config.maxpagesize and
	config.commonpagesize. Call bfd_emul_set_maxpagesize if
	config.maxpagesize isn't 0. Call bfd_emul_set_commonpagesize if
	config.commonpagesize config.maxpagesize isn't 0.
ld/testsuite/

2006-05-30  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/binutils.exp: New file.
	* ld-elf/commonpage1.d: Likewise.
	* ld-elf/maxpage1.d: Likewise.
	* ld-elf/maxpage1.s: Likewise.
2006-05-30 16:45:32 +00:00
H.J. Lu
f7661549c7 bfd/
2006-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* elf64-x86-64.c (ELF_MAXPAGESIZE): Updated to 0x200000.

ld/

2006-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* emulparams/elf_x86_64.sh (MAXPAGESIZE): Updated to 0x200000.

ld/testsuite/

2006-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-x86-64/tlsbin.dd: Updated for 2MB maximum page size.
	* ld-x86-64/tlsbin.rd: Likewise.
	* ld-x86-64/tlsbin.sd: Likewise.
	* ld-x86-64/tlsbin.td: Likewise.
	* ld-x86-64/tlsbindesc.dd: Likewise.
	* ld-x86-64/tlsbindesc.rd: Likewise.
	* ld-x86-64/tlsbindesc.sd: Likewise.
	* ld-x86-64/tlsbindesc.td: Likewise.
	* ld-x86-64/tlsdesc.dd: Likewise.
	* ld-x86-64/tlsdesc.pd: Likewise.
	* ld-x86-64/tlsdesc.rd: Likewise.
	* ld-x86-64/tlsdesc.sd: Likewise.
	* ld-x86-64/tlsdesc.td: Likewise.
	* ld-x86-64/tlsgdesc.dd: Likewise.
	* ld-x86-64/tlspic.dd: Likewise.
	* ld-x86-64/tlspic.rd: Likewise.
	* ld-x86-64/tlspic.sd: Likewise.
	* ld-x86-64/tlspic.td: Likewise.
2006-05-26 02:44:19 +00:00
Paul Brook
4e617b1e97 2006-05-24 Paul Brook <paul@codesourcery.com>
bfd/
	* elf-bfd.h (elf_backend_data): Add elf_backend_output_arch_local_syms
	* elf32-arm.c (output_arch_syminfo): Define.
	(elf32_arm_ouput_plt_map_sym, elf32_arm_output_plt_map,
	elf32_arm_output_arch_local_syms): New functions.
	(elf_backend_output_arch_local_syms): Define.
	* elflink.c (bfd_elf_final_link): Call
	elf_backend_output_arch_local_syms.
	* elfxx-target.h (elf_backend_output_arch_local_syms): Provide default
	definition.
	(elfNN_bed): Add elf_backend_output_arch_local_syms.
ld/testsuite/
	* ld-arm/arm-app-abs32.d: Update expected output.
	* ld-arm/arm-app.d: Ditto.
	* ld-arm/arm-lib-plt32.d: Ditto.
	* ld-arm/arm-lib.d: Ditto.
	* ld-arm/mixed-app-v5.d: Ditto.
	* ld-arm/mixed-app.d: Ditto.
	* ld-arm/mixed-lib.d: Ditto.
2006-05-24 17:10:02 +00:00
H.J. Lu
f607ec8858 2006-05-23 H.J. Lu <hongjiu.lu@intel.com>
PR ld/2655
	PR ld/2657
	* ld-elf/eh1.d: New file.
	* ld-elf/eh1.s: Likewise.
	* ld-elf/eh1a.s: Likewise.
	* ld-elf/eh2.d: Likewise.
	* ld-elf/eh2a.s: Likewise.
	* ld-elf/eh3.d: Likewise.
	* ld-elf/eh3.s: Likewise.
	* ld-elf/eh3a.s: Likewise.
2006-05-24 02:39:16 +00:00
Daniel Jacobowitz
943284cc7c bfd/
* elflink.c (_bfd_elf_add_dynamic_entry): Remove DT_TEXTREL
	check.
	(bfd_elf_final_link): Add a late DT_TEXTREL check.
	* elfxx-mips.c (MIPS_ELF_READONLY_SECTION): Define.
	(mips_elf_create_dynamic_relocation): Set DF_TEXTREL.
	(_bfd_mips_elf_check_relocs): Delete MIPS_READONLY_SECTION.
	Use MIPS_ELF_READONLY_SECTION.
	(_bfd_mips_elf_size_dynamic_sections): Clear DF_TEXTREL after
	creating DT_TEXTREL.
	(_bfd_mips_elf_finish_dynamic_sections): Clear textrel markers
	if no text relocations were generated.
ld/testsuite/
	* ld-mips-elf/textrel-1.d: Relax some patterns.
2006-05-22 15:06:23 +00:00
Nick Clifton
03f4e42f06 fix typo 2006-05-22 08:45:46 +00:00
Nick Clifton
761d8d914d * ld-eld/start.s (start): Add this symbol for SH targets.
(main): Add this symbol for HPPA targets.
2006-05-22 08:45:18 +00:00
Alan Modra
9e328bda63 * ld-scripts/empty-orphan.d: Update again. 2006-05-19 11:50:31 +00:00
Alan Modra
c6f90868f6 * ld-scripts/empty-orphan.t: Discard .reginfo.
* ld-scripts/empty-orphan.d: Update.
2006-05-19 06:10:03 +00:00
Thiemo Seufer
1038890526 * ld-elfweak/size2.d, ld-elfweak/size2a.s, ld-elfweak/size2b.s:
Add __start as entry symbol.
2006-05-17 11:30:24 +00:00
Thiemo Seufer
c5eb39efda * ld-elf/orphan.ld: Add placement for MIPS .reginfo section. 2006-05-16 13:58:51 +00:00
Paul Brook
b079691183 2006-05-15 Paul Brook <paul@codesourcery.com>
bfd/
	* cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename ...
	(bfd_is_arm_special_symbol_name): ... to this.  Add type argument.
	Check symbol name is of specified type.
	* elf32-arm.c (elf32_arm_is_target_special_symbol,
	arm_elf_find_function, elf32_arm_output_symbol_hook): Use
	bfd_is_arm_special_symbol_name.
	* bfd-in.h (BFD_ARM_SPECIAL_SYM_TYPE_MAP,
	BFD_ARM_SPECIAL_SYM_TYPE_TAG, BFD_ARM_SPECIAL_SYM_TYPE_OTHER,
	BFD_ARM_SPECIAL_SYM_TYPE_ANY): Define.
	(bfd_is_arm_mapping_symbol_name): Remove prototype.
	(bfd_is_arm_special_symbol_name): Add prototype.
	* bfd-in2.h: Regenerate.
gas/
	* config/tc-arm.c (arm_adjust_symtab): Use
	bfd_is_arm_special_symbol_name.
ld/testsuite/
	* ld-arm/arm-be8.d: New test.
	* ld-arm/arm-be8.s: New test.
	* ld-arm/arm-elf.exp: Add arm-be8.
2006-05-15 19:57:35 +00:00
H.J. Lu
30b2f8e793 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/stab.d: Skip ia64-*-*.
2006-05-15 00:48:44 +00:00
Paul Brook
b6895b4f37 2006-05-11 Paul Brook <paul@codesourcery.com>
bfd/
	* elf32-arm.c (elf32_arm_reloc_map): Add MOVW and MOVT relocs.
	(elf32_arm_final_link_relocate): Handle MOVW and MOVT relocs.
	(elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto.
	* reloc.c: Ditto.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.
gas/
	* config/tc-arm.c (parse_half): New function.
	(operand_parse_code): Remove OP_Iffff.  Add OP_HALF.
	(parse_operands): Ditto.
	(do_mov16): Reject invalid relocations.
	(do_t_mov16): Ditto.  Use Thumb reloc numbers.
	(insns): Replace Iffff with HALF.
	(md_apply_fix): Add MOVW and MOVT relocs.
	(tc_gen_reloc): Ditto.
	* doc/c-arm.texi: Document relocation operators
ld/testsuite/
	* ld-arm/arm-elf.exp: Add arm-movwt.
	* ld-arm/arm-movwt.d: New test.
	* ld-arm/arm-movwt.s: New test.
	* ld-arm/arm.ld: Add .far.
2006-05-11 15:17:34 +00:00
Alan Modra
b1f2595c5d * ld-elf/stab.d: New. 2006-05-11 12:35:44 +00:00
Thiemo Seufer
1cb571e976 * ld-elf/sec64k.exp: Extend for MIPS ELF. 2006-05-10 15:07:24 +00:00
Alan Modra
d1b46e8025 * ld-powerpc/tlsexetoc.r: Update for correction to tls optimization.
* ld-powerpc/tlsexetoc.g: Likewise.
2006-05-05 13:08:49 +00:00
H.J. Lu
a78d2a672f 2006-05-02 H.J. Lu <hongjiu.lu@intel.com>
* ld-cdtest/cdtest-foo.cc (Foo::Foo): Add const to char *.
	* ld-cdtest/cdtest-foo.h (Foo::Foo): Likewise.
	* ld-srec/sr3.cc (Foo::Foo): Likewise.
2006-05-02 13:35:45 +00:00
Paul Brook
a8bc6c780e 2006-05-02 Paul Brook <paul@codesourcery.com>
bfd/
	* elf32-arm.c (elf32_arm_final_link_relocate): Set thumb funciton bit
	for R_ARM_REL32.
gas/
	* config/tc-arm.c (arm_optimize_expr): New function.
	* config/tc-arm.h (md_optimize_expr): Define
	(arm_optimize_expr): Add prototype.
	(TC_FORCE_RELOCATION_SUB_SAME): Define.
ld/testsuite/
	* ld-arm/arm-elf.exp: Add thumb-rel32.
	* ld-arm/thumb-rel32.d: New test.
	* ld-arm/thumb-rel32.s: New test.
2006-05-02 13:09:18 +00:00
H.J. Lu
da54898db3 2006-04-26 H.J. Lu <hongjiu.lu@intel.com>
* ld-elfvers/vers.exp: Xfail vers7a, vers7, vers23a, vers23b,
	vers23c, vers23d, vers23, vers25a, vers25b1, vers25b2, vers27a,
	vers27b, vers27c1, vers27c2, vers27d4 and vers27d5 if PIC is
	required.
2006-04-30 00:23:00 +00:00
H.J. Lu
eaa628a1d3 2006-04-25 H.J. Lu <hongjiu.lu@intel.com>
* ld-alpha/tlsbin.rd: Updated for readelf change.
	* ld-alpha/tlsbinr.rd: Likewise.
	* ld-alpha/tlspic.rd: Likewise.
2006-04-25 22:05:15 +00:00
Richard Sandiford
910600e9c7 bfd/
* config.bfd (sparc-*-vxworks*): New stanza.
	* configure.in (bfd_elf32_sparc_vxworks_vec): New stanza.
	(bfd_elf32_sparc_vec, bfd_elf64_sparc_vec): Add elf-vxworks.lo.
	* configure: Regenerate.
	* elf32-sparc.c: Include elf-vxworks.h.
	(elf32_sparc_vxworks_link_hash_table_create: New.
	(elf32_sparc_vxworks_final_write_processing): New.
	(TARGET_BIG_SYM): Override for VxWorks.
	(TARGET_BIG_NAME, ELF_MINPAGESIZE): Likewise.
	(bfd_elf32_bfd_link_hash_table_create): Likewise.
	(elf_backend_want_got_plt, elf_backend_plt_readonly): Likewise.
	(elf_backend_got_header_size, elf_backend_add_symbol_hook): Likewise.
	(elf_backend_link_output_symbol_hook): Likewise.
	(elf_backend_emit_relocs): Likewise.
	(elf_backend_final_write_processing, elf32_bed): Likewise.
	* elfxx-sparc.c: Include libiberty.h and elf-vxworks.h.
	(sparc_vxworks_exec_plt0_entry, sparc_vxworks_exec_plt_entry): New.
	(sparc_vxworks_shared_plt0_entry, sparc_vxworks_shared_plt_entry): New.
	(_bfd_sparc_elf_link_hash_table_create): Don't initialize
	build_plt_entry here.
	(create_got_section): Initialize sgotplt for VxWorks.
	(_bfd_sparc_elf_create_dynamic_sections): Initialize build_plt_entry,
	plt_header_size and plt_entry_size, with new VxWorks-specific settings.
	Call elf_vxworks_create_dynamic_sections for VxWorks.
	(allocate_dynrelocs): Use plt_header_size and plt_entry_size.
	Allocate room for .got.plt and .rela.plt.unloaded entries on VxWorks.
	(_bfd_sparc_elf_size_dynamic_sections): Don't allocate a nop in .plt
	for VxWorks.  Check for the .got.plt section.
	(sparc_vxworks_build_plt_entry): New function.
	(_bfd_sparc_elf_finish_dynamic_symbol): Add handling of VxWorks PLTs.
	Don't make _GLOBAL_OFFSET_TABLE_ and _PROCEDURE_LINKAGE_TABLE_
	absolute on VxWorks.
	(sparc32_finish_dyn): Add special handling for DT_RELASZ
	and DT_PLTGOT on VxWorks.
	(sparc_vxworks_finish_exec_plt): New.
	(sparc_vxworks_finish_shared_plt): New.
	(_bfd_sparc_elf_finish_dynamic_sections): Call them.
	Use plt_header_size and plt_entry_size.
	* elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add is_vxworks,
	srelplt2, sgotplt, plt_header_size and plt_entry_size fields.
	* Makefile.am (elfxx-sparc.lo): Depend on elf-vxworks.h.
	(elf32-sparc.lo): Likewise.
	* Makefile.in: Regenerate.
	* targets.c (bfd_elf32_sparc_vxworks_vec): Declare.
	(_bfd_target_vector): Add a pointer to it.

gas/
	* config/tc-sparc.c (sparc_target_format): Handle TE_VXWORKS.
	(GOTT_BASE, GOTT_INDEX): New.
	(tc_gen_reloc): Don't alter relocations against GOTT_BASE and
	GOTT_INDEX when generating VxWorks PIC.
	* configure.tgt (sparc*-*-vxworks*): Remove this special case;
	use the generic *-*-vxworks* stanza instead.

gas/testsuite/
	* gas/sparc/vxworks-pic.s, gas/sparc/vxworks-pic.d: New test.
	* gas/sparc/sparc.exp: Run it.  Remove sparc*-*-vxworks* XFAILs.

ld/
	* configure.tgt (sparc*-*-vxworks*): New stanza.
	* emulparams/elf32_sparc_vxworks.sh: New file.
	* Makefile.am (ALL_EMULATIONS): Add eelf32_sparc_vxworks.o.
	(eelf32_sparc_vxworks.c): New rule.
	* Makefile.in: Regenerate.

ld/testsuite/
	* ld-sparc/vxworks1.dd, ld-sparc/vxworks1.ld, ld-sparc/vxworks1-lib.dd,
	* ld-sparc/vxworks1-lib.nd, ld-sparc/vxworks1-lib.rd,
	* ld-sparc/vxworks1-lib.s, ld-sparc/vxworks1.rd, ld-sparc/vxworks1.s,
	* ld-sparc/vxworks1-static.d, ld-sparc/vxworks2.s,
	* ld-sparc/vxworks2.sd, ld-sparc/vxworks2-static.sd: New tests.
	* ld-sparc/sparc.exp: Run them.
2006-04-05 12:41:59 +00:00
Ben Elliston
3b6fe0ccfd * lib/ld-lib.exp: Comment cleanups. 2006-04-05 01:51:15 +00:00
Richard Sandiford
ead49a57e8 * elfxx-mips.c (mips_got_entry): Add more commentary.
(mips_elf_local_got_index): Use the hash table entry to record
	the GOT index of forced-local symbols.
	(mips_elf_initialize_tls_index): Rearrange code.  Store the index
	in either the hash table entry or the mips_got_entry, not both.
	Add more commentary.
	(mips_elf_multi_got): Make sure the g->next is nonnull when calling
	mips_elf_initialize_tls_index.

	* ld-mips-elf/tls-hidden3a.s, ld-mips-elf/tls-hidden3b.s,
	* ld-mips-elf/tls-hidden3.d, ld-mips-elf/tls-hidden3.got,
	* ld-mips-elf/tls-hidden3.ld, ld-mips-elf/tls-hidden3.r,
	* ld-mips-elf/tls-hidden4a.s, ld-mips-elf/tls-hidden4b.s,
	* ld-mips-elf/tls-hidden4.got, ld-mips-elf/tls-hidden4.r: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2006-03-27 11:30:54 +00:00
Richard Sandiford
a9d3488055 bfd/
* cpu-m68k.c (bfd_m68k_compatible): Treat ISA A+ and ISA B code as
	incompatible.  Likewise MAC and EMAC code.
	* elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Use
	bfd_get_compatible to set the new bfd architecture.  Rely on it
	to detect incompatibilities.

gas/
	* config/tc-m68k.c (m68k_cpus): Change cpu_cf5208 entries to use
	mcfemac instead of mcfmac.

ld/testsuite/
	* ld-m68k/merge-error-1a.s, ld-m68k/merge-error-1b.s,
	* ld-m68k/merge-error-1a.d, ld-m68k/merge-error-1b.d,
	* ld-m68k/merge-error-1c.d, ld-m68k/merge-error-1d.d,
	* ld-m68k/merge-error-1e.d, ld-m68k/merge-ok-1a.d,
	* ld-m68k/merge-ok-1b.d: New tests.
	* ld-m68k/m68k.exp: Run them.
2006-03-25 10:24:27 +00:00
Richard Sandiford
0a44bf6950 Richard Sandiford <richard@codesourcery.com>
Daniel Jacobowitz  <dan@codesourcery.com>
	Phil Edwards  <phil@codesourcery.com>
	Zack Weinberg  <zack@codesourcery.com>
	Mark Mitchell  <mark@codesourcery.com>
	Nathan Sidwell  <nathan@codesourcery.com>

bfd/
	* bfd-in2.h: Regenerate.
	* config.bfd (mips*-*-vxworks*, mips*el-*-vxworks*): New stanzas.
	* configure.in (bfd_elf32_bigmips_vxworks_vec): New stanza.
	(bfd_elf32_littlemips_vxworks_vec): Likewise.
	(bfd_elf32_bigmips_vec): Add elf-vxworks.lo.
	(bfd_elf32_littlemips_vec): Likewise.
	(bfd_elf32_nbigmips_vec): Likewise.
	(bfd_elf32_nlittlemips_vec): Likewise.
	(bfd_elf32_ntradbigmips_vec): Likewise.
	(bfd_elf32_ntradlittlemips_vec): Likewise.
	(bfd_elf32_tradbigmips_vec): Likewise.
	(bfd_elf32_tradlittlemips_vec): Likewise.
	(bfd_elf64_bigmips_vec): Likewise.
	(bfd_elf64_littlemips_vec): Likewise.
	(bfd_elf64_tradbigmips_vec): Likewise.
	(bfd_elf64_tradlittlemips_vec): Likewise.
	* elf32-mips.c: Include elf-vxworks.h.
	(mips_info_to_howto_rel): Use elf_backend_mips_rtype_to_howto
	instead of calling mips_elf32_rtype_to_howto directly.
	(mips_vxworks_copy_howto_rela): New reloc howto.
	(mips_vxworks_jump_slot_howto_rela): Likewise.
	(mips_vxworks_bfd_reloc_type_lookup): New function.
	(mips_vxworks_rtype_to_howto): Likewise.
	(mips_vxworks_final_write_processing): Likewise.
	(TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Override for VxWorks.
	(TARGET_BIG_SYM, TARGET_BIG_NAME, elf_bed, ELF_MAXPAGESIZE): Likewise.
	(elf_backend_want_got_plt): Likewise.
	(elf_backend_want_plt_sym): Likewise.
	(elf_backend_got_symbol_offset): Likewise.
	(elf_backend_want_dynbss): Likewise.
	(elf_backend_may_use_rel_p): Likewise.
	(elf_backend_may_use_rela_p): Likewise.
	(elf_backend_default_use_rela_p): Likewise.
	(elf_backend_got_header_size: Likewise.
	(elf_backend_plt_readonly): Likewise.
	(bfd_elf32_bfd_reloc_type_lookup): Likewise.
	(elf_backend_mips_rtype_to_howto): Likewise.
	(elf_backend_adjust_dynamic_symbol): Likewise.
	(elf_backend_finish_dynamic_symbol): Likewise.
	(bfd_elf32_bfd_link_hash_table_create): Likewise.
	(elf_backend_add_symbol_hook): Likewise.
	(elf_backend_link_output_symbol_hook): Likewise.
	(elf_backend_emit_relocs): Likewise.
	(elf_backend_final_write_processing: Likewise.
	(elf_backend_additional_program_headers): Likewise.
	(elf_backend_modify_segment_map): Likewise.
	(elf_backend_symbol_processing): Likewise.
	* elfxx-mips.c: Include elf-vxworks.h.
	(mips_elf_link_hash_entry): Add is_relocation_target and
	is_branch_target fields.
	(mips_elf_link_hash_table): Add is_vxworks, srelbss, sdynbss, srelplt,
	srelplt2, sgotplt, splt, plt_header_size and plt_entry_size fields.
	(MIPS_ELF_RELA_SIZE, MIPS_ELF_REL_DYN_NAME): New macros.
	(MIPS_RESERVED_GOTNO): Take a mips_elf_link_hash_table argument.
	Return 3 for VxWorks.
	(ELF_MIPS_GP_OFFSET): Change the argument from a bfd to a
	mips_elf_link_hash_table.  Return 0 for VxWorks.
	(MIPS_ELF_GOT_MAX_SIZE): Change the argument from a bfd to a
	mips_elf_link_hash_table.  Update the call to ELF_MIPS_GP_OFFSET.
	(mips_vxworks_exec_plt0_entry): New variable.
	(mips_vxworks_exec_plt_entry): Likewise.
	(mips_vxworks_shared_plt0_entry): Likewise.
	(mips_vxworks_shared_plt_entry): Likewise.
	(mips_elf_link_hash_newfunc): Initialize the new hash_entry fields.
	(mips_elf_rel_dyn_section): Change the bfd argument to a
	mips_elf_link_hash_table.  Use MIPS_ELF_REL_DYN_NAME to get
	the name of the section.
	(mips_elf_initialize_tls_slots): Update the call to
	mips_elf_rel_dyn_section.
	(mips_elf_gotplt_index): New function.
	(mips_elf_local_got_index): Add an input_section argument.
	Update the call to mips_elf_create_local_got_entry.
	(mips_elf_got_page): Likewise.
	(mips_elf_got16_entry): Likewise.
	(mips_elf_create_local_got_entry): Add bfd_link_info and input_section
	arguments.  Create dynamic relocations for each entry on VxWorks.
	(mips_elf_merge_gots): Update the use of MIPS_ELF_GOT_MAX_SIZE.
	(mips_elf_multi_got): Update the uses of MIPS_ELF_GOT_MAX_SIZE
	and MIPS_RESERVED_GOTNO.
	(mips_elf_create_got_section): Update the uses of
	MIPS_ELF_GOT_MAX_SIZE.  Create .got.plt on VxWorks.
	(is_gott_symbol): New function.
	(mips_elf_calculate_relocation): Use a dynobj local variable.
	Update the calls to mips_elf_local_got_index, mips_elf_got16_entry and
	mips_elf_got_page_entry.  Set G to the .got.plt entry when calculating
	VxWorks R_MIPS_CALL* relocations.  Calculate and use G for all GOT
	relocations on VxWorks.  Add dynamic relocations for references
	to the VxWorks __GOTT_BASE__ and __GOTT_INDEX__ symbols.  Don't
	create dynamic relocations for R_MIPS_32, R_MIPS_REL32 or R_MIPS_64
	in VxWorks executables.
	(mips_elf_allocate_dynamic_relocations): Add a bfd_link_info argument.
	Use MIPS_ELF_RELA_SIZE to calculate the size of a VxWorks entry.
	Don't allocate a null entry on VxWorks.
	(mips_elf_create_dynamic_relocation): Update the call to
	mips_elf_rel_dyn_section.  Use absolute rather than relative
	relocations for VxWorks, and make them RELA rather than REL.
	(_bfd_mips_elf_create_dynamic_sections): Don't make .dynamic
	read-only on VxWorks.  Update the call to mips_elf_rel_dyn_section.
	Create the .plt, .rela.plt, .dynbss and .rela.bss sections on
	VxWorks.  Likewise create the _PROCEDURE_LINKAGE_TABLE symbol.
	Call elf_vxworks_create_dynamic_sections for VxWorks and
	initialize the plt_header_size and plt_entry_size fields.
	(_bfd_mips_elf_check_relocs): Don't allow GOT relocations to be
	used in VxWorks executables.  Don't allocate dynamic relocations
	for R_MIPS_32, R_MIPS_REL32 or R_MIPS_64 in VxWorks executables.
	Set is_relocation_target for each symbol referenced by a relocation.
	Allocate .rela.dyn entries for relocations against the special
	VxWorks __GOTT_BASE__ and __GOTT_INDEX__ symbols.  Create GOT
	entries for all VxWorks R_MIPS_GOT16 relocations.  Don't allocate
	a global GOT entry for symbols mentioned in VxWorks R_MIPS_CALL*,
	R_MIPS_32, R_MIPS_REL32 or R_MIPS_64 relocations.  Update the calls
	to mips_elf_rel_dyn_section and mips_elf_allocate_dynamic_relocations.
	Set is_branch_target for symbols mentioned in R_MIPS_PC16 or R_MIPS_26
	relocations.  Don't set no_fn_stub on VxWorks.
	(_bfd_mips_elf_adjust_dynamic_symbol): Update the call to
	mips_elf_allocate_dynamic_relocations.
	(_bfd_mips_vxworks_adjust_dynamic_symbol): New function.
	(_bfd_mips_elf_always_size_sections): Do not allocate GOT page
	entries for VxWorks, and do not create multiple GOTs.
	(_bfd_mips_elf_size_dynamic_sections): Use MIPS_ELF_REL_DYN_NAME.
	Handle .got specially for VxWorks.  Update the uses of
	MIPS_RESERVED_GOTNO and mips_elf_allocate_dynamic_relocations.
	Check for sgotplt and splt.  Allocate the .rel(a).dyn contents last,
	once its final size is known.  Set DF_TEXTREL for VxWorks.  Add
	DT_RELA, DT_RELASZ, DT_RELAENT, DT_PLTREL, DT_PLTRELSZ and DT_JMPREL
	tags on VxWorks.  Do not add the MIPS-specific tags for VxWorks.
	(_bfd_mips_vxworks_finish_dynamic_symbol): New function.
	(mips_vxworks_finish_exec_plt): Likewise.
	(mips_vxworks_finish_shared_plt): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Remove an unncessary call
	to mips_elf_rel_dyn_section.  Use a VxWorks-specific value of
	DT_PLTGOT.  Handle DT_RELA, DT_RELASZ, DT_RELAENT, DT_PLTREL,
	DT_PLTRELSZ and DT_JMPREL.  Update the uses of MIPS_RESERVED_GOTNO
	and mips_elf_rel_dyn_section.  Use a different GOT header for
	VxWorks.  Don't sort .rela.dyn on VxWorks.  Finish the PLT on VxWorks.
	(_bfd_mips_elf_link_hash_table_create): Initialize the new
	mips_elf_link_hash_table fields.
	(_bfd_mips_vxworks_link_hash_table_create): New function.
	(_bfd_mips_elf_final_link): Set the GP value to _GLOBAL_OFFSET_TABLE_
	on VxWorks.  Update the call to ELF_MIPS_GP_OFFSET.
	* elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Declare.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
	(_bfd_mips_vxworks_link_hash_table_create): Likewise.
	* libbfd.h: Regenerate.
	* Makefile.am (elfxx-mips.lo): Depend on elf-vxworks.h.
	(elf32-mips.lo): Likewise.
	* Makefile.in: Regenerate.
	* reloc.c (BFD_RELOC_MIPS_COPY, BFD_RELOC_MIPS_JUMP_SLOT): Declare.
	* targets.c (bfd_elf32_bigmips_vxworks_vec): Declare.
	(bfd_elf32_littlemips_vxworks_vec): Likewise.
	(_bfd_target_vector): Add entries for them.

gas/
	* config/tc-mips.c (mips_target_format): Handle vxworks targets.
	(md_begin): Complain about -G being used for PIC.  Don't change
	the text, data and bss alignments on VxWorks.
	(reloc_needs_lo_p): Don't return true for R_MIPS_GOT16 when
	generating VxWorks PIC.
	(load_address): Extend SVR4_PIC handling to VXWORKS_PIC.
	(macro): Likewise, but do not treat la $25 specially for
	VxWorks PIC, and do not handle jal.
	(OPTION_MVXWORKS_PIC): New macro.
	(md_longopts): Add -mvxworks-pic.
	(md_parse_option): Don't complain about using PIC and -G together here.
	Handle OPTION_MVXWORKS_PIC.
	(md_estimate_size_before_relax): Always use the first relaxation
	sequence on VxWorks.
	* config/tc-mips.h (VXWORKS_PIC): New.

gas/testsuite/
	* gas/mips/vxworks1.s, gas/mips/vxworks1.d,
	* gas/mips/vxworks1-xgot.d: New tests.
	* gas/mips/mips.exp: Run them.  Do not run other tests on VxWorks.

include/elf/
	* mips.h (R_MIPS_COPY, R_MIPS_JUMP_SLOT): New relocs.

ld/
	* configure.tgt (mips*el-*-vxworks*, mips*-*-vxworks*): Use
	separate VxWorks emulations.
	* emulparams/elf32ebmipvxworks.sh: New file.
	* emulparams/elf32elmipvxworks.sh: New file.
	* Makefile.am (ALL_EMULATIONS): Add eelf32ebmipvxworks.o and
	eelf32elmipvxworks.o.
	(eelf32ebmipvxworks.c, eelf32elmipvxworks.c): New rules.
	* Makefile.in: Regenerate.

ld/testsuite/
	* ld-mips/vxworks1.dd, ld-mips/vxworks1.ld, ld-mips/vxworks1-lib.dd,
	* ld-mips/vxworks1-lib.nd, ld-mips/vxworks1-lib.rd,
	* ld-mips/vxworks1-lib.s, ld-mips/vxworks1.rd, ld-mips/vxworks1.s,
	* ld-mips/vxworks1-static.d, ld-mips/vxworks2.s, ld-mips/vxworks2.sd,
	* ld-mips/vxworks2-static.sd: New tests.
	* ld-mips/mips-elf.exp: Run them.
2006-03-22 09:28:15 +00:00
Alexandre Oliva
e1710606c9 bfd/ChangeLog:
* elf32-ppc.c (ppc_elf_relocate_section): Copy addend from
first relocation to the second when relaxing TLS GD to LE;
zero it out when relaxing to IE.
ld/testsuite/ChangeLog:
* ld-powerpc/tls32.s: Verify that +32768 @plt addend is
discarded.
2006-03-17 06:44:37 +00:00
Richard Sandiford
81d43bffb5 bfd/
* elf32-mips.c (mips_elf_adjust_addend): New function, mostly split
	out from...
	(_bfd_mips_elf_relocate_section): ...here.  Use it to adjust r_addend
	for final links too.

ld/testsuite/
	* ld-mips/emit-relocs-1a.s, ld-mips/emit-relocs-1b.s,
	* ld-mips/emit-relocs-1.ld, ld-mips/emit-relocs-1.d: New test.
	* ld-mips/mips-elf.exp: Run it.
2006-03-14 07:47:49 +00:00
Richard Sandiford
00a976722a bfd/
* configure.in (bfd_elf32_bigarm_vec): Include elf-vxworks.lo.
	(bfd_elf32_bigarm_symbian_vec): Likewise.
	(bfd_elf32_bigarm_vxworks_vec): Likewise.
	(bfd_elf32_littlearm_vec): Likewise.
	(bfd_elf32_littlearm_symbian_vec): Likewise.
	(bfd_elf32_littlearm_vxworks_vec): Likewise.
	* configure: Regenerate.
	* elf32-arm.c: Include libiberty.h and elf-vxworks.h.
	(RELOC_SECTION, RELOC_SIZE, SWAP_RELOC_IN, SWAP_RELOC_OUT): New macros.
	(elf32_arm_vxworks_bed): Add forward declaration.
	(elf32_arm_howto_table_1): Fix the masks for R_ASM_ABS12.
	(elf32_arm_vxworks_exec_plt0_entry): New table.
	(elf32_arm_vxworks_exec_plt_entry): Likewise.
	(elf32_arm_vxworks_shared_plt_entry): Likewise.
	(elf32_arm_link_hash_table): Add vxworks_p and srelplt2 fields.
	(reloc_section_p): New function.
	(create_got_section): Use RELOC_SECTION.
	(elf32_arm_create_dynamic_sections): Likewise.  Call
	elf_vxworks_create_dynamic_sections for VxWorks targets.
	Choose between the two possible values of plt_header_size
	and plt_entry_size.
	(elf32_arm_link_hash_table_create): Initialize vxworks_p and srelplt2.
	(elf32_arm_abs12_reloc): New function.
	(elf32_arm_final_link_relocate): Call it.  Allow the creation of
	dynamic R_ARM_ABS12 relocs on VxWorks.  Use reloc_section_p,
	RELOC_SIZE, SWAP_RELOC_OUT and RELOC_SECTION.  Initialize the
	r_addend fields of relocs.  On rela targets, skip any code that
	adjusts in-place addends.  When using _bfd_link_final_relocate
	to perform a final relocation, pass rel->r_addend as the addend
	argument.
	(elf32_arm_merge_private_bfd_data): If one of the bfds is a VxWorks
	object, ignore flags that are not standard on VxWorks.
	(elf32_arm_check_relocs): Allow the creation of dynamic R_ARM_ABS12
	relocs on VxWorks.  Use reloc_section_p.
	(elf32_arm_adjust_dynamic_symbol): Use RELOC_SECTION and RELOC_SIZE.
	(allocate_dynrelocs): Use RELOC_SIZE.  Account for the size of
	.rela.plt.unloaded relocs on VxWorks targets.
	(elf32_arm_size_dynamic_sections): Use RELOC_SIZE.  Check for
	.rela.plt.unloaded as well as .rel(a).plt.  Add DT_RELA* tags
	instead of DT_REL* tags on RELA targets.
	(elf32_arm_finish_dynamic_symbol): Use RELOC_SECTION, RELOC_SIZE
	and SWAP_RELOC_OUT.  Initialize r_addend fields.  Handle VxWorks
	PLT entries.  Do not make _GLOBAL_OFFSET_TABLE_ absolute on VxWorks.
	(elf32_arm_finish_dynamic_sections): Use RELOC_SECTION, RELOC_SIZE
	and SWAP_RELOC_OUT.  Initialize r_addend fields.  Handle DT_RELASZ
	like DT_RELSZ.  Handle the VxWorks form of initial PLT entry.
	Correct the .rela.plt.unreloaded symbol indexes.
	(elf32_arm_output_symbol_hook): Call the VxWorks version of this
	hook on VxWorks targets.
	(elf32_arm_vxworks_link_hash_table_create): Set vxworks_p to true.
	Minor formatting tweak.
	(elf32_arm_vxworks_final_write_processing): New function.
	(elf_backend_add_symbol_hook): Override for VxWorks and reset
	for Symbian.
	(elf_backend_final_write_processing): Likewise.
	(elf_backend_emit_relocs): Likewise.
	(elf_backend_want_plt_sym): Likewise.
	(ELF_MAXPAGESIZE): Likewise.
	(elf_backend_may_use_rel_p): Minor formatting tweak.
	(elf_backend_may_use_rela_p): Likewise.
	(elf_backend_default_use_rela_p): Likewise.
	(elf_backend_rela_normal): Likewise.
	* Makefile.in (elf32-arm.lo): Depend on elf-vxworks.h.

gas/
	* config/tc-arm.c (md_apply_fix): Install a value of zero into a
	BFD_RELOC_ARM_OFFSET_IMM field if we're going to generate a RELA
	R_ARM_ABS12 reloc.
	(tc_gen_reloc): Keep the original fx_offset for RELA pc-relative
	relocs, but adjust by md_pcrel_from_section.  Create R_ARM_ABS12
	relocations for BFD_RELOC_ARM_OFFSET_IMM on RELA targets.

gas/testsuite/
	* gas/arm/abs12.s, gas/arm/abs12.d: New test.
	* gas/arm/pic.d: Skip for *-*-vxworks*...
	* gas/arm/pic_vxworks.d: ...use this version instead.
	* gas/arm/unwind_vxworks.d: Fix expected output.

ld/
	* emulparams/armelf_vxworks.sh: Include vxworks.sh.
	(MAXPAGESIZE): Define.
	* emulparams/vxworks.sh: Undefine.
	* Makefile.am (earmelf_vxworks.c): Depend on vxworks.sh and vxworks.em.
	* Makefile.in: Regenerate.

ld/testsuite/
	* ld-arm/vxworks1.dd, ld-arm/vxworks1.ld, ld-arm/vxworks1-lib.dd,
	* ld-arm/vxworks1-lib.nd, ld-arm/vxworks1-lib.rd,
	* ld-arm/vxworks1-lib.s, ld-arm/vxworks1.rd, ld-arm/vxworks1.s,
	* ld-arm/vxworks1-static.d, ld-arm/vxworks2.s, ld-arm/vxworks2.sd,
	* ld-arm/vxworks2-static.sd: New tests.
	* ld-arm/arm-elf.exp: Run them.
2006-03-07 08:39:21 +00:00
Nathan Sidwell
0b2e31dc3b bfd:
* archures.c (bfd_mach_mcf_isa_a_nodiv, bfd_mach_mcf_isa_b_nousp):
	New.  Adjust other variants.
	(bfd_default_scan): Update.
	* bfd-in2.h: Rebuilt.
	* cpu-m68k.c: Adjust.
	(bfd_m68k_compatible): New. Use it for architectures.
	* elf32-m68k.c (elf32_m68k_object_p): Adjust.
	(elf32_m68k_merge_private_bfd_data): Adjust.  Correct isa-a/b
	mismatch.
	(elf32_m68k_print_private_bfd_data): Adjust.
	* ieee.c (ieee_write_processor): Adjust.

	binutils:
	* readelf.c (get_machine_flags): Adjust.

	gas:
	* config/tc-m68k.c (m68k_extensions): Allow 'float' on both m68k
	and cf.
	(m68k_ip): <case 'J'> Check we have some control regs.
	(md_parse_option): Allow raw arch switch.
	(m68k_init_arch): Better detection of arch/cpu mismatch.  Detect
	whether 68881 or cfloat was meant by -mfloat.
	(md_show_usage): Adjust extension display.
	(m68k_elf_final_processing): Adjust.

	gas/testsuite:
	* gas/m68k/arch-cpu-1.s: Tweak.
	* gas/m68k/arch-cpu-1.d: Tweak.

	include/elf:
	* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A,
	EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_ISA_C): Adjust.
	(EF_M68K_ISA_A_NODIV, EF_M68K_ISA_B_NOUSP): New.
	(EF_M68K_HW_DIV, EF_M68K_USP): Remove.
	(EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_FLOAT): Adjust.
	(EF_M68K_EMAC_B): New.

	ld/testsuite:
	* ld-m68k: New tests.
2006-03-06 13:42:05 +00:00
Richard Sandiford
4f471f3957 ld/
* emulparams/vxworks.sh (VXWORKS_BASE_EM_FILE): New variable.
	(EXTRA_EM_FILE): Define.
	* emultempl/vxworks.em: New file.
	* ld.texinfo (--force-dynamic): Document.
	* Makefile.am (eelf32ppcvxworks.cm, eelf_i386_vxworks.c): Depend
	on vxworks.em.
	* Makefile.in: Regenerate.

ld/testsuite/
	* ld-i386/vxworks1-static.d, ld-i386/vxworks2.s,
	* ld-i386/vxworks2.sd, ld-i386/vxworks2-static.sd: New tests.
	* ld-i386/i386.exp: Run them.
	* ld-powerpc/vxworks1-static.d, ld-powerpc/vxworks2.s,
	* ld-powerpc/vxworks2.sd, ld-powerpc/vxworks2-static.sd: New tests.
	* ld-powerpc/powerpc.exp: Run them.
2006-03-03 09:32:01 +00:00
Richard Sandiford
1739bf618d ld/testsuite/
* ld-powerpc/vxworks1.ld: Use a page alignment of 0x10000.
	* ld-powerpc/vxworks1.dd: Update accordingly.
	* ld-powerpc/vxworks1-lib.nd: Likewise.
	* ld-powerpc/vxworks1-lib.rd: Likewise.
	* ld-powerpc/vxworks1.rd: Likewise.
2006-03-02 15:16:27 +00:00
Richard Sandiford
7c4927199c bfd/
* elf32-ppc.c (is_ppc_elf_target): Return true if the target is
	bfd_elf32_powerpc_vxworks_vec.

ld/testsuite/
	* ld-i386/vxworks1.ld (.data): New section.
	* ld-i386/vxworks1-lib.s: Add a pointer to a local symbol.
	* ld-i386/vxworks1-lib.rd: Test for the associated reloc.
	* ld-powerpc/vxworks1.ld (.data): New section.
	* ld-powerpc/vxworks1-lib.s: Add a pointer to a local symbol.
	* ld-powerpc/vxworks1-lib.rd: Test for the associated reloc.
2006-03-02 09:44:23 +00:00
Richard Sandiford
711de32caa bfd/
* elf32-i386.c (elf_i386_create_dynamic_sections): Use
	elf_vxworks_create_dynamic_sections.
	(elf_i386_size_dynamic_sections): Remove VxWorks GOT and PLT
	symbol handling.
	* elf32-ppc.c (ppc_elf_create_dynamic_sections): Use
	elf_vxworks_create_dynamic_sections.
	(ppc_elf_size_dynamic_sections): Remove VxWorks GOT and PLT
	symbol handling.
	* elf-vxworks.c (elf_vxworks_create_dynamic_sections): New function.
	* elf-vxworks.h (elf_vxworks_create_dynamic_sections): Declare.

ld/testsuite/
	* ld-i386/ld-i386/vxworks1-lib.nd: New test.
	* ld-i386/i386.exp: Run it.
	* ld-powerpc/ld-powerpc/vxworks1-lib.nd: New test.
	* ld-powerpc/powerc.exp: Run it.
2006-03-02 08:57:00 +00:00
Richard Sandiford
83503a060f ld/testsuite/
* ld-i386/vxworks1.ld: Use bigger alignments.  Make sure .bss isn't
	placed as an orphan.
	* ld-i386/vxworks1-lib.dd, ld-i386/vxworks1.dd,
	* ld-i386/vxworks1.rd: Update accordingly.
	* ld-i386/vxworks1-lib.rd: Likewise.  Remove symbol indexes.
2006-03-02 08:54:43 +00:00
Richard Sandiford
4a3dc54359 bfd/
* elf32-ppc.c (ppc_elf_plt_type): New enumeration.
	(ppc_elf_link_hash_table): Replace old_got and new_got with
	plt_type and can_use_new_plt.
	(ppc_elf_create_dynamic_sections): Add SEC_HAS_CONTENTS,
	SEC_LOAD and SEC_READONLY to the VxWorks .plt flags.
	(ppc_elf_check_relocs): Set can_use_new_plt instead of new_plt.
	Move from plt_type == PLT_UNSET to PLT_OLD instead of setting old_plt.
	(ppc_elf_select_plt_layout): Move from plt_type == PLT_UNSET to
	either plt_type == PLT_OLD or plt_type == PLT_NEW.  Assert that
	this function should not be called for VxWorks targets.
	(ppc_elf_tls_setup): Use plt_type instead of old_got.
	(allocate_got): Likewise.  Rearrange so that max_before_header
	is only used for PLT_OLD and PLT_NEW.
	(allocate_dynrelocs): Use plt_type instead of old_got and is_vxworks.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relax_section): Likewise.
	(ppc_elf_relocate_section): Likewise.
	(ppc_elf_finish_dynamic_symbol): Likewise.
	(ppc_elf_vxworks_link_hash_table_create): Initialize plt_type.

ld/
	* emulparams/elf32ppccommon.sh: New file, extracted from...
	* emulparams/elf32ppc.sh: ...here.
	* emulparams/elf32ppcvxworks.sh: Include elf32ppccommon.sh
	instead of elf32ppc.sh.
	(BSS_PLT): Remove override.
	* Makefile.am (eelf32lppc.c): Depend on elf32ppccommons.h.
	(eelf32lppcnto.c, eelf32lppcsim.c, eelf32ppcnto.c): Likewise.
	(eelf32ppc.c, eelf32ppc_fbsd.c, eelf32ppcsimm): Likewise.
	(eelf32ppclinux.c): Likewise.
	(eelf32ppcvxworks.c): Likewise.  Add missing vxworks.sh dependency.
	* Makefile.in: Regenerate.

ld/testsuite/
	* ld-powerpc/vxworks1-lib.s, ld-powerpc/vxworks1-lib.dd,
	* ld-powerpc/vxworks1-lib.rd, ld-powerpc/vxworks1.s,
	* ld-powerpc/vxworks1.dd, ld-powerpc/vxworks1.rd,
	* ld-powerpc/vxworks1.ld, ld-powerpc/vxworks1.sd: New test.
	* ld-powerpc/powerpc.exp: Run it.
2006-03-02 08:50:04 +00:00
Richard Sandiford
b9201bb360 ld/testsuite/
* ld-i386/vxworks1-lib.s, ld-i386/vxworks1-lib.dd,
	* ld-i386/vxworks1-lib.rd, ld-i386/vxworks1.s, ld-i386/vxworks1.dd,
	* ld-i386/vxworks1.rd, ld-i386/vxworks1.ld: New test.
	* ld-i386/i386.exp: Run it.
2006-02-28 07:17:33 +00:00
Richard Sandiford
5ae0bfb60a bfd/
* elf32-i386.c (elf_i386_link_hash_table): Add next_tls_desc_index.
	(elf_i386_link_hash_table_create): Initialize it.
	(elf_i386_compute_jump_table_size): Use it instead of
	srelplt->reloc_count.
	(allocate_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.

ld/testsuite/
	* ld-i386/emit-relocs.s, ld-i386/emit-relocs.d: New test.
	* ld-i386/i386.exp: Run it.
2006-02-28 07:16:12 +00:00
H.J. Lu
7dd61ce72a 2006-02-23 H.J. Lu <hongjiu.lu@intel.com>
* ld-pie/weakundef-data.c: Fix the typo.
2006-02-23 22:23:26 +00:00
H.J. Lu
44a260c17d 2006-02-22 H.J. Lu <hongjiu.lu@intel.com>
* ld-pie/pie.c: New file.

	* ld-pie/pie.exp: Check if compiler supports -pie.
2006-02-22 17:41:04 +00:00
H.J. Lu
72aa65a751 2006-02-20 H.J. Lu <hongjiu.lu@intel.com>
PR ld/2218
	* ld-pie/pie.exp: Add the weak undefined data test.

	* ld-pie/weakundef-data.c: New file.
2006-02-20 20:11:00 +00:00
Nick Clifton
d70c5fc7c5 Add support for the Infineon XC16X. 2006-02-17 14:36:28 +00:00
Paul Brook
1d022697d9 2006-02-07 Paul Brook <paul@codesourcery.com>
ld/
	* emultempl/armelf.em: Include elf/arm.h.
	(arm_elf_finish): Set low address bit if enty point is a Thumb
	function.
ld/testsuite/
	* ld-arm/arm-elf.exp: Add thumb-entry test.
	* ld-arm/thumb-entry.d: New test.
	* ld-arm/thumb-entry.s: New test.
2006-02-07 03:50:20 +00:00
Richard Sandiford
4005427f86 bfd/
* elfxx-mips.c (mips_elf_initialize_tls_index): If a TLS symbol
	has already been assigned a GOT index, copy that index to the
	current hash table entry.

ld/testsuite/
	* ld-mips-elf/tls-hidden2a.s, ld-mips-elf/tls-hidden2b.s,
	* ld/testsuite/ld-mips-elf/tls-hidden2.d,
	* ld/testsuite/ld-mips-elf/tls-hidden2-got.d: New test.
	* ld-mips-elf/mips-elf.exp: Run it.
2006-02-04 08:29:58 +00:00
Richard Sandiford
2f2817dbda * ld-mips-elf/rel32-n32.d: Adjust for changes in linker behaviour.
* ld-mips-elf/rel32-o32.d: Likewise.
	* ld-mips-elf/rel64.d: Likewise.
	* ld-mips-elf/tls-multi-got-1.got: Likewise.
	* ld-mips-elf/tls-multi-got-1.r: Likewise.
	* ld-mips-elf/tlsdyn-o32-1.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-1.got: Likewise.
	* ld-mips-elf/tlsdyn-o32-2.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-2.got: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.got: Likewise.
	* ld-mips-elf/tlsdyn-o32.d: Likewise.
	* ld-mips-elf/tlsdyn-o32.got: Likewise.
	* ld-mips-elf/tlslib-o32-hidden.got: Likewise.
	* ld-mips-elf/tlslib-o32-ver.got: Likewise.
	* ld-mips-elf/tlslib-o32.got: Likewise.
2006-02-04 08:28:29 +00:00
H.J. Lu
d72d9b9e57 Updo the last change to binutils and ld/testsuite. 2006-02-02 22:53:46 +00:00
H.J. Lu
ec21a0f54c Add missing entries. 2006-02-02 22:16:02 +00:00
H.J. Lu
de205c03b9 binutils/
2006-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_program_headers): Undo the change made on
	2004-09-22.  Match PT_DYNAMIC segment only with SHT_DYNAMIC
	sections.

ld/testsuite/

2006-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-i386/tlsbin.rd: Update for changed segment map.
	* ld-i386/tlsnopic.rd: Likewise.
	* ld-i386/tlspic.rd: Likewise.
	* ld-powerpc/tlsexe.r: Likewise.
	* ld-powerpc/tlsexe32.r: Likewise.
	* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlsso.r: Likewise.
	* ld-powerpc/tlsso32.r: Likewise.
	* ld-powerpc/tlstocso.r: Likewise.
	* ld-s390/tlsbin.rd: Likewise.
	* ld-s390/tlsbin_64.rd: Likewise.
	* ld-s390/tlspic.rd: Likewise.
	* ld-s390/tlspic_64.rd: Likewise.
	* ld-sh/tlsbin-2.d: Likewise.
	* ld-sh/tlspic-2.d: Likewise.
	* ld-x86-64/tlsbin.rd: Likewise.
	* ld-x86-64/tlspic.rd: Likewise.
2006-02-02 22:05:56 +00:00
Eric Botcazou
ca6d06e538 * ld-sparc/sparc.exp: Do not run 64-bit tests on Solaris 2.5.1
and Solaris 2.6.
2006-01-31 23:49:32 +00:00
H.J. Lu
a10e6b21d4 2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
PR ld/2218
	* ld-pie/pie.exp: New file.
	* ld-pie/weakundef.c: Likewise.
	* ld-pie/weakundef.out: Likewise.

	* lib/ld-lib.exp (run_ld_link_exec_tests): Fix nesting. Support
	building PIE and shared library.
2006-01-27 14:32:04 +00:00
Alexandre Oliva
67a4f2b710 include/elf/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New.
* i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC):
New.
* x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): New.
bfd/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* reloc.c (BFD_RELOC_386_TLS_GOTDESC, BFD_RELOC_386_TLS_DESC,
BFD_RELOC_386_TLS_DESC_CALL, BFD_RELOC_X86_64_GOTPC32_TLSDESC,
BFD_RELOC_X86_64_TLSDESC, BFD_RELOC_X86_64_TLSDESC_CALL): New.
* libbfd.h, bfd-in2.h: Rebuilt.
* elf32-i386.c (elf_howto_table): New relocations.
(R_386_tls): Adjust.
(elf_i386_reloc_type_lookup): Map new relocations.
(GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P): New macros.
(GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): New macros.
(struct elf_i386_link_hash_entry): Add tlsdesc_got field.
(struct elf_i386_obj_tdata): Add local_tlsdesc_gotent field.
(elf_i386_local_tlsdesc_gotent): New macro.
(struct elf_i386_link_hash_table): Add sgotplt_jump_table_size.
(elf_i386_compute_jump_table_size): New macro.
(link_hash_newfunc): Initialize tlsdesc_got.
(elf_i386_link_hash_table_create): Set sgotplt_jump_table_size.
(elf_i386_tls_transition): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(elf_i386_check_relocs): Likewise.  Allocate space for
local_tlsdesc_gotent.
(elf_i386_gc_sweep_hook): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(allocate_dynrelocs): Count function PLT relocations.  Reserve
space for TLS descriptors and relocations.
(elf_i386_size_dynamic_sections): Reserve space for TLS
descriptors and relocations.  Set up sgotplt_jump_table_size.
Don't zero reloc_count in srelplt.
(elf_i386_always_size_sections): New.  Set up _TLS_MODULE_BASE_.
(elf_i386_relocate_section): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(elf_i386_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
(elf_backend_always_size_sections): Define.
* elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_GOTPC32_TLSDESC,
R_X86_64_TLSDESC, R_X86_64_TLSDESC_CALL.
(R_X86_64_standard): Adjust.
(x86_64_reloc_map): Map new relocs.
(elf64_x86_64_rtype_to_howto): New, split out of...
(elf64_x86_64_info_to_howto): ... this function, and...
(elf64_x86_64_reloc_type_lookup): ... use it to map elf_reloc_val.
(GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P): New macros.
(GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): New macros.
(struct elf64_x86_64_link_hash_entry): Add tlsdesc_got field.
(struct elf64_x86_64_obj_tdata): Add local_tlsdesc_gotent field.
(elf64_x86_64_local_tlsdesc_gotent): New macro.
(struct elf64_x86_64_link_hash_table): Add tlsdesc_plt,
tlsdesc_got and sgotplt_jump_table_size fields.
(elf64_x86_64_compute_jump_table_size): New macro.
(link_hash_newfunc): Initialize tlsdesc_got.
(elf64_x86_64_link_hash_table_create): Initialize new fields.
(elf64_x86_64_tls_transition): Handle R_X86_64_GOTPC32_TLSDESC and
R_X86_64_TLSDESC_CALL.
(elf64_x86_64_check_relocs): Likewise.  Allocate space for
local_tlsdesc_gotent.
(elf64_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPC32_TLSDESC and
R_X86_64_TLSDESC_CALL.
(allocate_dynrelocs): Count function PLT relocations.  Reserve
space for TLS descriptors and relocations.
(elf64_x86_64_size_dynamic_sections): Reserve space for TLS
descriptors and relocations.  Set up sgotplt_jump_table_size,
tlsdesc_plt and tlsdesc_got.  Make room for them.  Don't zero
reloc_count in srelplt.  Add dynamic entries for DT_TLSDESC_PLT
and DT_TLSDESC_GOT.
(elf64_x86_64_always_size_sections): New.  Set up
_TLS_MODULE_BASE_.
(elf64_x86_64_relocate_section): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(elf64_x86_64_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
(elf64_x86_64_finish_dynamic_sections): Set DT_TLSDESC_PLT and
DT_TLSDESC_GOT.  Set up TLS descriptor lazy resolver PLT entry.
(elf_backend_always_size_sections): Define.
binutils/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* readelf.c (get_dynamic_type): Handle DT_TLSDESC_GOT and
DT_TLSDESC_PLT.
gas/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* config/tc-i386.c (tc_i386_fix_adjustable): Handle
BFD_RELOC_386_TLS_GOTDESC, BFD_RELOC_386_TLS_DESC_CALL,
BFD_RELOC_X86_64_GOTPC32_TLSDESC, BFD_RELOC_X86_64_TLSDESC_CALL.
(optimize_disp): Emit fix up for BFD_RELOC_386_TLS_DESC_CALL and
BFD_RELOC_X86_64_TLSDESC_CALL immediately, and clear the
displacement bits.
(build_modrm_byte): Set up zero modrm for TLS desc calls.
(lex_got): Handle @tlsdesc and @tlscall.
(md_apply_fix, tc_gen_reloc): Handle the new relocations.
ld/testsuite/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* ld-i386/i386.exp: Run on x86_64-*-linux* and amd64-*-linux*.
Add new tests.
* ld-i386/pcrel16.d: Add -melf_i386.
* ld-i386/pcrel8.d: Likewise.
* ld-i386/tlsbindesc.dd: New.
* ld-i386/tlsbindesc.rd: New.
* ld-i386/tlsbindesc.s: New.
* ld-i386/tlsbindesc.sd: New.
* ld-i386/tlsbindesc.td: New.
* ld-i386/tlsdesc.dd: New.
* ld-i386/tlsdesc.rd: New.
* ld-i386/tlsdesc.s: New.
* ld-i386/tlsdesc.sd: New.
* ld-i386/tlsdesc.td: New.
* ld-i386/tlsgdesc.dd: New.
* ld-i386/tlsgdesc.rd: New.
* ld-i386/tlsgdesc.s: New.
* ld-x86-64/x86-64.exp: Run new tests.
* ld-x86-64/tlsbindesc.dd: New.
* ld-x86-64/tlsbindesc.rd: New.
* ld-x86-64/tlsbindesc.s: New.
* ld-x86-64/tlsbindesc.sd: New.
* ld-x86-64/tlsbindesc.td: New.
* ld-x86-64/tlsdesc.dd: New.
* ld-x86-64/tlsdesc.pd: New.
* ld-x86-64/tlsdesc.rd: New.
* ld-x86-64/tlsdesc.s: New.
* ld-x86-64/tlsdesc.sd: New.
* ld-x86-64/tlsdesc.td: New.
* ld-x86-64/tlsgdesc.dd: New.
* ld-x86-64/tlsgdesc.rd: New.
* ld-x86-64/tlsgdesc.s: New.
2006-01-18 21:07:51 +00:00