aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2015-04-10 17:49:15 +0100
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2015-04-10 17:49:15 +0100
commitfaedb399d6ec15b10493a7b9e6d7dcbf6aece7e1 (patch)
tree442315517fad21bb181756d59190b546ca12c0a4
parentaefda813e3005f4da0b9228702ef3ed4c98fbce7 (diff)
parentcd3813a8c9e59ccba0c42f5e3664465428e0e89c (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/ChangeLog18
-rw-r--r--bfd/elf32-nios2.c1
-rw-r--r--bfd/elfnn-aarch64.c29
-rw-r--r--gas/ChangeLog6
-rw-r--r--ld/testsuite/ChangeLog9
-rw-r--r--ld/testsuite/ld-aarch64/aarch64-elf.exp2
-rw-r--r--ld/testsuite/ld-aarch64/relocs-257-symbolic-func.d5
-rw-r--r--ld/testsuite/ld-aarch64/relocs-257-symbolic-func.s11
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