diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2015-04-10 17:49:15 +0100 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2015-04-10 17:49:15 +0100 |
commit | faedb399d6ec15b10493a7b9e6d7dcbf6aece7e1 (patch) | |
tree | 442315517fad21bb181756d59190b546ca12c0a4 | |
parent | aefda813e3005f4da0b9228702ef3ed4c98fbce7 (diff) | |
parent | cd3813a8c9e59ccba0c42f5e3664465428e0e89c (diff) |
Merge branch 'binutils-2_24-branch' into linaro_binutils-2_24-branchlinaro_binutils-2_24-branch-merge
Conflicts:
gas/config/tc-aarch64.c
ld/testsuite/ld-aarch64/aarch64-elf.exp
-rw-r--r-- | bfd/ChangeLog | 18 | ||||
-rw-r--r-- | bfd/elf32-nios2.c | 1 | ||||
-rw-r--r-- | bfd/elfnn-aarch64.c | 29 | ||||
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/aarch64-elf.exp | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s | 11 |
8 files changed, 80 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fa58423756..3509da7db1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,21 @@ +2015-01-22 Thomas Preud'homme <thomas.preudhomme@arm.com> + + Backport from mainline + 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com> + + * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND + to check if a symbol should be bound symbolically. + +2015-01-20 Chung-Lin Tang <cltang@codesourcery.com> + + Backport from master + * elf32-nios2.c (elf_backend_default_execstack): Define as 0. + +2014-11-24 Tejas Belagod <tejas.belagod@arm.com> + + * elfnn-aarch64.c (elf_aarch64_compare_mapping): New. + (erratum_835769_scan): Sort map list. + 2014-10-24 Tejas Belagod <tejas.belagod@arm.com> * bfd-in.h (bfd_elf64_aarch64_set_options): Add a parameter. diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c index a6c67201a8..20d5e6bb2a 100644 --- a/bfd/elf32-nios2.c +++ b/bfd/elf32-nios2.c @@ -4132,5 +4132,6 @@ const struct bfd_elf_special_section elf32_nios2_special_sections[] = #define TARGET_BIG_NAME "elf32-bignios2" #define elf_backend_got_header_size 12 +#define elf_backend_default_execstack 0 #include "elf32-target.h" diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 8f20bc4322..60bbe38abd 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -2936,6 +2936,29 @@ aarch64_erratum_sequence (uint32_t insn_1, uint32_t insn_2) return FALSE; } +/* Used to order a list of mapping symbols by address. */ + +static int +elf_aarch64_compare_mapping (const void *a, const void *b) +{ + const elf_aarch64_section_map *amap = (const elf_aarch64_section_map *) a; + const elf_aarch64_section_map *bmap = (const elf_aarch64_section_map *) b; + + if (amap->vma > bmap->vma) + return 1; + else if (amap->vma < bmap->vma) + return -1; + else if (amap->type > bmap->type) + /* Ensure results do not depend on the host qsort for objects with + multiple mapping symbols at the same address by sorting on type + after vma. */ + return 1; + else if (amap->type < bmap->type) + return -1; + else + return 0; +} + static bfd_boolean erratum_835769_scan (bfd *input_bfd, struct bfd_link_info *info, @@ -2973,6 +2996,10 @@ erratum_835769_scan (bfd *input_bfd, return TRUE; sec_data = elf_aarch64_section_data (section); + + qsort (sec_data->map, sec_data->mapcount, + sizeof (elf_aarch64_section_map), elf_aarch64_compare_mapping); + for (span = 0; span < sec_data->mapcount; span++) { unsigned int span_start = sec_data->map[span].vma; @@ -4302,7 +4329,7 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto, memset (&outrel, 0, sizeof outrel); else if (h != NULL && h->dynindx != -1 - && (!info->shared || !info->symbolic || !h->def_regular)) + && (!info->shared || !SYMBOLIC_BIND (info, h) || !h->def_regular)) outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type); else { diff --git a/gas/ChangeLog b/gas/ChangeLog index fa74e3d9de..f71edfc769 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2014-11-18 Marcus Shawcroft <marcus.shawcroft@arm.com> + + Apply trunk patch: + * config/tc-aarch64.c (aarch64_cpus): Add CRC feature for + cortex-A53 and cortex-A57. + 2014-07-17 Ilya Tocar <ilya.tocar@intel.com> Backport mainline patches diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 8ec7d5b7f9..6513e53caf 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2015-01-22 Thomas Preud'homme <thomas.preudhomme@arm.com> + + Backport from mainline + 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com> + + * ld-aarch64/aarch64-elf.exp: Added relocs-257-symbolic-func test. + * ld-aarch64/relocs-257-symbolic-func.d: New file. + * ld-aarch64/relocs-257-symbolic-func.s: Likewise. + 2014-10-24 Tejas Belagod <tejas.belagod@arm.com> * ld-aarch64/aarch64-elf.exp (aarch64elftests): Drive erratum diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 75876da28e..74b6ba5d84 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -184,3 +184,5 @@ set aarch64elflinktests { } run_ld_link_tests $aarch64elflinktests + +run_dump_test "relocs-257-symbolic-func" diff --git a/ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d b/ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d new file mode 100644 index 0000000000..810fd43060 --- /dev/null +++ b/ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d @@ -0,0 +1,5 @@ +#source: relocs-257-symbolic-func.s +#ld: -shared -Bsymbolic-functions +#readelf: -r --wide +#... +.* +R_AARCH64_RELATIVE +.* diff --git a/ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s b/ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s new file mode 100644 index 0000000000..35d5ba8022 --- /dev/null +++ b/ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s @@ -0,0 +1,11 @@ + .text + .global tempy + .type tempy, %function +tempy: + .size tempy, .-tempy + .section .data.rel + .align 3 + .type tempy_ptr, %object + .size tempy_ptr, 8 +tempy_ptr: + .xword tempy |