summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/gold
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of https://android.googlesource.com/toolchain/binutilsHEADreplicant-6.0-0004-rc3replicant-6.0-0004-rc2replicant-6.0-0004-rc1replicant-6.0-0003replicant-6.0-0002replicant-6.0-0001masterWolfgang Wiedmeyer2017-05-021-8/+8
|\
| * Fix bug where -u option with empty archive results in internal error.Cary Coutant2017-04-131-8/+8
| | | | | | | | | | | | | | | | | | | | gold/ PR gold/20693 * gold.cc (queue_middle_tasks): Force valid target earlier. This change is backport of commit c13b08dbbcf752480a7621aa1f89bc5440c74c25 - https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c13b08dbbcf752480a7621aa1f89bc5440c74c25 to binutils 2.25.
* | Merge branch 'master' of https://android.googlesource.com/toolchain/binutilsWolfgang Wiedmeyer2016-12-086-130/+236
|\ \ | |/
| * gold: enable new dtags by default.refs/keep-around/082ed0f10cf59b53381cefda2f90247e2a81015bRahul Chaudhry2016-11-031-1/+1
| | | | | | | | | | | | | | This is also the default upstream: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=50701cc170a7c10a72e5ec2c7c6ed31057a31d43 Bug: 31270843
| * gold: make icf respect section alignment requirements.refs/keep-around/b8ff982870858c54e09105458b6955b391cc0a11Rahul Chaudhry2016-10-215-129/+235
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=628795 The upstream bug is https://sourceware.org/bugzilla/show_bug.cgi?id=17704 This patch is backported from upstream - commit ac423761af22f7858a1413cda5df3e1d5e88d4e4 Author: Gergely Nagy <ngg@tresorit.com> Date: Fri Oct 21 11:08:20 2016 -0700 Fix PR 17704. This fix keeps the section with the highest alignment when folding sections with ICF. PR gold/17704 * icf.cc (match_sections): Add new parameter section_addraligns. Check section alignment and keep the section with the strictest alignment. (find_identical_sections): New local variable section_addraligns. Store each section's alignment. * testsuite/pr17704a_test.s: New file. * testsuite/Makefile.am (pr17704a_test): New test. * testsuite/Makefile.in: Regenerate.
* | various build fixes for Debian StretchWolfgang Wiedmeyer2016-12-073-44/+1
| | | | | | | | Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
* | Merge branch 'master' of https://android.googlesource.com/toolchain/binutilsWolfgang Wiedmeyer2016-09-0812-93/+356
|\ \ | |/
| * Remove warning about references from shared objects to hidden symbols.Rahul Chaudhry2016-06-285-20/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 21502954 This patch is backported from upstream - commit c20ceeb226168ffd84078ef74d890c2b7f69a435 Author: Yiran Wang <yiran@google.com> Date: Mon Jul 20 08:47:57 2015 -0700 Remove warning about references from shared objects to hidden symbols. gold/ PR gold/15574 * resolve.cc (Symbol_table): Remove warning about references from shared objects to hidden symbols. * testsuite/Makefile.am (hidden_test): Add hidden_test.syms. * testsuite/Makefile.in: Regenerate. * testsuite/hidden_test.sh: Check dynamic symbol table; update expected error messages. Change-Id: Ie6fb67071c7f478859069b7b4bf629cd44f91844
| * Revert "Disable the warning of a hidden symbol matches a reference to be ↵Rahul Chaudhry2016-06-282-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | resolved." Bug: 21502954 This change reverts https://android-review.googlesource.com/#/c/155101/, to be replaced by the upstream patch with tests. - https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=c20ceeb226168ffd84078ef74d890c2b7f69a435 Change-Id: Id929c8422a016638f860ac508eeafc7080584600
| * GOLD/DWP: exit without segfault if the binary is not built with debug fission.Yunlian Jiang2016-05-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | dwp segfaults when trying to get .dwp file from a binary built without debug fission. This patch fixes that. upstream thread is https://sourceware.org/ml/binutils/2016-05/msg00204.html BUG=None TEST=dwp still works with files built with debug fission and dwp does not segfault on files that are not built with debug fission.
| * Backport upstream CL to fix x86_32 clang segfaults.Yunlian Jiang2016-04-012-47/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream patch being backported: commit 84d543b7ed93bf6511cdf45791f4f0b717dfb718 Author: Sriraman Tallam <tmsriram@google.com> Date: Fri Feb 5 15:07:45 2016 -0800 2016-02-05 Sriraman Tallam <tmsriram@google.com> * icf.cc (get_rel_addend): New function. (get_section_contents): Move merge section addend computation to a new function. Ignore negative values for SHT_REL and SHT_RELA addends. Fix bug to not read past the length of the section. Fix bug related to addend computation for MERGE sections. Tested via cbuildbot for ChromeOS and build on Android mnc-dr-release for hammerhead
| * Backport upstream CL to fix x86_64 clang test-stlport segfaults.Han Shen2016-03-113-5/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream patch being backported: commit fc5a9bd57cbb974b8fc3aeb9a15d644cd9103451 Author: Cary Coutant <ccoutant@gmail.com> Date: Fri Feb 26 07:50:15 2016 -0800 Discard FDEs for zero-length address ranges. 2016-02-26 Egor Kochetov <egor.kochetov@intel.com> Cary Coutant <ccoutant@gmail.com> gold/ PR gold/19735 * ehframe.h (Cie::fde_encoding): New method. * ehframe.cc (Eh_frame::read_fde): Discard FDEs for zero-length address ranges. TESTED=only tested building with 'build.py' BUG=26085687 Change-Id: I52e90fba86b113a557dd4d29d36ecb4c512f3f7a
| * Silence "Erratum 843419 found and fixed" info messages from gold.Rahul Chaudhry2016-02-162-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BUG: 26536732 Tested by building binutils on ubuntu, and using the newly built gold to link volantis binaries. The info messages are gone. This patch is backported from upstream - commit e3dbf58233db3ad72f1ba624dc7f13ffd2728f25 Author: Han Shen <shenhan@google.com> Date: Thu Feb 11 09:47:49 2016 -0800 Remove info message for every erratum 843419 found and fixed. 2016-02-11 Rahul Chaudhry <rahulchaudhry@google.com> * aarch64.cc (Target_aarch64::scan_erratum_843419_span): Remove info message for every erratum 843419 found and fixed. Change-Id: I9792795096c919b006e98fdfdb01b448e597d605
| * Backport upstream patch to fix linker internal error.Han Shen2016-02-053-21/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The error happens while linking a huge arm32 binary (for example, a debuggable chrome browser on arm) - the plt jump offset overflows. This fixes the problem by introducing another level of indirection. By default this does not affect anything. However in case of plt jump offset overflow, instead of triggering an internal error, the linker generates a proper message and suggests add "--long-plt" to the linker command. Tested via linking debug chrome browser for arm32. Also tested by build.py on android. The upstream patch - commit ce3e49806d505721e0875e704de0b6fcba7660ed Author: Peter Collingbourne <pcc@google.com> Date: Thu Dec 17 16:50:35 2015 -0800 Implement --long-plt flag (ARM only). gold/ PR gold/18780 * arm.cc (Target_arm::do_make_data_plt): Choose PLT generator based on value of --long-plt flag. (Output_data_plt_arm_standard::do_get_plt_entry_size): Moved to Output_data_plt_arm_short. (Output_data_plt_arm_standard::do_fill_plt_entry): Likewise. (Output_data_plt_arm_standard::plt_entry): Likewise. (Output_data_plt_arm_standard::do_fill_first_plt_entry): Fix variable reference. (Output_data_plt_arm_short): New class. (Output_data_plt_arm_short::do_fill_plt_entry): Error out on too large PLT offsets instead of asserting. (Output_data_plt_arm_long): New class. * options.h (General_options): Define --long-plt flag. Change-Id: Ia61126a09f2213d1ca5c3635ec9e5b36a63f6cf3
| * Backport trunk patch wrt wrong stub generated for aarch64 large DSOs.Han Shen2016-01-212-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tested by build.py for linux aarch64 toolchains. The upstream patch is: commit 9a472eda40ba686e45bf4922455518ffa3c887e1 Author: Han Shen <shenhan@google.com> Date: Fri Jan 15 09:31:23 2016 -0800 [gold][aarch64] PR gold/19472 - DSOs need pc-relative stubs. The stub generated during relaxation uses absolute addressing mode for shared libraries, which is not correct. Use pc-relative addressing instead. gold/ChangeLog: 2016-01-15 Han Shen <shenhan@google.com> PR gold/19472 - DSOs need pc-relative stubs. * aarch64.cc (Reloc_stub::stub_type_for_reloc): Return PC-relative stub type for DSOs and pie executables. Change-Id: Id0022975cf93600117ff5bf300b9d736d6ad1f80
| * Backport trunk patch for not applying dynamic relocs.Han Shen2016-01-153-1/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note, there is a small change from the origin patch - while in the upstream patch, the option --no-apply-dynamic is default off, it is on by default in this CL. This should not bring any changes to android or chromeos, because the relocation value this CL changes is not used by chromeos, and is not used by android either (after the fix in bionic months ago). The backported patch is - commit 0eccf19f96d6218dd7c2f8d13f0546c2b942cc08 Author: Cary Coutant <ccoutant@gmail.com> Date: Thu Nov 5 12:24:14 2015 -0800 Add aarch64-specific --no-apply-dynamic-relocs option. With --no-apply-dynamic-relocs on aarch64 targets, gold will not apply link-time values for absolute relocations that become dynamic relocations. This provides a workaround for broken Android dynamic linkers that use the link-time value as an extra addend to the relocation. gold/ PR gold/19163 * aarch64.cc (Target_aarch64::Relocate::relocate): Don't apply certain relocations if --no-apply-dynamic-relocs is set. * options.h (--apply-dynamic-relocs): New aarch64-specific option. Tested - build whole toolchain and built android N9 image. Change-Id: Ida524bbee2a83574cd9e78ffdad9270787327c78
* | Merge branch 'master' of https://android.googlesource.com/toolchain/binutils ↵Wolfgang Wiedmeyer2016-01-141-2/+12
|\ \ | |/ | | | | into HEAD
| * Remove internal link in warning messages.Han Shen2016-01-121-2/+12
| | | | | | | | | | | | | | | | | | The go/unsafe-pie link should not appear in any warning messages, replace it with a little bit detail. Tested by building locally on ubuntu. Change-Id: I3e590108ec2c6c8917475b5d78cdabbfcf2833f7
* | fix build error with gold aarch64Wolfgang Wiedmeyer2016-01-071-1/+1
|/ | | | | | original from here: https://www.sourceware.org/ml/binutils/2015-07/msg00234.html Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
* Merge "Fix darwin build failures (because of compilation warnings)."Han Shen2015-11-212-6/+16
|\
| * Fix darwin build failures (because of compilation warnings).Han Shen2015-11-212-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | "%ld" is the printf specifier for "long int", which is 64-bit on 64-bit machines, and 32-bit on 32-bit hosts. While uint64_t is always 64 bits, so replace it with macro "PRIu64". Tested: ./build.py --host "linux" --toolchain aarch64-linux-android ./build.py --host "linux" --toolchain arm-linux-androideabi ./build.py --host "linux" --toolchain mipsel-linux-android ./build.py --host "windows" --toolchain arm-linux-androideabi Change-Id: I9f0b322ed14e6feb7a110bfebcff963cf94d7703
* | Cherry pick upstream patch for aarch64 unsupported reloc.Han Shen2015-11-212-0/+30
|/ | | | | | | | | | | | | | | | | | | | | Bug entry here - https://b.corp.google.com/u/0/issues/25642296 Tested: ./build.py --host "linux" --toolchain aarch64-linux-android Upstream patch here - commit 4d2f5d5824be99326c2c3e459c298e338856d8c8 Author: Han Shen <shenhan@google.com> Date: Tue Oct 27 15:17:54 2015 -0700 Patch for PR gold/19042 - unsupported reloc 311/312. gold/ * aarch64.cc (Target_aarch64::Scan::local): Add support for reloc 311/312. Change-Id: If784460c1ebdfb2be1ebdf1486db5eb03c5240a5
* Create an unified binutils source tree for both Android and ChromiumOS.Han Shen2015-11-20407-3791/+4890
| | | | | | | | | | | | | | | | | | | | | | About source code - The base version of this binutils is newer than that of aosp/binutils-2.25, it is based on the binutils that is used to build google products and ChromiumOS. And it contains *all* local Android patches as well as all patches that are cherry-picked from upstream for aosp/binutils-2.25 tree (up to Nov. 5 - 932d71b85). You may find the detailed development history for this binutils tree here - https://chromium.googlesource.com/chromiumos/third_party/binutils/+log/unification (This CL is a combination of all the CLs in it. After this CL is submitted the tree will be identical to https://chromium.googlesource.com/chromiumos/third_party/binutils/+log/unification at 2865a3615d80bd5f82d14d7e0484e84dc052596a) About testing - We tested this binutils for both ChromiumOS and Android. For android, we tested building N4, N5X, N6, N7, N9 using new binutils, we also did a full-build of toolchain (by build.py) and built a N5X image; for ChromiumOS - it passed ChromiumOS toolchain release tests on all 4 platforms (x86, x86_64, arm32 and arm64). Change-Id: I2bb2cf579f9458d0a8bc9612331dc7d5043e3d82
* Plumb --pic-veneer option for gold.Lee Campbell2015-11-053-3/+15
| | | | | | | | | | Cherry-pick of upstream commit cdb061674c044636465e52a8c989b9011f2ec8ac gold/ChangeLog: * arm.cc (Reloc_stub::stub_type_for_reloc): Plumb to stub generation. * options.h (General_options): Add --pic-veneer option. BUG: 25512672
* Fix gold build error at -O0.Than McIntosh2015-10-162-2/+13
| | | | | | | | | | | | | | | | | | | | | Cherrypick of upstream commit 5d7908e0880030628536a0266968a15922574735 Author: Cary Coutant <ccoutant@gmail.com> Date: Thu Jun 11 13:19:38 2015 -0700 Fix gold build error at -O0. In aarch64.cc, Erratum_stub::STUB_ADDR_ALIGN and Reloc_stub::STUB_ADDR_ALIGN are declared as static const int, and initialized in the class body. These values are referenced from outside the class body, and with no optimization, the references go unresolved. gold/ * aarch64.cc (Erratum_stub::STUB_ADDR_ALIGN): Move initialization outside class body. (Reloc_stub::STUB_ADDR_ALIGN): Likewise. Change-Id: I6c0726e624be076e0d0565652a56da5ef761d88a
* Use "gold_info" instead of "gold_warning" for erratum fix.Han Shen2015-09-292-2/+10
| | | | | | | | | gold/ChangeLog: * aarch64.cc (Target_aarch64::scan_erratum_843419_span): Use 'gold_info'. (Target_aarch64::scan_erratum_835769_span): USe 'gold_info'. (cherry picked from commit 73854cdd438dc8858290231ebcb682377d71fec2)
* Drop 'missing mapping symbols' warning for arm and aarch64.Han Shen2015-09-293-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | The psABI (AAELF) says this about mapping symbols: 4.6.5.1 Section-relative mapping symbols Mapping symbols defined in a section define a sequence of half-open address intervals that cover the address range of the section. Each interval starts at the address defined by the mapping symbol, and continues up to, but not including, the address defined by the next (in address order) mapping symbol or the end of the section. A section must have a mapping symbol defined at the beginning of the section; however, if the section contains only data then the mapping symbol may be omitted. That makes it pretty clear that, in the absence of a mapping symbol, the entire section can be treated as data. gold/ChangeLog: * aarch64.cc (AArch64_relobj::scan_errata): Drop missing symbol warning. * arm.cc (Arm_relobj::scan_section_for_cortex_a8_erratum): Drop missing symbol warning. (cherry picked from commit 61163dfaaedb90d78e11c1d79ad1e469daf3da47)
* Remove duplicated option fix_cortex_a53_835769Andrew Hsieh2015-07-301-3/+0
| | | | | | | | | This was added before ld.gold scans for erratum 835769, but GCC has been hard-wired to pass "--fix-cortex-a53-835769" to linker (ld.bfd is default for AArch64 for now) unconditionally in Android platform. Change-Id: I39bacdc2a52d09afdc0993c17b46ac438d1fa246
* Make gold aarch64 accept long form of mapping symbols.Han Shen2015-07-292-3/+17
| | | | | | | | | | | | 2015-07-07 Han Shen <shenhan@google.com> gold/ChangeLog: 2015-07-06 Han Shen <shenhan@google.com> * aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal of mapping symbols. Change-Id: If62f577eeb704d8c7b0b2f525e91b3cb311001ca (cherry picked from commit b91deca94e36b9f18156909e4c615fe7af8e3ae8)
* Patch for gold internal error while fixing erratum 843419.Han Shen2015-07-292-4/+56
| | | | | | | | | | | | | | | | | | | The crash reason is that the insn to be moved to stub may be a relocation spot, so instead of placing the origin insn (that is insn before-relocation) to the stub, I have to place the relocated one. Note the relocation involved is non-pc-relative, so it is safe to move the relocated insn. gold/ChangeLog: 2015-06-29 Han Shen <shenhan@google.com> * AArch64.cc (Erratum_stub::Insn_utilities): New typedef. (Erratum_stub::update_erratum_insn): New method. (Stub_table::relocate_stubs): Modified to place relocated insn. (AArch64_relobj::fix_errata): Modified gold_assert. Change-Id: I9d90ac6e569bbbab086f877c7446dc6f9ea96247 (cherry picked from commit 56b06706ebe6bb3decc674b788b6f5b243b8610d)
* [gold][aarch64] Fix erratum 835769.Han Shen2015-07-293-44/+285
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gold/ChangeLog: * aarch64.cc (AArch64_insn_utilities::BYTES_PER_INSN): Move defintion outside class definition. (AArch64_insn_utilities::AARCH64_ZR): New static constant. (AArch64_insn_utilities::aarch64_op31): New member. (AArch64_insn_utilities::aarch64_ra): New member. (AArch64_insn_utilities::aarch64_mac): New member. (AArch64_insn_utilities::aarch64_mlxl): New member. (ST_E_835769): New global enum member. (Stub_table::relocate_stubs): Add 835769 handler. (Stub_template_repertoire::Stub_template_repertoire): Install new stub type. (AArch64_relobj::scan_errata): This func is renamed from scan_erratum_843419. (AArch64_relobj::do_count_local_symbols): Add 835769 handler. (AArch64_relobj::do_relocate_sections): Add 835769 handler. (AArch64_relobj::scan_sections_for_stubs): Add 835769 handler. (Target_aarch64::scan_erratum_835769_span): New method. (Target_aarch64::create_erratum_stub): New method. (Target_aarch64::is_erratum_835769_sequence): New method. (Target_aarch64::scan_erratum_843419_sequence): Move part of the code into create_erratum_stub. * options.h (fix_cortex_a53_835769): New option. Change-Id: Ia355fad38de61f82b9a42c601129fbbe2730ba27 (cherry picked from commit 2f0c79aa61e82cbc5da4b9ab399362b2cdd8ea2e)
* Patch for erratum-843419 (2 of 2 - fix erratum occurrences).Han Shen2015-07-292-176/+710
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now fixing for 843419 is fully functional. The first part of the erratum fix CL is here - https://sourceware.org/ml/binutils/2015-04/msg00229.html gold/ChangeLog 2015-06-10 Han Shen <shenhan@google.com> * aarch64.cc(global enum): New constants representing stub types. (Stub_template): New POD struct. (Stub_template_repertoire): New class. (Stub_base): New class. (Erratum_stub): New class. (Reloc_stub): Refactored to be a subclass of Stub_base. (Reloc_stub::Stub_type): Removed. (Reloc_stub::offset): Moved to Stub_base. (Reloc_stub::set_offset): Moved to Stub_base. (Reloc_stub::destination_address): Moved to Stub_base. (Reloc_stub::set_destination_address): Moved to Stub_base. (Reloc_stub::reset_destination_address): Moved to Stub_base. (Reloc_stub::stub_type): Renamed and moved to Stub_base. (Reloc_stub::stub_size): Renamed and moved to Stub_base. (Reloc_stub::stub_insns): Renamed and moved to Stub_base. (Reloc_stub::write): Moved to Stub_base. (Reloc_stub::invalid_offset): Moved to Stub_base. (Reloc_stub::invalid_address): Moved to Stub_base. (Reloc_stub::stub_type_): Renamed and moved to Stub_base. (Reloc_stub::stub_insns_): Moved to Stub_base. (Reloc_stub::offset_): Moved to Stub_base. (Reloc_stub::destination_address_): Moved to Stub_base. (Stub_table::The_aarch64_relobj): New typedef. (Stub_table::The_erratum_stub): New typedef. (Stub_table::The_erratum_stub_less): New typedef. (Stub_table::The_erratum_stub_set): New typedef. (Stub_table::The_erratum_stub_set_iter): New typedef. (Stub_table::empty): Added emptiness testing for erratum stubs. (Stub_table::add_erratum_stub): New method to add an erratum stub. (Stub_table::find_erratum_stub): New method. (Stub_table::find_erratum_stubs_for_input_section): New method. (Stub_table::erratum_stub_address): New method. (Stub_table::update_date_size_changed_p): Modified to handle erratum stubs. (Stub_table::do_addralign): Modified to handle erratum stubs. (Stub_table::erratum_stubs_): New member. (Stub_table::erratum_stub_size_): New member. (Stub_table::relocate_stubs): Modified to handle erratum stubs. (Stub_table::do_write): Modified to handle erratum stubs. (AArch64_relobj::The_erratum_stub): New typedef. (AArch64_relobj::Erratum_stub_set_iter): New typedef. (AArch64_relobj::fix_errata): New method. (Target_aarch64::The_reloc_stub_type): Removed. (Target_aarch64::The_erratum_stub): New typede. (AArch64_relocate_functions::construct_b): New method. Change-Id: I37ccc9fbefd5559dae700637e119a2a885cf3eb9 (cherry picked from commit a48d0c12f893a922692492829f04189d9f216172)
* Fix an internal error in do_print_to_mapfile on Arm.Cary Coutant2015-07-141-0/+5
| | | | | | | | | | | | | 2015-02-02 Khem Raj <raj.khem@gmail.com> gold/ * attributes.h (class Output_attributes_section_data ): Add do_print_to_mapfile function. BUG=21451238 b.android.com/177690 Change-Id: I56d853784a48c247578d08bca848869b3a4c2c78
* Disable the warning of a hidden symbol matches a reference to beYiran Wang2015-06-162-9/+6
| | | | | | | | | resolved. It looks like it is WAI, but in some scenario there could a lot of them and the build script just die on any warning. Please refer to bug 21502954 for some details. Change-Id: I6cc90adccc63d26f15821bed6e4c6ff336722eff
* Fix darwin buildAndrew Hsieh2015-05-061-3/+12
| | | | | | | | 1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support ended initializer list 2. wcsncasecmp doesn't exist in MacSDK10.6.x Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e
* Rename '--fix-cortex-a53' to '--fix-cortex-a53-843419'.Han Shen2015-04-283-8/+13
| | | | | | | | | | | | | | Keep gold consistent with bfd erratum-fixing option names, so as to ease life in Makefile/scripts. gold/ * options.h (--fix-cortex-a53-843419): Rename option. * aarch64.cc (AArch64_relobj::do_count_local_symbols): Use renamed option. (AArch64_relobj::scan_sections_for_stubs): Use renamed option. Change-Id: I8941fb38ef34fa5eb297e83725d87fdee994fc3a
* The first patch to address cortex-a53 erratum-843419.Han Shen2015-04-283-2/+600
| | | | | | | | | | | | | | | | | | | | | | It implemented scanning the binary and reporting occurrences to users when '--fix-cortex-a53' is turned on. With this, gold users will be able to see if or not there are such erratum occurrences in the output binary. Also included in the CL is reading/recording mapping symbols, which is needed during scan. gold/ChangeLog: * aarch64.cc (AArch64_insn_utilities): New utility class. (AArch64_relobj::Mapping_symbol_position): New struct. (AArch64_relobj::Mapping_symbol_info): New typedef. (AArch64_relobj::do_count_local_symbols): New function overriding parent's implementation. (AArch64_relobj::mapping_symbol_info_): New member (AArch64_relobj::scan_erratum_843419): New method. (Target_aarch64::scan_erratum_843419_span): New method. (Target_aarch64::is_erratum_843419_sequence): New method. * options.h (fix_cortex_a53): New option. Change-Id: I4fe7a2b8858cda358ac28eede42cd5a2f49c2238
* [2.24, 2.25] Convert mov foo@GOT(%reg), %reg to lea foo@GOTOFF(%reg), %regAlexander Ivchenko2015-04-218-33/+235
| | | | | | | | | | | | | | | | | | | | | | 2015-04-01 Ilya Tocar <ilya.tocar@intel.com> PR gold/17640 * i386.cc (Target_i386::can_convert_mov_to_lea): New. (Target_i386::Scan::local): Don't create GOT entry, when we can convert GOT to GOTOFF. (Target_i386::Scan::global): Ditto. (Target_i386::Relocate::relocate): Convert mov foo@GOT(%reg), %reg to lea foo@GOTOFF(%reg), %reg if possible. * testsuite/Makefile.am (i386_mov_to_lea): New test. * testsuite/i386_mov_to_lea1.s: New. * testsuite/i386_mov_to_lea2.s: Ditto. * testsuite/i386_mov_to_lea3.s: Ditto. * testsuite/i386_mov_to_lea4.s: Ditto. * testsuite/i386_mov_to_lea5.s: Ditto. * testsuite/i386_mov_to_lea.sh: Ditto. Change-Id: I7916a1da20873600a910ce358990b1fe2c1f9897 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* Ignore --fix-cortex-a53-843419 for gold.Lai Wei-Chih2015-04-061-0/+3
| | | | Change-Id: I7664f43e31327f2f9bb97b0eaad584f80948d4fe
* Backport to fix race condition calling select_as_default_target()Andrew Hsieh2015-03-301-1/+1
| | | | | | | | | | | 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 buildAndrew Hsieh2015-03-021-1/+1
| | | | | | | | 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-185-12/+7
| | | | | | | | | | | | | | | | | | | | | | | 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
* [2.25] sync to a30720e3e633f275250e26f85ccae5dbdddfb6c6Andrew Hsieh2014-12-09401-2407/+22389
| | | | | | | | | | | | 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
* [2.25] apply local patchesAndrew Hsieh2014-06-131-22/+22
| | | | | | | | | | | | | | 7a17fb955bb42018c3c84e003700ac120c3502d4 b2a417bdb17191ef2afc20bbd308e308c0730403 e0bca373a85fa71b89d9ea42370433b3c0499b9d 57fbbfbda5a77b558c24a44e7eed8c4030c31bcd 160ce55a90bcdcb3000d74805795969edc3f8422 b33d0ddc123435be5e60ebb15a37b3bfb651dc7e f25603579c0a04b3d5099259cf54c5b3c8775b78 1000fadfaa979b623e1fbd0c87858be4f5b6dffd 83cabeb81083ac53719eaaf68c48734ff9c48fa9 Change-Id: I174be6632426ed720e643bca7c48a9077b31d34b
* Add upstream binutils-2.25 snapshot 4/4 2014Andrew Hsieh2014-06-13467-0/+207108
For MIPS -mmsa support Change-Id: I08c4f002fa7b33dec85ed75956e6ab551bb03c96