mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-28 20:43:45 +08:00
906e58cab5
* elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define. (THM2_MAX_BWD_BRANCH_OFFSET): Define. (ARM_MAX_FWD_BRANCH_OFFSET): Define. (ARM_MAX_BWD_BRANCH_OFFSET): Define. (THM_MAX_FWD_BRANCH_OFFSET): Define. (THM_MAX_BWD_BRANCH_OFFSET): Define. (arm_long_branch_stub): Define. (arm_pic_long_branch_stub): Define. (arm_thumb_v4t_long_branch_stub): Define. (arm_thumb_thumb_long_branch_stub): Define. (arm_thumb_arm_v4t_long_branch_stub): Define. (STUB_SUFFIX): Define. (elf32_arm_stub_type): Define. (elf32_arm_stub_hash_entry): Define. (elf32_arm_link_hash_entry): Add stub_cache field. (arm_stub_hash_lookup): Define. (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd, add_stub_section, layout_sections_again, stub_group, bfd_count, top_index, input_list fields. (elf32_arm_link_hash_newfunc): Init new field. (stub_hash_newfunc): New function. (elf32_arm_link_hash_table_create): Init stub_hash_table. (elf32_arm_hash_table_free): New function. (arm_type_of_stub): New function. (elf32_arm_stub_name): New function. (elf32_arm_get_stub_entry): New function. (elf32_arm_stub_add_mapping_symbol): New function. (elf32_arm_add_stub): New function. (arm_build_one_stub): New function. (arm_size_one_stub): New function. (elf32_arm_setup_section_lists): New function. (elf32_arm_next_input_section): New function. (group_sections): New function. (elf32_arm_size_stubs): New function. (elf32_arm_build_stubs): New function. (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections. (bfd_elf32_arm_process_before_allocation): No longer handle R_ARM_CALL and R_ARM_THM_CALL. (using_thumb_only): New function. (elf32_arm_final_link_relocate): Redirect calls to stub if range exceeds encoding capabilities. (bfd_elf32_bfd_link_hash_table_free): Define. * bfd-in.h (R_ARM_max): Fix value to 130. (elf32_arm_setup_section_lists): Protype. (elf32_arm_next_input_section): Protype. (elf32_arm_size_stubs): Protype. (elf32_arm_build_stubs): Protype. ld/ * emultempl/armelf.em (build_section_lists): New function. (stub_file): Define. (need_laying_out): Define. (group_size): Define. (hook_stub_info): Define. (hook_in_stub): New function. (elf32_arm_add_stub_section): New function. (gldarm_layout_sections_again): New function. (gld${EMULATION_NAME}_finish): Replace arm_elf_finish(). Generate stubs for long calls if needed. (arm_elf_create_output_section_statements): create stub_file bfd. (arm_for_each_input_file_wrapper): New function. (arm_lang_for_each_input_file): New function. (lang_for_each_input_file): Define. (PARSE_AND_LIST_PROLOGUE): Add option token OPTION_STUBGROUP_SIZE. (PARSE_AND_LIST_LONGOPTS): Add option stub-group-size. (PARSE_AND_LIST_OPTIONS): Add option stub-group-size. (PARSE_AND_LIST_ARGS_CASES): Add OPTION_STUBGROUP_SIZE case. (LDEMUL_FINISH): Update to gld${EMULATION_NAME}_finish. * ld/lang.c (print_input_statement): Skip if bfd has BFD_LINKER_CREATED. ld/testsuite * ld-arm/arm-elf.exp (armelftests): Add farcall-arm-arm, farcall-arm-arm-pic-veneer, farcall-arm-arm-be8 farcall-arm-thumb, farcall-arm-thumb-blx, farcall-arm-thumb-pic-veneer, farcall-arm-thumb-blx-pic-veneer, farcall-thumb-thumb, farcall-thumb-thumb-pic-veneer, farcall-thumb-thumb-blx, farcall-thumb-thumb-m, farcall-thumb-thumb-m-pic-veneer, farcall-thumb-thumb-blx-pic-veneer, farcall-thumb-arm, farcall-thumb-arm-pic-veneer, farcall-thumb-arm-blx, farcall-thumb-arm-blx-pic-veneer. Change thumb2-bl-as-thumb1-bad, thumb2-bl-bad. * ld-arm/thumb2-bl-as-thumb1-bad.d: Reflects farcall stub generation. * ld-arm/thumb2-bl-bad.d: Likewise. * ld-arm/thumb2-bl-as-thumb1-bad.s: Update comments. * ld-arm/thumb2-bl-bad.s: Likewise.
386 lines
13 KiB
Plaintext
386 lines
13 KiB
Plaintext
2008-05-15 Christophe Lyon <christophe.lyon@st.com>
|
||
|
||
* emultempl/armelf.em (build_section_lists): New function.
|
||
(stub_file): Define.
|
||
(need_laying_out): Define.
|
||
(group_size): Define.
|
||
(hook_stub_info): Define.
|
||
(hook_in_stub): New function.
|
||
(elf32_arm_add_stub_section): New function.
|
||
(gldarm_layout_sections_again): New function.
|
||
(gld${EMULATION_NAME}_finish): Replace arm_elf_finish(). Generate
|
||
stubs for long calls if needed.
|
||
(arm_elf_create_output_section_statements): create stub_file bfd.
|
||
(arm_for_each_input_file_wrapper): New function.
|
||
(arm_lang_for_each_input_file): New function.
|
||
(lang_for_each_input_file): Define.
|
||
(PARSE_AND_LIST_PROLOGUE): Add option token OPTION_STUBGROUP_SIZE.
|
||
(PARSE_AND_LIST_LONGOPTS): Add option stub-group-size.
|
||
(PARSE_AND_LIST_OPTIONS): Add option stub-group-size.
|
||
(PARSE_AND_LIST_ARGS_CASES): Add OPTION_STUBGROUP_SIZE case.
|
||
(LDEMUL_FINISH): Update to gld${EMULATION_NAME}_finish.
|
||
* lang.c (print_input_statement): Skip if bfd has
|
||
BFD_LINKER_CREATED.
|
||
|
||
2008-05-14 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* Makefile.in: Regenerate.
|
||
|
||
2008-05-09 Kai Tietz <kai.tietz@onevision.com>
|
||
|
||
ld/PR6502
|
||
* emultempl/pep.em (compute_dll_image_base): Use bfd_vma instead
|
||
of long and change return type to bfd_vma.
|
||
(definfo): Change type of address from long to bfd_vma.
|
||
(set_pep_value): Replace strtoul to strtoull.
|
||
(gld_${EMULATION_NAME}_set_symbols): use bfd_vma instead of long..
|
||
* pe-dll.c (pe_dll_generate_def_file): Use fprintf_vma to print
|
||
ImageBase.
|
||
(quick_reloc): Change argument address from int to bfd_size_type.
|
||
|
||
2008-05-08 Tom Tromey <tromey@redhat.com>
|
||
|
||
* ld.texinfo (PowerPC64 ELF64): Fix typo.
|
||
|
||
2008-05-08 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* elf32_spu.sh (OTHER_SECTIONS): Add "._ea".
|
||
* elf32ppc.sh: If building with spu support, put ".data.spehandle"
|
||
sections at the start of ".data" and provide a symbol to locate
|
||
the directory of embedded spe programs.
|
||
|
||
2008-05-08 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ldexp.c (exp_print_token): Add ABSOLUTE, MIN_K, ASSERT_K. Correct
|
||
MAX_K.
|
||
(fold_binary <SEGMENT_START>): Set expld.result.section to
|
||
current section. Expand comment. Formatting.
|
||
(fold_name <DEFINED>): Set expld.result.section to current section.
|
||
|
||
2008-04-28 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* ldlang.c (lang_size_sections_1): Don't check LMA overflow on
|
||
non-load sections.
|
||
|
||
2008-04-25 Michael Frysinger <vapier@gentoo.org>
|
||
|
||
* configure.tgt (bfin-*-linux-uclibc*): Set targ_emul to elf32bfinfd
|
||
and targ_extra_emuls to elf32bfin.
|
||
|
||
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* aclocal.m4: Regenerate.
|
||
* configure: Regenerate.
|
||
|
||
2008-04-03 Kai Tietz <kai.tietz@onevision.com>
|
||
|
||
* scripttempl/pep.sc: Align start of symbol __CTOR_LIST__.
|
||
|
||
2008-04-08 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* po/POTFILES.in: Regenerate.
|
||
|
||
2008-04-08 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/spuelf.em (auto_overlay, auto_overlay_file,
|
||
auto_overlay_fixed, auto_overlay_reserved, my_argc, my_argv): New vars.
|
||
(spu_before_allocation): Warn on --auto-overlay and existing overlays.
|
||
(struct tflist, clean_tmp): Move.
|
||
(new_tmp_file): New function, extracted from..
|
||
(embedded_spu_file): ..here.
|
||
(spu_elf_open_overlay_script, spu_elf_relink): New function.
|
||
(gld${EMULATION_NAME}_finish): Pass a bunch of --auto-overlay params.
|
||
Warn on --auto-overlay and zero local store.
|
||
(gld${EMULATION_NAME}_choose_target): New function to stash argv.
|
||
(OPTION_SPU_AUTO_OVERLAY, OPTION_SPU_AUTO_RELINK,
|
||
OPTION_SPU_OVERLAY_RODATA, OPTION_SPU_FIXED_SPACE,
|
||
OPTION_SPU_RESERVED_SPACE, OPTION_SPU_NO_AUTO_OVERLAY): Define.
|
||
(PARSE_AND_LIST_LONGOPTS): Add entries for new options.
|
||
(PARSE_AND_LIST_OPTIONS): Likewise.
|
||
(PARSE_AND_LIST_ARGS_CASES): Likewise.
|
||
(LDEMUL_CHOOSE_TARGET): Define.
|
||
|
||
2008-04-03 Kai Tietz <kai.tietz@onevision.com>
|
||
|
||
PR ld/6026
|
||
* pe-dll.c (make_head): Fix iat and thunk addend offset.
|
||
|
||
2008-03-31 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/fr.po: Updated French translation.
|
||
|
||
2008-03-24 Ian Lance Taylor <iant@google.com>
|
||
|
||
The sha1 code is now in libiberty.
|
||
* sha1.c: Remove.
|
||
* sha1.h: Remove.
|
||
* Makefile.am (CFILES): Remove sha1.c.
|
||
(HFILES): Remove sha1.h.
|
||
(OFILES): Remove sha1.o.
|
||
(ld_new_SOURCES): Remove sha1.c.
|
||
(sha1.o): Remove target.
|
||
* Makefile.in: Rebuild.
|
||
|
||
2008-03-20 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/spuelf.em: Update calls to elf32-spu.c funcs.
|
||
|
||
2008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||
|
||
* aclocal.m4: Regenerate.
|
||
* configure: Likewise.
|
||
* Makefile.in: Likewise.
|
||
|
||
2008-03-14 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/spuelf.em (gld${EMULATION_NAME}_finish): Protect
|
||
spu_elf_build_stubs with is_spu_target.
|
||
|
||
2008-03-13 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* Makefile.am: Run "make dep-am".
|
||
* Makefile.in: Regenerate.
|
||
* configure: Regenerate.
|
||
|
||
2008-03-06 Joseph Myers <joseph@codesourcery.com>
|
||
Roman Zippel <zippel@linux-m68k.org>
|
||
|
||
* emulparams/m68kelf.sh (GENERATE_PIE_SCRIPT): Define.
|
||
(COMMONPAGESIZE): Define.
|
||
|
||
2008-02-22 Nick Clifton <nickc@redhat.com>
|
||
|
||
PR ld/5785
|
||
* ldlang.c (lang_size_sections_1): Honour the setting of an
|
||
lma_region even if there is no vma region set, or the vma region
|
||
is the same as the lma region.
|
||
|
||
2008-02-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
* scripttempl/armbpabi.sc (ENTRY): Do not define when performing a
|
||
relocatable link.
|
||
* scripttempl/elf32cr16.sc: Likewise.
|
||
* scripttempl/elf32cr16c.sc: Likewise.
|
||
* scripttempl/elf32crx.sc: Likewise.
|
||
* scripttempl/elf32sh-symbian.sc: Likewise.
|
||
* scripttempl/elf_chaos.sc: Likewise.
|
||
* scripttempl/elfd10v.sc: Likewise.
|
||
* scripttempl/elfi370.sc: Likewise.
|
||
* scripttempl/elfm68hc11.sc: Likewise.
|
||
* scripttempl/elfm68hc12.sc: Likewise.
|
||
* scripttempl/ip2k.sc: Likewise.
|
||
* scripttempl/iq2000.sc: Likewise.
|
||
* scripttempl/mep.sc: Likewise.
|
||
* scripttempl/v850.sc: Likewise.
|
||
* scripttempl/xstormy16.sc: Likewise.
|
||
|
||
2008-02-16 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR ld/5761
|
||
* ldexp.c (fold_name <LOADADDR>): Check result of evaluating
|
||
load_base before calling make_abs.
|
||
|
||
2008-02-15 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/alphaelf.em (alpha_after_open): Use elf_object_id.
|
||
* emultempl/hppaelf.em (hppaelf_create_output_section_statements):
|
||
Likewise.
|
||
* emultempl/ppc64elf.em (ppc_create_output_section_statements):
|
||
Likewise.
|
||
* emultempl/ppc32elf.em (is_ppc_elf32_vec): Delete. Replace all
|
||
uses with..
|
||
(is_ppc_elf): ..this new macro.
|
||
|
||
2008-02-15 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ldmain.h (output_bfd): Delete.
|
||
* ldmain.c (output_bfd): Delete.
|
||
Replace all occurrences of output_bfd with link_info.output_bfd.
|
||
* ldcref.c: Likewise.
|
||
* ldctor.c: Likewise.
|
||
* ldemul.c: Likewise.
|
||
* ldexp.c: Likewise.
|
||
* ldfile.c: Likewise.
|
||
* ldlang.c: Likewise.
|
||
* ldmisc.c: Likewise.
|
||
* ldwrite.c: Likewise.
|
||
* pe-dll.c: Likewise.
|
||
* emultempl/aix.em: Likewise.
|
||
* emultempl/alphaelf.em: Likewise.
|
||
* emultempl/armcoff.em: Likewise.
|
||
* emultempl/armelf.em: Likewise.
|
||
* emultempl/avrelf.em: Likewise.
|
||
* emultempl/beos.em: Likewise.
|
||
* emultempl/elf-generic.em: Likewise.
|
||
* emultempl/elf32.em: Likewise.
|
||
* emultempl/gld960.em: Likewise.
|
||
* emultempl/hppaelf.em: Likewise.
|
||
* emultempl/irix.em: Likewise.
|
||
* emultempl/linux.em: Likewise.
|
||
* emultempl/lnk960.em: Likewise.
|
||
* emultempl/m68hc1xelf.em: Likewise.
|
||
* emultempl/mmix-elfnmmo.em: Likewise.
|
||
* emultempl/mmo.em: Likewise.
|
||
* emultempl/pe.em: Likewise.
|
||
* emultempl/pep.em: Likewise.
|
||
* emultempl/ppc32elf.em: Likewise.
|
||
* emultempl/ppc64elf.em: Likewise.
|
||
* emultempl/scoreelf.em: Likewise.
|
||
* emultempl/sh64elf.em: Likewise.
|
||
* emultempl/spuelf.em: Likewise.
|
||
* emultempl/sunos.em: Likewise.
|
||
* emultempl/vanilla.em: Likewise.
|
||
* emultempl/vxworks.em: Likewise.
|
||
* emultempl/xtensaelf.em: Likewise.
|
||
* emultempl/z80.em: Likewise.
|
||
* ldlang.c (open_output): Don't return output, instead write
|
||
link_info_output_bfd directly.
|
||
* emultempl/alphaelf.em: Replace occurrences of link_info.hash->creator
|
||
with link_info.output_bfd->xvec.
|
||
* emultempl/hppaelf.em: Likewise.
|
||
* emultempl/ppc32elf.em: Likewise.
|
||
* emultempl/ppc64elf.em: Likewise.
|
||
* emultempl/spuelf.em: Likewise.
|
||
|
||
2008-02-07 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ldlang.c (new_afile): Don't pass unadorned NULL to concat.
|
||
* ldfile.c (ldfile_add_library_path): Likewise.
|
||
* emultempl/elf32.em (check_ld_elf_hints, check_ld_so_conf): Likewise.
|
||
* emultempl/lnk960.em (lnk960_before_parse): Likewise.
|
||
* emultempl/spuelf.em (embedded_spu_file): Likewise.
|
||
|
||
2008-02-07 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/spu_ovl.S: Use low bit of _ovly_table.size as
|
||
a "present" bit rather than low bit of .buf. Correct indexing
|
||
into _ovly_buf_table. Use relative loads and stores to access
|
||
overlay manager local vars.
|
||
* emultempl/spu_ovl.o: Regenerate.
|
||
|
||
2008-02-04 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR 5715
|
||
* configure: Regenerated.
|
||
|
||
2008-01-31 Marc Gauthier <marc@tensilica.com>
|
||
|
||
* configure.tgt (xtensa*-*-*): Recognize processor variants.
|
||
|
||
2008-01-28 Fabian Groffen <grobian@gentoo.org>
|
||
|
||
* configure.tgt (x86_64-*-solaris2): Add support for this target.
|
||
|
||
2008-01-28 Vincent Riviere <vincent.riviere@freesbee.fr>
|
||
|
||
PR ld/5652
|
||
* genscripts.sh: Check for the existence of BASH_LINENO not just
|
||
the BASH shell before generating line numbers in the emulation
|
||
file.
|
||
|
||
2008-01-28 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* emultempl/spu_ovl.S: Rewrite.
|
||
* emultempl/spu_ovl.o: Regenerate.
|
||
* emultempl/spuelf.em (toe): Delete.
|
||
(spu_place_special_section): Add param to control section placement.
|
||
Adjust callers.
|
||
(spu_elf_load_ovl_mgr): Adjust for struct _spu_elf_section_data
|
||
changes.
|
||
(spu_before_allocation): Adjust spu_elf_size_stubs call.
|
||
(gld${EMULATION_NAME}_finish): Adjust spu_elf_build_stubs call.
|
||
|
||
2008-01-25 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR ld/5670
|
||
* ldlang.c (process_insert_statements): Silence gcc 4.1 alias
|
||
warning.
|
||
|
||
2008-01-25 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ld.texinfo (INSERT): Describe.
|
||
* ldgram.y (ldgram_in_script, ldgram_had_equals): Delete.
|
||
(INSERT_K, AFTER, BEFORE): Add as tokens.
|
||
(ifile_p1): Handle INSERT statements.
|
||
(saved_script_handle, force_make_executable): Move to..
|
||
* ldmain.c: ..here.
|
||
(previous_script_handle): New global var.
|
||
* ldmain.h (saved_script_handle, force_make_executable): Declare.
|
||
(previous_script_handle): Likewise.
|
||
* ldlex.l (INSERT_K, AFTER, BEFORE): Add tokens.
|
||
* lexsup.c (parge_args <-T>): Set previous_script_handle.
|
||
* ldlang.c (lang_for_each_statement_worker): Handle insert statement.
|
||
(map_input_to_output_sections, print_statement): Likewise.
|
||
(lang_size_sections_1, lang_do_assignments_1): Likewise.
|
||
(insert_os_after): New function, extracted from..
|
||
(lang_insert_orphan): ..here.
|
||
(process_insert_statements): New function.
|
||
(lang_process): Call it.
|
||
(lang_add_insert): New function.
|
||
* ldlang.h (lang_insert_statement_enum): New.
|
||
(lang_insert_statement_type): New.
|
||
(lang_statement_union_type): Add insert_statement.
|
||
(lang_add_insert): Declare.
|
||
|
||
2008-01-18 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* scripttempl/elfxtensa.sc: Merge ENTRY and .note.gnu.build-id
|
||
changes from elf.sc.
|
||
|
||
2008-01-16 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ldlang.c (lang_size_sections_1): Simplify SEC_NEVER_LOAD test.
|
||
|
||
2008-01-16 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ldlang.h (lang_afile_asection_pair_statement_enum): Delete.
|
||
(lang_afile_asection_pair_statement_type): Delete.
|
||
(lang_statement_union_type): Delete afile_asection_pair_statement.
|
||
* ldlang.c (lang_insert_orphan): Delete case handling the above.
|
||
(map_input_to_output_sections, print_statement): Likewise.
|
||
|
||
2008-01-15 Kaz Kojima <kkojima@rr.iij4u.or.jp>
|
||
|
||
* emulparams/shlelf_linux.sh (DATA_START_SYMBOLS): Use PROVIDE
|
||
with __data_start.
|
||
* emulparams/shelf_nbsd.sh (DATA_START_SYMBOLS): Likewise.
|
||
|
||
2008-01-15 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR 5604
|
||
* ldlang.c (lang_gc_sections): Move code to set SEC_KEEP on entry
|
||
syms to _bfd_elf_gc_keep.
|
||
* emultempl/ppc64elf.em (ppc_before_allocation): Don't call
|
||
ppc64_elf_edit_opd if no_opd_opt.
|
||
|
||
2008-01-11 Tristan Gingold <gingold@adacore.com>
|
||
Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* ldlang.c (lang_end): Warns if the entry point is not found when
|
||
--gc-sections.
|
||
Emit an error if no root is specified when --gc-sections -r.
|
||
* ld.texinfo (Options): Document that --gc-sections is compatible
|
||
with -r and -q.
|
||
* ldmain.c (main): Do not error out if -r and --gc-sections.
|
||
* scripttempl/elf.sc: Emit ENTRY command only if relocating.
|
||
|
||
2008-01-10 Daniel Jacobowitz <drow@sources.redhat.com>
|
||
|
||
PR ld/5533
|
||
* ldlang.c (lang_end): Issue a warning for a missing start symbol
|
||
of a shared library if the symbol was specified on the command
|
||
line.
|
||
|
||
2008-01-10 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* ld.texinfo (--gc-sections): Describe linker behaviour.
|
||
|
||
For older changes see ChangeLog-2007
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
End:
|