summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* daily updateAlan Modra2012-05-071-1/+1
|
* 2012-05-06 Arnold Metselaar <arnold_m@operamail.com>Arnold Metselaar2012-05-066-0/+35
| | | | | | | | * gas/z80/jr-forwf.s: New file, adapted from z8k version. * gas/z80/jr-backf.s: Likewise. * gas/z80/djnz-backf.s: Likewise. * gas/z80/ill_op: New file, with illegal operand. * gas/z80/z80.exp: Run new tests.
* 2012-05-06 Arnold Metselaar <arnold_m@operamail.com>Arnold Metselaar2012-05-063-135/+183
| | | | | | | | | | | | * config/tc-z80.h(md_register_arithmetic): Define as 0. * config/tc-z80.c(md_begin): Store register names in symbol table, prevents usage as ordinary symbol. * config/tc-z80.c(contains_register): New function. * config/tc-z80.c(parse_exp2): Removed. * config/tc-z80.c(parse_exp_not_indexed): New function. * config/tc-z80.c(parse_exp): Add code to recogize indexed addressing after parsing. * config/tc-z80.c(emit_byte, emit_word): Use contains_register. * config/tc-z80.c(emit_jp): Use parse_exp_not_indexed, simplify condition for jump to register. * config/tc-z80.c(emit_call, emit_jr, emit_ex, emit_rst): Use parse_exp_not_indexed.
* daily updateAlan Modra2012-05-061-1/+1
|
* Add a testcase for PR ld/14052H.J. Lu2012-05-053-0/+25
| | | | | | PR ld/14052 * ld-elf/pr14052.d: New file. * ld-elf/pr14052.t: Likewise.
* PR ld/14052Alan Modra2012-05-056-19/+14
| | | | | | | | | PR ld/13621 bfd/ * linker.c (_bfd_nearby_section): Revert 2012-02-13 change. ld/testsuite/ * ld-elf/warn2.d: Revert 2012-02-13 change. * ld-elf/zerosize1.d, ld-elf/zerosize1.s: Delete.
* Regenerate.Alan Modra2012-05-052-17/+15
|
* Replace all uses of bfd_abs_section, bfd_com_section, bfd_und_sectionAlan Modra2012-05-0532-122/+174
| | | | | and bfd_ind_section with their _ptr variants, or use corresponding bfd_is_* macros.
* daily updateAlan Modra2012-05-051-1/+1
|
* Support x86_64-*-linux-gnux32H.J. Lu2012-05-0412-2/+40
| | | | | | | | | | | | | | | | | | | | | | gas/ * configure.tgt: Support x86_64-*-linux-gnux32. ld/ * configure.tgt: Support x86_64-*-linux-gnux32. ld/testsuite/ * ld-elf/eh1.d: Skip x86_64-*-linux-gnux32. * ld-elf/eh2.d: Likewise. * ld-elf/eh3.d: Likewise. * ld-elf/eh4.d: Likewise. * ld-elfvsb/elfvsb.exp: Xfail x86_64-*-linux-gnux32. * ld-shared/shared.exp: Likewise. * ld-ifunc/ifunc-3a-x86.d: Support x86_64-*-linux-gnux32.
* Add `instruction' to unsupported error messageH.J. Lu2012-05-042-1/+6
| | | | | * config/tc-i386.c (match_template): Add `instruction' to unsupported error message.
* Reformat output_insnH.J. Lu2012-05-042-1/+5
| | | | * config/tc-i386.c (output_insn): Reformat.
* Remove the extra VEX checkH.J. Lu2012-05-042-2/+5
| | | | * config/tc-i386.c (output_insn): Remove the extra VEX check.
* Improve unsupported error messageH.J. Lu2012-05-042-2/+8
| | | | | * config/tc-i386.c (match_template): Improve unsupported error message.
* daily updateAlan Modra2012-05-041-1/+1
|
* Add support for Motorola XGATE embedded CPUNick Clifton2012-05-0357-13/+3798
|
* Add support for Motorola XGATE embedded CPUNick Clifton2012-05-036-1/+928
|
* 2012-05-03 Tristan Gingold <gingold@adacore.com>Tristan Gingold2012-05-032-2/+11
| | | | | * dwarf2.c (decode_line_info): Ignore DW_LNE_HP_source_file_correlation.
* daily updateAlan Modra2012-05-031-1/+1
|
* * configure.ac (ENABLE_GOLD): Consider *-*-nacl* targets ELF.Roland McGrath2012-05-0224-2600/+4647
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure: Regenerate. gold/ * nacl.cc: New file. * nacl.h: New file. * Makefile.am (CCFILES, HFILES): Add them. * Makefile.in: Regenerate. * i386.cc (Output_data_plt_i386_nacl): New class. (Output_data_plt_i386_nacl_exec): New class. (Output_data_plt_i386_nacl_dyn): New class. (Target_i386_nacl): New class. (Target_selector_i386_nacl): New class. (target_selector_i386): Use it instead of Target_selector_i386. * x86_64.cc (Output_data_plt_x86_64_nacl): New class. (Target_x86_64_nacl): New class. (Target_selector_x86_64_nacl): New class. (target_selector_x86_64, target_selector_x32): Use it instead of Target_selector_x86_64. * arm.cc (Output_data_plt_arm_nacl): New class. (Target_arm_nacl): New class. (Target_selector_arm_nacl): New class. (target_selector_arm, target_selector_armbe): Use it instead of Target_selector_arm. * target-select.cc (select_target): Take new Input_file* and off_t arguments, pass them on to recognize method of selector. * object.cc (make_elf_sized_object): Update caller. * parameters.cc (parameters_force_valid_target): Likewise. * incremental.cc (make_sized_incremental_binary): Likewise. * target-select.h: Update decl. (Target_selector::recognize): Take new Input_file* argument, pass it on to do_recognize. (Target_selector::do_recognize): Take new Input_file* argument. * freebsd.h (Target_selector_freebsd::do_recognize): Likewise. * powerpc.cc (Target_selector_powerpc::do_recognize): Likewise. * sparc.cc (Target_selector_sparc::do_recognize): Likewise. * testsuite/testfile.cc (Target_selector::do_recognize): Likewise. * target.h (Target::Target_info): New members isolate_execinstr and rosegment_gap. (Target::isolate_execinstr, Target::rosegment_gap): New methods. * arm.cc (Target_arm::arm_info): Update initializer. * i386.cc (Target_i386::i386_info): Likewise. * powerpc.cc (Target_powerpc::powerpc_info): Likewise. * sparc.cc (Target_sparc::sparc_info): Likewise. * x86_64.cc (Target_x86_64::x86_64_info): Likewise. * testsuite/testfile.cc (Target_test::test_target_info): Likewise. * layout.cc (Layout::attach_allocated_section_to_segment): Take new const Target* argument. If target->isolate_execinstr(), act like --rosegment. (Layout::find_first_load_seg): Take new const Target* argument; if target->isolate_execinstr(), reject PF_X segments. (Layout::relaxation_loop_body): Update caller. (Layout::set_segment_offsets): If target->isolate_execinstr(), reset file offset to zero when we hit LOAD_SEG, and then do a second loop over the segments before LOAD_SEG to reassign offsets after addresses have been determined. Handle target->rosegment_gap(). (Layout::attach_section_to_segment): Take new const Target* argument; pass it to attach_allocated_section_to_segment. (Layout::make_output_section): Update caller. (Layout::attach_sections_to_segments): Take new const Target* argument; pass it to attach_section_to_segment. * gold.cc (queue_middle_tasks): Update caller. * layout.h (Layout): Update method decls with new arguments. * arm.cc (Target_arm::Target_arm): Take optional argument for the Target_info pointer to use. (Target_arm::do_make_data_plt): New virtual method. (Target_arm::make_data_plt): New method that calls it. (Target_arm::make_plt_entry): Use it. (Output_data_plt_arm::Output_data_plt_arm): Take additional argument for the section alignment. (Output_data_plt_arm::do_first_plt_entry_offset): New abstract virtual method. (Output_data_plt_arm::first_plt_entry_offset): Call it. (Output_data_plt_arm::do_get_plt_entry_size): New abstract virtual method. (Output_data_plt_arm::get_plt_entry_size): Call it. (Output_data_plt_arm::do_fill_plt_entry): New abstract virtual method. (Output_data_plt_arm::fill_plt_entry): New method that calls it. (Output_data_plt_arm::do_fill_first_plt_entry): New abstract virtual method. (Output_data_plt_arm::fill_first_plt_entry): New method that calls it. (Output_data_plt_arm::set_final_data_size): Use get_plt_entry_size method instead of sizeof(plt_entry). (Output_data_plt_arm::add_entry): Likewise. Use first_plt_entry_offset method instead of sizeof(first_plt_entry). (Target_arm::first_plt_entry_offset): Call method on this->plt_ rather than static method. (Target_arm::plt_entry_size): Likewise. (Output_data_plt_arm::first_plt_entry, Output_data_plt_arm::plt_entry): Move to ... (Output_data_plt_arm_standard): ... here, new class. (Output_data_plt_arm::do_write): Move guts of PLT filling to... (Output_data_plt_arm_standard::do_fill_first_plt_entry): ... here ... (Output_data_plt_arm_standard::do_fill_plt_entry): ... and here. * x86_64.cc (Output_data_plt_x86_64::Output_data_plt_x86_64): Take additional argument for the PLT entry size. (Output_data_plt_x86_64::get_tlsdesc_plt_offset): Use get_plt_entry_size method rather than plt_entry_size variable. (Output_data_plt_x86_64::reserve_slot): Likewise. (Output_data_plt_x86_64::do_adjust_output_section): Likewise. (Output_data_plt_x86_64::add_entry): Likewise. (Output_data_plt_x86_64::add_local_ifunc_entry): Likewise. (Output_data_plt_x86_64::address_for_global): Likewise. (Output_data_plt_x86_64::address_for_local): Likewise. (Output_data_plt_x86_64::set_final_data_size): Likewise. (Output_data_plt_x86_64::first_plt_entry_offset): Likewise. Make method non-static. (Output_data_plt_x86_64::do_get_plt_entry_size): New abstract virtual method. (Output_data_plt_x86_64::get_plt_entry_size): Just call that. (Output_data_plt_x86_64::do_add_eh_frame): New abstract virtual method. (Output_data_plt_x86_64::add_eh_frame): New method to call it. (Output_data_plt_x86_64::do_fill_first_plt_entry): New abstract virtual method. (Output_data_plt_x86_64::fill_first_plt_entry): New method to call it. (Output_data_plt_x86_64::do_fill_plt_entry): New abstract virtual method. (Output_data_plt_x86_64::fill_plt_entry): New method to call it. (Output_data_plt_x86_64::do_fill_tlsdesc_entry): New abstract virtual method. (Output_data_plt_x86_64::fill_tlsdesc_entry): New method to call it. (Output_data_plt_x86_64::plt_entry_size) (Output_data_plt_x86_64::first_plt_entry) (Output_data_plt_x86_64::plt_entry) (Output_data_plt_x86_64::tlsdesc_plt_entry) (Output_data_plt_x86_64::plt_eh_frame_fde_size) (Output_data_plt_x86_64::plt_eh_frame_fde): Move to ... (Output_data_plt_x86_64_standard): ... here, new class. (Target_x86_64::Target_x86_64): Take optional argument for the Target_info pointer to use. (Target_x86_64::do_make_data_plt): New virtual method. (Target_x86_64::make_data_plt): New method to call it. (Target_x86_64::init_got_plt_for_update): Use that. Call this->plt_->add_eh_frame method here. (Output_data_plt_x86_64::init): Don't do add_eh_frame_for_plt here. (Target_x86_64::first_plt_entry_offset): Call method on this->plt_ rather than static method. (Target_x86_64::plt_entry_size): Likewise. (Output_data_plt_x86_64::do_write): Use get_plt_entry_size method rather than plt_entry_size variable. Move guts of PLT filling to... (Output_data_plt_x86_64_standard::do_fill_first_plt_entry): ... here ... (Output_data_plt_x86_64_standard::do_fill_plt_entry): ... and here ... (Output_data_plt_x86_64_standard::do_fill_tlsdesc_entry): ... and here. * i386.cc (Output_data_plt_i386::Output_data_plt_i386): Take additional argument for the section alignment. Don't do add_eh_frame_for_plt here. (Output_data_plt_i386::first_plt_entry_offset): Make the method non-static. Use get_plt_entry_size method rather than plt_entry_size variable. (Output_data_plt_i386::do_get_plt_entry_size): New abstract virtual method. (Output_data_plt_i386::get_plt_entry_size): Call it. (Output_data_plt_i386::do_add_eh_frame): New abstract virtual method. (Output_data_plt_i386::add_eh_frame): New method to call it. (Output_data_plt_i386::do_fill_first_plt_entry): New abstract virtual method. (Output_data_plt_i386::fill_first_plt_entry): New method to call it. (Output_data_plt_i386::do_fill_plt_entry): New abstract virtual method. (Output_data_plt_i386::fill_plt_entry): New method to call it. (Output_data_plt_i386::set_final_data_size): Use get_plt_entry_size method instead of plt_entry_size. (Output_data_plt_i386::plt_entry_size) (Output_data_plt_i386::plt_eh_frame_fde_size) (Output_data_plt_i386::plt_eh_frame_fde): Move to ... (Output_data_plt_i386_standard): ... here, new class. (Output_data_plt_i386_exec): New class. (Output_data_plt_i386::exec_first_plt_entry): Move to ... (Output_data_plt_i386_exec::first_plt_entry): ... here. (Output_data_plt_i386::exec_plt_entry): Move to ... (Output_data_plt_i386_exec::plt_entry): ... here. (Output_data_plt_i386_dyn): New class. (Output_data_plt_i386::first_plt_entry): Move to ... (Output_data_plt_i386_dyn::first_plt_entry): ... here. (Output_data_plt_i386::dyn_plt_entry): Move to ... (Output_data_plt_i386_dyn::plt_entry): ... here. (Target_i386::Target_i386): Take optional argument for the Target_info pointer to use. (Target_i386::do_make_data_plt): New virtual method. (Target_i386::make_data_plt): New method to call it. (Target_i386::make_plt_section): Use that. Call this->plt_->add_eh_frame method here. (Output_data_plt_i386::add_entry): Use get_plt_entry_size method rather than plt_entry_size variable. (Output_data_plt_i386::add_local_ifunc_entry): Likewise. (Output_data_plt_i386::address_for_local): Likewise. (Output_data_plt_i386::do_write): Likewise. Move guts of PLT filling to... (Output_data_plt_i386_exec::do_fill_first_plt_entry): ... here ... (Output_data_plt_i386_exec::do_fill_plt_entry): ... and here ... (Output_data_plt_i386_dyn::do_fill_first_plt_entry): ... and here ... (Output_data_plt_i386_dyn::do_fill_plt_entry): ... and here. Change-Id: Id24b95600489835ff5e860a39c147203d4380c2b
* include/Cary Coutant2012-05-022-2/+6
| | | | | * dwarf2.def: Remove DW_FORM_GNU_ref_index, replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.
* * po/vi.po: Updated Vietnamese translation.Nick Clifton2012-05-025-1559/+11596
| | | | | | * po/it.po: New Italian translation. * configure.in (ALL_LINGUAS): Add it. * configure: Regenerate.
* daily updateAlan Modra2012-05-021-1/+1
|
* elfcpp/Cary Coutant2012-05-015-584/+84
| | | | | | | | | | | | | | | * dwarf.h (enum DW_TAG, enum DW_FORM, enum DW_AT, enum DW_ENCODING) (enum DW_OP, enum DW_CFA): Remove. Include dwarf2.def. gold/ * dwarf_reader.cc (Dwarf_die::read_attributes) (Dwarf_die::skip_attributes, Dwarf_die::int_attribute) (Dwarf_die::uint_attribute): Remove DW_FORM_null. * reduced_debug_output.cc (Output_reduced_debug_info_section::get_die_end): Remove DW_FORM_GNU_ref_index. Add default case.
* [Checking in missing files from previous commit.]Cary Coutant2012-05-012-0/+88
| | | | | * testsuite/gdb_index_test_3.c: New test source file. * testsuite/gdb_index_test_3.sh: New test source file.
* gold: Handle DW_AT_high_pc as offset from DW_AT_low_pc in gdb-index.cc.mark2012-05-016-24/+82
| | | | | | | | | | | | * dwarf_reader.cc (Dwarf_die::address_attribute): New function. * dwarf_reader.h (Dwarf_die::address_attribute): Likewise. * gdb-index.cc (Gdb_index_info_reader::record_cu_ranges): Handle DW_AT_high_pc as offset from DW_AT_low_pc. * testsuite/Makefile.am (gdb_index_test_3.sh): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/gdb_index_test_3.c: New test source file. * testsuite/gdb_index_test_3.sh: New test source file.
* PR binutils/13121Nick Clifton2012-05-0110-891/+910
| | | | | Rename 'finfo' to 'flaginfo' to avoid conflicts with AIX system headers.
* daily updateAlan Modra2012-05-011-1/+1
|
* * config/rx-parse.y (rx_intop): Add parameter for operation size.DJ Delorie2012-04-302-11/+26
| | | | | | | Check for large positive constants really being small negative ones. (BRA, BSR): Update calls to rx_intop. (immediate): Likewise.
* * rx-decode.opc (MOV): Do not sign-extend immediates which areDJ Delorie2012-04-303-601/+633
| | | | | already the maximum bit size. * rx-decode.c: Regenerate.
* gas: Make dwarf2dbg.c versions specific and add DW_AT_high_pc case for DWARF 4+.mark2012-04-303-4/+37
| | | | | | | | | | | | * dwarf2dbg.c (DWARF2_ARANGES_VERSION): New define to 2. (DWARF2_LINE_VERSION): Likewise. (out_debug_line): Use DWARF2_LINE_VERSION not DWARF2_VERSION. (out_debug_aranges): Use DWARF2_ARANGES_VERSION not DWARF2_VERSION. (out_debug_abbrev): Use DW_FORM_data for DW_AT_high_pc when DWARF2_VERSION >= 4. (out_debug_info): Use difference between start and end as data value for DW_AT_high_pc when DWARF2_VERSION >= 4. * config/tc-ia64.h (DWARF2_LINE_VERSION): Override it.
* daily updateAlan Modra2012-04-301-1/+1
|
* daily updateAlan Modra2012-04-291-1/+1
|
* * dwarf2.def (DW_OP): Add DW_OP_GNU_addr_index.Doug Evans2012-04-282-0/+6
|
* daily updateAlan Modra2012-04-281-1/+1
|
* Document sparc's %l34 and %h34David S. Miller2012-04-272-1/+18
| | | | | | gas/ * doc/c-sparc.text: Document %l34 and %h34.
* Add support for sparc %cfr ASR register.David S. Miller2012-04-279-1/+38
| | | | | | | | | | | | | | | | | opcodes/ * sparc-dis.c (v9a_asr_reg_names): Add 'cfr'. * sparc-opc.c (sparc_opcodes): Add rd/wr cases for %cfr. gas/ * config/tc-sparc.c (v9a_asr_table): Add 'cfr'. gas/testsuite/ * gas/sparc/sparc.exp: Run cfr test. * gas/sparc/cfr.s: New testcase. * gas/sparc/cfr.d: Likewise.
* * dwarf2.c (scan_unit_for_symbols): Account for DW_AT_high_pcmark2012-04-272-0/+15
| | | | | possibly being relative to DW_AT_low_pc. (parse_comp_unit): Likewise.
* Add support for sparc pause instruction.David S. Miller2012-04-279-6/+44
| | | | | | | | | | | | | | | | | | | opcodes/ * sparc-opc.c (sparc_opcodes): Add 'wr X, %pause' and 'pause'. * sparc-dis.c (v9a_asr_reg_names): Add 'pause'. gas/ * config/tc-sparc.c (sparc_arch_table): Add HWCAP_PAUSE to sparc4, v8pluse, v8plusv, v9e, and v9v. (v9a_asr_table): Add 'pause'. gas/testsuite/ * gas/sparc/sparc.exp: Run pause test. * gas/sparc/pause.s: New testcase. * gas/sparc/pause.d: Likewise.
* merge from gccDJ Delorie2012-04-276-629/+900
|
* Add support for sparc compare-and-branch instructions.David S. Miller2012-04-278-5/+196
| | | | | | | | | | | | | | | | | | | | | | | opcodes/ * sparc-opc.c (CBCOND): New define. (CBCOND_XCC): Likewise. (cbcond): New helper macro. (sparc_opcodes): Add compare-and-branch instructions. gas/ * config/tc-sparc.c (sparc_arch_table): Add HWCAP_CBCOND to sparc4, v8pluse, v8plusv, v9e, and v9v. (sparc_ip): Handle R_SPARC_5 of immediate constants inline in order to accomodate cbcond which otherwise would require two relocations to be handled in a single instruction.. gas/testsuite/ * gas/sparc/cbcond.s: New file. * gas/sparc/cbcond.d: New file. * gas/sparc/sparc.exp: Run cbcond test.
* Add support for SPARC T4 crypto instructions.David S. Miller2012-04-2711-3/+356
| | | | | | | | | | | | | | | | | | | | | | | | | include/opcode/ * sparc.h: Document new arg code' )' for crypto RS3 immediates. opcodes/ * sparc-dis.c (print_insn_sparc): Handle ')'. * sparc-opc.c (sparc_opcodes): Add crypto instructions. gas/ * config/tc-sparc.c (sparc_ip): Likewise. Accept instruction names containing "_". (sparc_arch_table): Add sparc4, v8pluse, and v9e. Add crypto hwcap masks to v8plusv and v9v. gas/testsuite/ * gas/sparc/crypto.s: New file. * gas/sparc/crypto.d: New file. * gas/sparc/sparc.exp: Run crypto test.
* Move sparc opcode hwcaps out of sparc_opcode flags field.David S. Miller2012-04-276-1437/+1469
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | include/opcode/ * sparc.h (struct sparc_opcode): New field 'hwcaps'. F_MUL32, F_DIV32, F_FDMULD, F_V8PLUS, F_POPC, F_VIS, F_VIS2, F_ASI_BLK_INIT, F_FMAF, F_VIS3, F_HPC, F_RANDOM, F_TRANS, F_FJFMAU, F_IMA, F_ASI_CACHE_SPARING, F_HWCAP_MASK): Delete. (HWCAP_MUL32, HWCAP_DIV32, HWCAP_FSMULD, HWCAP_V8PLUS, HWCAP_POPC, HWCAP_VIS, HWCAP_VIS2, HWCAP_ASI_BLK_INIT, HWCAP_FMAF, HWCAP_VIS3, HWCAP_HPC, HWCAP_RANDOM, HWCAP_TRANS, HWCAP_FJFMAU, HWCAP_IMA, HWCAP_ASI_CACHE_SPARING, HWCAP_AES, HWCAP_DES, HWCAP_KASUMI, HWCAP_CAMELLIA, HWCAP_MD5, HWCAP_SHA1, HWCAP_SHA256, HWCAP_SHA512, HWCAP_MPMUL, HWCAP_MONT, HWCAP_PAUSE, HWCAP_CBCOND, HWCAP_CRC32): New defines. opcodes/ * sparc-opc.c (sparc_opcodes): Rework table to put HWCAP values into new struct sparc_opcode 'hwcaps' field instead of 'flags'. gas/ * config/tc-sparc.c (sparc_arch_table): Rework to use HWCAP_* masks. (sparc_md_end): No longer need to translate hwcap_seen values into ELF hwcap bits, they now match exactly. (get_hwcap_name): Use HWCAP_* and handle new values. (sparc_ip): Fetch hwcaps from insn->hwcaps instead of insn->flags.
* Add new ELF_SPARC_HWCAP_* defines for features found on SPARC-T4.David S. Miller2012-04-272-0/+19
| | | | | | | include/elf/ * sparc.h: Add new ELF_SPARC_HWCAP_* defines for crypto, pause, and compare-and-branch instructions.
* daily updateAlan Modra2012-04-271-1/+1
|
* * elf32-m68k.c (elf_m68k_check_relocs): Mark non-GOT referencesAndreas Schwab2012-04-262-1/+20
| | | | | | also when generating PIE. (elf_m68k_discard_copies): Mark undefined weak symbols referenced by relocations as dynamic.
* Revert accidental check-in.Hans-Peter Nilsson2012-04-261-6/+0
|
* Make bfd asserts cause linker errors.Hans-Peter Nilsson2012-04-262-0/+25
| | | | | | * ldmain.c (default_bfd_assert_handler): New variable. (ld_bfd_assert_handler): New function. (main): Call bfd_set_assert_handler.
* Provide a way for programs to recognize BFD_ASSERT calls.Hans-Peter Nilsson2012-04-265-2/+112
| | | | | | | | | | * bfd.c (bfd_assert_handler_type): New API type. (bfd_set_assert_handler, bfd_get_assert_handler): New API functions. (_bfd_assert_handler): New variable. (_bfd_default_assert_handler): New function. (bfd_assert): Call _bfd_assert_handler, not _bfd_error_handler. * libbfd-in.h (_bfd_assert_handler): Declare. * libbfd.h, bfd-in2.h: Regenerate.
* * arm.cc (Target_arm::do_is_defined_by_abi): Make sym a constIan Lance Taylor2012-04-266-11/+26
| | | | | | | | | | | | pointer. (Stub_addend_reader::operator()): Declare Arm_relocate_functions as a class, not a struct. (Target_arm::scan_span_for_cortex_a8_erratum): Likewise. (Target_arm::apply_cortex_a8_workaround): Likewise. * gc.h: Declare Reloc_types as a struct, not a class. * object.h: Declare Symbols_data as a struct. * reloc.h: Declare Read_relocs_data as a struct. * target.h: Declare Relocate_info as a struct.