summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [AArch64] Factor out common behaviour between ↵Marcus Shawcroft2015-03-301-52/+32
| | | | | | elf_aarch64_create_or_find_stub_sec and elfNN_aarch64_add_stub Change-Id: I8e5ce0f4dd3aa322f97fa09d42c6f95e0d45118d
* [AArch64] Flip sense of erratum_835769_scan.Marcus Shawcroft2015-03-301-8/+13
| | | | Change-Id: Ia79975e3ce9f1eca6ae092b4c9e2d92168fde1a0
* [AArch64] Drop unused argument to elf_aarch64_create_or_find_stub_secMarcus Shawcroft2015-03-301-10/+5
| | | | Change-Id: I0454073cfad254ee5e28c5d597d615abdef9331d
* [AArch64] Remove unused variable.Marcus Shawcroft2015-03-301-3/+2
| | | | Change-Id: I5e0be2e412d13fe4a5d738d7949bfb11909783d0
* Remove dead code.Marcus Shawcroft2015-03-301-16/+0
| | | | Change-Id: Iea5ae8c19790beebc6188b094895cbe7c7c221c5
* [AARCH64] Remove Load/Store register (unscaled immediate) alias.Jiong Wang2015-03-307-689/+629
| | | | | | | | | | | | | | | | | | | | | | | opcodes/ChangeLog: 2015-03-10 Renlin Li <renlin.li@arm.com> * aarch64-tbl.h (aarch64_opcode_table): Remove strub, ldurb, ldursb, stur, ldur, sturh, ldurh, ldursh, ldursw, prfum F_HAS_ALIAS flag and related alias. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Likewise. * aarch64-opc-2.c: Likewise. gas/testsuite/ChangeLog: 2015-03-10 Renlin Li <renlin.li@arm.com> * gas/aarch64/ldst-reg-uns-imm.d: Adjust expected output. * gas/aarch64/ldst-reg-unscaled-imm.d: Likewise. * gas/aarch64/reloc-insn.d: Likewise. Change-Id: Ifdaa84564771ef57093943c5778e80570ec04af4
* [AArch64] Removing unused functions.Marcus Shawcroft2015-03-301-42/+0
| | | | | | Removing a group of unused functions from the AArch64 BFD backend. Change-Id: I9dc2a43084f21ee2771d26d32e1a26692018bb5c
* Fixed Cortex-A53 Erratum 835769 -- LD segfaults with unordered maps.Tejas Belagod2015-03-301-0/+27
| | | | | | | | | | | | | | | | | | | The BFD/LD patch for Cortex-A53 erratum 835769 (https://sourceware.org/ml/binutils/2014-10/msg00199.html) does not handle a particular case of the AArch64 ELF ABI where mapping symbols are allowed to be unordered in the symbol table (not in address order). The unordering causes section maps to be traversed with incorrect span boundaries (in the erratum scanning function) which causes memory faults. The attached patch fixes this issue by ordering the section maps by their 'vma' before starting to traverse them. While this is not an issue with a the GNU toolchain, it is a potential issue with Clang/LLVM. We have observed at least one case where LLVM generates an ELF object with mapping symbols unordered in the symbol table and causes a fault. We have been unable to construct a test case with the GNU toolchain. We have verified by manual inspection the correctness of the traversal with this patch for an LLVM-generated ELF object which triggered this issue. This patch has been bootstrapped on aarch64-linux and regressed.
* Backport to fix race condition calling select_as_default_target()Andrew Hsieh2015-03-302-2/+2
| | | | | | | | | | | 2015-03-03 Cary Coutant <ccoutant@google.com> gold/ * parameters.cc (Parameters::set_target_once): Call Target::select_as_default_target just once from here... (set_parameters_target): ...instead of from here. Change-Id: Ic4b1503b1bb453b9812188e0a98482bc489d9197
* Fix as to ignore --save-tempsAndrew Hsieh2015-03-301-0/+7
| | | | | | | | | | | mips/gcc4.6 is now built with binutils-2.24 to be consistant with gcc4.8 and gcc4.9 on nan handling. Unfortunately gcc4.6 pass on -save-temps to not recognized by "as". gcc4.6 is normally built with binutils-2.21 which has fix for as to accept but ignore -save-temps. This CL catptures the same fix in binutils-2.21 Change-Id: I58095a67810f2bcf6e7594383002247a9491a901
* Fix buildAndrew Hsieh2015-03-026-3/+40
| | | | | | | | 1. revert https://android-review.googlesource.com/#/c/38591. 2. add a few constants from ToT 3. fix a typo about pthread_mutexattr_settype Change-Id: I55a829e7907658f920aedbf1100c6d9b1a93052b
* Update binutils-2.25/gold to ToTAndrew Hsieh2015-02-24404-1160/+5554
| | | | | | | | | | | | | commit be66981e1605eff305ac9c561825f4bd6801fca2 Author: H.J. Lu <hjl.tools@gmail.com> Date: Sun Feb 22 05:18:50 2015 -0800 Set GOLD_DEFAULT_SIZE to 32 for x32 * configure.ac (default_size): Set to 32 for x32. * configure: Regenerated. Change-Id: I4b2d8927e4e41cf2fac3c92d00e8aef69b5ce21f
* [2.24][2.25] Fix race condition causing assertRong Xu2015-02-1811-19/+32
| | | | | | | | | | | | | | | | | | | | | | | Backport trunk commit 635aa that fixes race condition causing assert in Eh_frame_hdr::do_sized_write(). 2014-09-23 Taiju Tsuiki <tzik@google.com> Cary Coutant <ccoutant@google.com> gold/ * gold.cc (queue_final_tasks): Add Write_sections_task as a * blocker on input_sections_blocker. * layout.cc (Write_sections_task::locks): Unblock input_sections_blocker_. * layout.h (Write_sections_task::Write_sections_task): Add input_sections_blocker. * testsuite/Makefile.am (exception_x86_64_bnd_test): Add * gcctestdir/ld to DEPENDENCIES. * testsuite/Makefile.in: Regenerate. Change-Id: I17a0f2aaf565b775f92f4806c4abcbea5d2dd803
* Add support for the new tag DT_MIPS_RLD_MAP2.Nikola Veljkovic2014-12-253-3/+34
| | | | | | | DT_MIPS_RLD_MAP2 is used by the loader to communicate shared library information of a PIE to the GDB. Signed-off-by: Raghu Gandham <raghu.gandham@imgtec.com>
* Add MIPS specific changes to binutils 2.25 (prerelease) for MIPSR6 bug fixes,Steve Ellcey2014-12-1825-51/+1488
| | | | MXU support, and a fix to needed by gdbserver.
* [2.25] Fix __preinit_array_start not aligned properly in 64-bit.Lai Wei-Chih2014-12-091-1/+1
| | | | | | | For 64-bit address space, it should be 8-bytes aligned. 'ALIGNMENT' will be expanded to '64 / 8' for 64-bit and '32 / 8' for 32-bit. Change-Id: Ide4cda93afae0535ccc30bff53c67b0d637a4198
* [2.25] re-apply local patchesAndrew Hsieh2014-12-099-38/+215
| | | | | | | | | | | e0bca373a85fa71b89d9ea42370433b3c0499b9d 160ce55a90bcdcb3000d74805795969edc3f8422 b33d0ddc123435be5e60ebb15a37b3bfb651dc7e f25603579c0a04b3d5099259cf54c5b3c8775b78 1000fadfaa979b623e1fbd0c87858be4f5b6dffd 83cabeb81083ac53719eaaf68c48734ff9c48fa9 Change-Id: I15f9c78c69f4cfce7a617b7e9d91dd855b6d8efc
* [2.25] sync to a30720e3e633f275250e26f85ccae5dbdddfb6c6Andrew Hsieh2014-12-094094-126235/+453678
| | | | | | | | | | | | local patches will be re-applied later commit a30720e3e633f275250e26f85ccae5dbdddfb6c6 Author: Alan Modra <amodra@gmail.com> Date: Wed Nov 19 10:30:16 2014 +1030 daily update Change-Id: Ieb2a3f4dd2ecb289ac5305ff08d428b2847494ab
* Fix extraneous warning about executable stack.Cary Coutant2014-12-024-6/+35
| | | | | | | | | | | | | | | | | | | | PR gold/17578 notes that gold will print a warning about an executable stack when the -z execstack option is given, even when there is no --warn_execstack option. The warning is completely useless and unexpected, since the user explicitly requested an executable stack, and did not even ask for warnings. This patch fixes that, and adds an extra warning when --warn_execstack and -z noexecstack are both given and an input file requires an executable stack. gold/ PR gold/17578 * layout.cc (Layout::layout_gnu_stack): Don't warn when -z execstack is given. (Layout::create_executable_stack_info): Warn when -z noexecstack is given but some inputs require executable stack. Change-Id: I7b15682af81d3c52057473d347f83a768e087ffa
* Fixed Cortex-A53 Erratum 835769 -- LD segfaults with unordered maps.Tejas Belagod2014-12-021-0/+27
| | | | | | | | | | | | | | | | | | | | | The BFD/LD patch for Cortex-A53 erratum 835769 (https://sourceware.org/ml/binutils/2014-10/msg00199.html) does not handle a particular case of the AArch64 ELF ABI where mapping symbols are allowed to be unordered in the symbol table (not in address order). The unordering causes section maps to be traversed with incorrect span boundaries (in the erratum scanning function) which causes memory faults. The attached patch fixes this issue by ordering the section maps by their 'vma' before starting to traverse them. While this is not an issue with a the GNU toolchain, it is a potential issue with Clang/LLVM. We have observed at least one case where LLVM generates an ELF object with mapping symbols unordered in the symbol table and causes a fault. We have been unable to construct a test case with the GNU toolchain. We have verified by manual inspection the correctness of the traversal with this patch for an LLVM-generated ELF object which triggered this issue. This patch has been bootstrapped on aarch64-linux and regressed. Change-Id: I75622055b01eeb3038d5600c9eea395585e54aca
* [2.24][2.25] Backport prevent user links ARM ELF binary into an AARCH64 ELF ↵Lai Wei-Chih2014-11-284-0/+18
| | | | | | | | | | | | | | | executable. Prevent the linker from generating a seg-fault when the user attempts to link an ARM ELF binary into an AARCH64 ELF executable. 2014-03-12 Nick Clifton <nickc@redhat.com> PR ld/16671 * elf32-arm.c (elf32_arm_add_symbol_hook): Check for ARM format before testing for vxworks. Change-Id: Ibc81a168b85f70422d428d857b8de0c71e2824ed
* [2.24] Cortex-A53 erratum 835769 linker workaroundRong Xu2014-10-3111-8/+830
| | | | | | | This is ported from upstream binutils 2.24 branch commit: cde98f8566e14f52b896abc92c357cdd14717505 Change-Id: Ic5af0a8a8f77444d418d16713e5d6ae490ee8adf
* Merge "Add missing mtc1, mthc1, mfhc1 instructions to Ingenic's MXU patch."Andrew Hsieh2014-09-033-0/+18
|\
| * Add missing mtc1, mthc1, mfhc1 instructions to Ingenic's MXU patch.Andrew Bennett2014-08-293-0/+18
| | | | | | | | Change-Id: Ib83ffec3512b8306458d6ea608f730d08f5b1c10
* | Merge "Add support for Ingenic's MXU."Andrew Hsieh2014-09-0311-15/+1209
|\|
| * Add support for Ingenic's MXU.Andrew Bennett2014-08-2911-15/+1209
| | | | | | | | Change-Id: Ibc79d4e05b92b9f23a0b1a381d94c588f56a0749
* | [2.24][2.25] Fix __preinit_array_start not aligned properly in 64-bit.Lai Wei-Chih2014-08-142-2/+2
|/ | | | | | | For 64-bit address space, it should be 8-bytes aligned. 'ALIGNMENT' will be expanded to '64 / 8' for 64-bit and '32 / 8' for 32-bit. Change-Id: I7bbbf04a9b4e68a342201ec7c04f67497e3fa3a1
* Update Binutils 2.24 to include mips32r6, mips64r6 and MSA changes.Steve Ellcey2014-07-03461-2777/+26107
| | | | Change-Id: I24f28bc29dff188ba059388d8d5478f51da56a12
* [2.25] apply local patchesAndrew Hsieh2014-06-1311-69/+275
| | | | | | | | | | | | | | 7a17fb955bb42018c3c84e003700ac120c3502d4 b2a417bdb17191ef2afc20bbd308e308c0730403 e0bca373a85fa71b89d9ea42370433b3c0499b9d 57fbbfbda5a77b558c24a44e7eed8c4030c31bcd 160ce55a90bcdcb3000d74805795969edc3f8422 b33d0ddc123435be5e60ebb15a37b3bfb651dc7e f25603579c0a04b3d5099259cf54c5b3c8775b78 1000fadfaa979b623e1fbd0c87858be4f5b6dffd 83cabeb81083ac53719eaaf68c48734ff9c48fa9 Change-Id: I174be6632426ed720e643bca7c48a9077b31d34b
* Add upstream binutils-2.25 snapshot 4/4 2014Andrew Hsieh2014-06-1314861-0/+4637857
| | | | | | For MIPS -mmsa support Change-Id: I08c4f002fa7b33dec85ed75956e6ab551bb03c96
* Merge "[2.24] Fix assert failure with --emit-relocs and .eh_frame sections ↵Andrew Hsieh2014-06-021-22/+22
|\ | | | | | | by backporting the following patch from mainline:"
| * [2.24] Fix assert failure with --emit-relocs and .eh_frame sections by ↵Alexander Ivchenko2014-06-021-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | backporting the following patch from mainline: 2013-11-06 Cary Coutant <ccoutant@google.com> PR gold/15758 * object.cc (Sized_relobj_file::do_layout): Handle .eh_frame sections before reloc sections. Change-Id: I964471340806597252c5e4695c65a7b87b2ebb39 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* | [2.23, 2.24] Backport of two patches for Gold that fix the issue withAlexander Ivchenko2014-05-282-4/+12
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | linking using -fpie and -mcmodel=large. Both patches are already in 2.24 upstream branch. https://sourceware.org/bugzilla/show_bug.cgi?id=16945 https://sourceware.org/bugzilla/show_bug.cgi?id=16870 commit c23dd3426c75fbf7fa9f30a4082be034818967c1 Author: H.J. Lu <hjl.tools@gmail.com> Date: Tue May 27 12:19:33 2014 -0700 Properly handle 64-bit GOT relocations This patch fixes 2 issues: 1. Since the GOT offset is always negative, we need to use signed int to support 64-bit GOT relocations. 2. R_X86_64_PLTOFF64 uses the address of GLOBAL_OFFSET_TABLE, which is the address of the .got.plt section, not the .got section. commit 7849f6d8dc37fc3da2fec06ac1d47afbe4b81059 Author: Cary Coutant <ccoutant@google.com> Date: Wed Apr 23 15:17:16 2014 -0700 Add missing break statement for case elfcpp::R_X86_64_PLTOFF64. gold/ * x86_64.cc (Target_x86_64::Relocate::relocate): Add missing break. Change-Id: Icb3cb1de77a7d467fccb715dc6da83c6d2c5c2a6 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* [2.24] fix MIPS static executable segfaultAndrew Hsieh2014-05-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previous commit f25603579c0a04b3d5099259cf54c5b3c8775b78 isn't complete because .ctors/.dtors in crtbegin*/crtend* aren't excluded from .init_array/.fini_array. Static executable (eg. $NDK/tests/device/static-executable) causes "Bus Error" because call_array() in __libc_init() call ffffffff from __INIT_ARRAY__ not properly terminaed by NULL. Disassembly of section .init_array: 000b42ac <__INIT_ARRAY__>: b42ac: ff ff ff ff 000b42b0 <__CTOR_LIST__>: b42b0: ff ff ff ff dc 09 08 00 f8 09 08 00 00 00 00 00 000b42c0 <__CTOR_END__>: b42c0: 00 00 00 00 Note that Android uses .init/.fini_array (move away from .ctors/.dtors), but we can't simply remove _CTOR* from crtbegin_static/dynamic.o because older device (eg. ICS) call_array() on CTOR_LIST The correct fix is to exclude them Thanks to icebergfu@gmail.com for identifying the issues. Change-Id: I7a955753baa00fd486cc5a37362ab91c3a21d1e1
* [2.24] Only quote arguments in pex-win32.c that need itRay Donnelly2014-04-141-9/+38
| | | | | | See 99e61be119cf94aed94e96a1cc192b4733ed7c1d Change-Id: I8d21ba308aa4d1e31a908b16f4e0e3168d7b8787
* [2.24] Fix alignment for data segment for 64 bits.Alexander Ivchenko2014-04-141-5/+8
| | | | | | See 4c195079b72a16cb62cb9a6e8010b3dc0202795b Change-Id: I64dab07994f832898584d34095c3d3ab015c2fe9
* [2.24] Silence ARM as error "MOV Rd, Rs" two low regs with clang/armv5/thumb1Andrew Hsieh2014-04-141-0/+7
| | | | | | See 92337cf27b1497415e3f345ea9292e96ced2a8fa Change-Id: Id8c37627f3a2e6ec904ac95139c144bd834e6e50
* [2.24] Modify linker script generation for MIPS AndroidAndrew Hsieh2014-04-144-29/+39
| | | | | | | See dca628154da7b641772aad6e6e63325a642b9472 and 9adb6697703c230d1bded964b2fd2dceb80db2f3 Change-Id: Ia55791b46bbd1a509b12f2e1e37cdc5d7ec27754
* [2.24] Fix newer binutils not to assert on non-existence tag_FP_archAndrew Hsieh2014-04-143-5/+10
| | | | | | | See 6dc39c25be5791b015878f23a2d2e84f2b16ae43 and 1342ca94f07e5164f14acb74b2c3903ba0c4009a Change-Id: I6b189890304d15972929e1171630c6ecd843139c
* [2.24] Support decoding of symbols for plt entries on armAndrew Hsieh2014-04-141-0/+15
| | | | | | | | See 2ea716fce6d62ca9b3845c6dde40271438a2891a, f9dadca89a4a993e5c68137b5b162b5e79fa4455 and fa1f1a225fd4598b2fb6edf4bf63591c9e72d13a Change-Id: I17fa387a88f96e01a97a3621e2d8eda405b079be
* Merge "2.21-2.23: Only quote arguments in pex-win32.c that need it"Andrew Hsieh2014-04-103-27/+114
|\
| * 2.21-2.23: Only quote arguments in pex-win32.c that need itRay Donnelly2014-03-173-27/+114
| | | | | | | | | | | | | | | | .. it always quoted all arguments, irrespective of whether there was a need to. This means the 32k limit is getting hit more often than it needs to. Change-Id: I5fb427cc3ad6a00a8099d3ed0fce1f43ed027f78
* | Initial checkin of binutils 2.24.Ben Cheng2014-03-2615000-0/+4788965
|/ | | | Change-Id: I0dfcbae6608dded6c3586bf5f4ac27e9612e70a2
* [2.21, 2.22, 2.23] Backport of the patch for keeping lto sectionsAlexander Ivchenko2014-03-053-3/+6
| | | | | | | | | | | | when linking with "-r" options (ld bfd behaviour). 2012-10-16 Sriraman Tallam <tmsriram@google.com> * layout.cc (Layout::include_section): Keep sections marked SHF_EXCLUDE when doing relocatable links. Change-Id: Icc49c2b8e34097ec95d869a70d367ef6faf320ed Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* [2.22, 2.23] Fix alignment for data segment for 64 bits.Alexander Ivchenko2014-01-162-10/+16
| | | | | | | | | Without this fix, each library in 64 bit mode weights more than 2MB, which is far too large. Roll back the default value for the alignment of data segment. Change-Id: I8cd1e3d22d2245ba78b348c5ada77ee594be1fdf Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* [2.21], [2.22], [2.23] Backport of several patches for fixingAlexander Ivchenko2013-11-1127-267/+288
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | build of binutils with texinfo-5.0. 2013-01-06 Andreas Schwab <schwab@linux-m68k.org> * doc/c-mips.texi (MIPS Opts): Fix use of @itemx. * doc/c-score.texi (SCORE-Opts): Likewise. * doc/c-tic54x.texi (TIC54X-Directives): Likewise. 2013-03-14 Andreas Schwab <schwab@suse.de> * doc/c-arc.texi (ARC Directives): Revert last change and use @itemize instead of @table. * doc/c-arm.texi (ARM-Instruction-Set): Likewise. 2013-03-14 Nick Clifton <nickc@redhat.com> PR gas/15212 * doc/c-arc.texi (ARC Directives): Use @code instead of @bullte for table format. * doc/c-arm.texi (ARM-Instruction-Set): Likewise. Also add text to the @item directives. (ARM-Neon-Alignment): Move to correct place in the document. * doc/c-cr16.texi (CR16 Operand Qualifiers): Fix up table formatting. * doc/c-tic54x.texi (TIC54X-Subsyms): Correct use of @smallexample. 2013-01-04 Andreas Schwab <schwab@linux-m68k.org> * doc/binutils.texi (elfedit): Fix use of @itemx in @table. 2013-01-07 Patrice Dumas <pertusus@free.fr> * ld.texinfo: Replace @ with @@ when it is part of the text. Correct ordering of M68HC11 entry. * doc/binutils.texi: Fix ordering of top level nodes. Replace erroneous uses of @itemx with @item. * bfd.texinfo: Replace @ with @@ when it is part of the text. Change-Id: Ib60e0340bf8d3e3b29ff4e93d34c6ac389c78fca Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* [2.23] Use relative relocation for R_X86_64_32 on x32Pavel Chupin2013-09-061-1/+2
| | | | | | | | | | | | | | | | x32 is supported in gold at 2.23+. Backport of trunk patch 1.165 (CVS revision of x86_64.cc). ChangeLog entry: 2013-09-03 Pavel Chupin <pavel.v.chupin@intel.com> PR gold/15927 * x86_64.cc (Target_x86_64<size>::Scan::global): Use relative relocation for R_X86_64_32 on x32. Change-Id: I15b444d7b74171e87d349ea96548d6607ef7a242 Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
* Add MXU support to binutils-2.21/2.22/2.23Iceberg Fu2013-08-1515-21/+3678
| | | | Change-Id: Ibcc5b2ab16e640f7fd3d8a0420fec1bd91a6e6fa
* [2.22] Update mingw/plugins fixes from 2.23. That fixes make check-gold.Alexander Ivchenko2013-06-1813-11190/+522
| | | | | | | | | For binutils-2.22 make check-gold was broken. This patch reverts 4dd978c332b01f700fb83a8ea57043fe08557093 and applies 3dcb6e6fd79152c6baa321d2af8892b714cad958 instead. Change-Id: I7589c72aab9b180473c6e2049c7c6e72f9a8d808 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* [2.21], [2.22], [2.23] Backport of the patch for fixing large symbol alignment.Alexander Ivchenko2013-06-0612-28/+279
| | | | | | | | | | | | | | | 2013-06-05 Alexander Ivchenko <alexander.ivchenko@intel.com> gold/ * layout.cc (Layout::set_segment_offsets): Taking care of the case when the maximum segment alignment is larger than the page size. * testsuite/Makefile.am (large_symbol_alignment): Test that Gold correctly aligns the symbols with large alignemnt. * testsuite/Makefile.in: Regenerate. * testsuite/large_symbol_alignment.cc: New file. Change-Id: I2fe5b73b9e76050f0f42bbbc9086d0d5824c0020 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>