binutils: Upgrade 2.23.1 -> 2.23.2
(From OE-Core rev: 202f46b139ab20079e97cdeb147d59e23bcdfe01) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4bf8253af7
commit
edcae40bf6
|
@ -1,58 +0,0 @@
|
||||||
From 7dbb7d8db8003ff73d80956bd3271f9588437aa7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tristan Gingold <gingold@adacore.com>
|
|
||||||
Date: Tue, 13 Nov 2012 15:22:45 +0000
|
|
||||||
Subject: [PATCH 01/27] bfd/ 2012-11-13 Tristan Gingold
|
|
||||||
<gingold@adacore.com>
|
|
||||||
|
|
||||||
* Makefile.am (RELEASE): Unset.
|
|
||||||
* Makefile.in: Regenerate.
|
|
||||||
---
|
|
||||||
bfd/ChangeLog | 5 +++++
|
|
||||||
bfd/Makefile.am | 2 +-
|
|
||||||
bfd/Makefile.in | 2 +-
|
|
||||||
3 files changed, 7 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
|
|
||||||
index bed5dca..7aa83bf 100644
|
|
||||||
--- a/bfd/ChangeLog
|
|
||||||
+++ b/bfd/ChangeLog
|
|
||||||
@@ -1,5 +1,10 @@
|
|
||||||
2012-11-13 Tristan Gingold <gingold@adacore.com>
|
|
||||||
|
|
||||||
+ * Makefile.am (RELEASE): Unset.
|
|
||||||
+ * Makefile.in: Regenerate.
|
|
||||||
+
|
|
||||||
+2012-11-13 Tristan Gingold <gingold@adacore.com>
|
|
||||||
+
|
|
||||||
* configure.in: Bump version to 2.23.1
|
|
||||||
* Makefile.am (RELEASE): Set.
|
|
||||||
* configure, Makefile.in: Regenerate.
|
|
||||||
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
|
|
||||||
index 9ab2aa9..49f9662 100644
|
|
||||||
--- a/bfd/Makefile.am
|
|
||||||
+++ b/bfd/Makefile.am
|
|
||||||
@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = 1.11 no-dist foreign
|
|
||||||
ACLOCAL_AMFLAGS = -I . -I .. -I ../config
|
|
||||||
|
|
||||||
# Uncomment the following line when doing a release.
|
|
||||||
-RELEASE=y
|
|
||||||
+# RELEASE=y
|
|
||||||
|
|
||||||
INCDIR = $(srcdir)/../include
|
|
||||||
CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
|
|
||||||
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
|
|
||||||
index 9990275..5718fab 100644
|
|
||||||
--- a/bfd/Makefile.in
|
|
||||||
+++ b/bfd/Makefile.in
|
|
||||||
@@ -320,7 +320,7 @@ AUTOMAKE_OPTIONS = 1.11 no-dist foreign
|
|
||||||
ACLOCAL_AMFLAGS = -I . -I .. -I ../config
|
|
||||||
|
|
||||||
# Uncomment the following line when doing a release.
|
|
||||||
-RELEASE = y
|
|
||||||
+# RELEASE=y
|
|
||||||
INCDIR = $(srcdir)/../include
|
|
||||||
CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
|
|
||||||
SUBDIRS = doc po
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,187 +0,0 @@
|
||||||
From 80b672d804357f2a1be04ac4e5a4d4c7d0d3b348 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
||||||
Date: Wed, 14 Nov 2012 15:54:04 +0000
|
|
||||||
Subject: [PATCH 03/27] Assemble all sources files in each test
|
|
||||||
|
|
||||||
* ld-elf/shared.exp (build_cxx_tests): Move out the commented out
|
|
||||||
test.
|
|
||||||
|
|
||||||
* lib/ld-lib.exp (run_ld_link_exec_tests): Assemble all sources
|
|
||||||
files in each test.
|
|
||||||
---
|
|
||||||
ld/testsuite/ChangeLog | 8 ++++
|
|
||||||
ld/testsuite/ld-elf/shared.exp | 8 ++--
|
|
||||||
ld/testsuite/lib/ld-lib.exp | 97 ++++++++++++++++++++--------------------
|
|
||||||
3 files changed, 60 insertions(+), 53 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
|
|
||||||
index ffcfa7e..e02432f 100644
|
|
||||||
--- a/ld/testsuite/ChangeLog
|
|
||||||
+++ b/ld/testsuite/ChangeLog
|
|
||||||
@@ -1,3 +1,11 @@
|
|
||||||
+2012-11-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
||||||
+
|
|
||||||
+ * ld-elf/shared.exp (build_cxx_tests): Move out the commented out
|
|
||||||
+ test.
|
|
||||||
+
|
|
||||||
+ * lib/ld-lib.exp (run_ld_link_exec_tests): Assemble all sources
|
|
||||||
+ files in each test.
|
|
||||||
+
|
|
||||||
2012-10-16 Sofiane Naci <sofiane.naci@arm.com>
|
|
||||||
|
|
||||||
* ld-aarch64/tlsle-symbol-offset.s: New file.
|
|
||||||
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
|
|
||||||
index c00f3e5..c9f2056 100644
|
|
||||||
--- a/ld/testsuite/ld-elf/shared.exp
|
|
||||||
+++ b/ld/testsuite/ld-elf/shared.exp
|
|
||||||
@@ -336,14 +336,14 @@ set build_cxx_tests {
|
|
||||||
{del.cc new.cc} {} "libnew1b.so" "c++"}
|
|
||||||
}
|
|
||||||
|
|
||||||
-set run_cxx_tests {
|
|
||||||
- {"Run with libdl3a.so"
|
|
||||||
- "-Wl,--no-as-needed tmpdir/libdl3a.so" ""
|
|
||||||
- {dl3main.cc} "dl3a" "dl3a.out" "" "c++"}
|
|
||||||
# "-shared -Bsymbolic" only works with gcc 4.5.0 and newer.
|
|
||||||
# {"Run with libdl3b.so"
|
|
||||||
# "tmpdir/libdl3b.so" ""
|
|
||||||
# {dl3main.cc} "dl3b" "dl3b.out" "" "c++"}
|
|
||||||
+set run_cxx_tests {
|
|
||||||
+ {"Run with libdl3a.so"
|
|
||||||
+ "-Wl,--no-as-needed tmpdir/libdl3a.so" ""
|
|
||||||
+ {dl3main.cc} "dl3a" "dl3a.out" "" "c++"}
|
|
||||||
{"Run with libdl3c.so"
|
|
||||||
"-Wl,--no-as-needed tmpdir/libdl3c.so" ""
|
|
||||||
{dl3main.cc} "dl3c" "dl3a.out" "" "c++"}
|
|
||||||
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
|
|
||||||
index bb4cb0d..49837dd 100644
|
|
||||||
--- a/ld/testsuite/lib/ld-lib.exp
|
|
||||||
+++ b/ld/testsuite/lib/ld-lib.exp
|
|
||||||
@@ -1244,7 +1244,6 @@ proc run_ld_link_exec_tests { targets_to_xfail ldtests } {
|
|
||||||
# verbose -log "ld_options is $ld_options"
|
|
||||||
# verbose -log "as_options is $as_options"
|
|
||||||
# verbose -log "src_files is $src_files"
|
|
||||||
-# verbose -log "actions is $actions"
|
|
||||||
# verbose -log "binfile is $binfile"
|
|
||||||
|
|
||||||
# Assemble each file in the test.
|
|
||||||
@@ -1261,68 +1260,68 @@ proc run_ld_link_exec_tests { targets_to_xfail ldtests } {
|
|
||||||
} else {
|
|
||||||
ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/$src_file $objfile
|
|
||||||
}
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- # We have to use $CC to build PIE and shared library.
|
|
||||||
- if { [ string match "c" $lang ] } {
|
|
||||||
- set link_proc ld_simple_link
|
|
||||||
- set link_cmd $CC
|
|
||||||
- } elseif { [ string match "c++" $lang ] } {
|
|
||||||
- set link_proc ld_simple_link
|
|
||||||
- set link_cmd $CXX
|
|
||||||
- } elseif { [ string match "-shared" $ld_options ] \
|
|
||||||
- || [ string match "-pie" $ld_options ] } {
|
|
||||||
- set link_proc ld_simple_link
|
|
||||||
- set link_cmd $CC
|
|
||||||
- } else {
|
|
||||||
- set link_proc ld_link
|
|
||||||
- set link_cmd $ld
|
|
||||||
- }
|
|
||||||
+ # We have to use $CC to build PIE and shared library.
|
|
||||||
+ if { [ string match "c" $lang ] } {
|
|
||||||
+ set link_proc ld_simple_link
|
|
||||||
+ set link_cmd $CC
|
|
||||||
+ } elseif { [ string match "c++" $lang ] } {
|
|
||||||
+ set link_proc ld_simple_link
|
|
||||||
+ set link_cmd $CXX
|
|
||||||
+ } elseif { [ string match "-shared" $ld_options ] \
|
|
||||||
+ || [ string match "-pie" $ld_options ] } {
|
|
||||||
+ set link_proc ld_simple_link
|
|
||||||
+ set link_cmd $CC
|
|
||||||
+ } else {
|
|
||||||
+ set link_proc ld_link
|
|
||||||
+ set link_cmd $ld
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if ![$link_proc $link_cmd $binfile "-L$srcdir/$subdir $ld_options $objfiles"] {
|
|
||||||
- set failed 1
|
|
||||||
- } else {
|
|
||||||
+ if ![$link_proc $link_cmd $binfile "-L$srcdir/$subdir $ld_options $objfiles"] {
|
|
||||||
+ set failed 1
|
|
||||||
+ } else {
|
|
||||||
+ set failed 0
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ # Check if exec_output is expected.
|
|
||||||
+ if { $warning != "" } then {
|
|
||||||
+ verbose -log "returned with: <$exec_output>, expected: <$warning>"
|
|
||||||
+ if { [regexp $warning $exec_output] } then {
|
|
||||||
set failed 0
|
|
||||||
+ } else {
|
|
||||||
+ set failed 1
|
|
||||||
}
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- # Check if exec_output is expected.
|
|
||||||
- if { $warning != "" } then {
|
|
||||||
- verbose -log "returned with: <$exec_output>, expected: <$warning>"
|
|
||||||
- if { [regexp $warning $exec_output] } then {
|
|
||||||
- set failed 0
|
|
||||||
- } else {
|
|
||||||
- set failed 1
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
+ if { $failed == 0 } {
|
|
||||||
+ send_log "Running: $binfile > $binfile.out\n"
|
|
||||||
+ verbose "Running: $binfile > $binfile.out"
|
|
||||||
+ catch "exec $binfile > $binfile.out" exec_output
|
|
||||||
|
|
||||||
- if { $failed == 0 } {
|
|
||||||
- send_log "Running: $binfile > $binfile.out\n"
|
|
||||||
- verbose "Running: $binfile > $binfile.out"
|
|
||||||
- catch "exec $binfile > $binfile.out" exec_output
|
|
||||||
+ if ![string match "" $exec_output] then {
|
|
||||||
+ send_log "$exec_output\n"
|
|
||||||
+ verbose "$exec_output" 1
|
|
||||||
+ set failed 1
|
|
||||||
+ } else {
|
|
||||||
+ send_log "diff $binfile.out $srcdir/$subdir/$expfile\n"
|
|
||||||
+ verbose "diff $binfile.out $srcdir/$subdir/$expfile"
|
|
||||||
+ catch "exec diff $binfile.out $srcdir/$subdir/$expfile" exec_output
|
|
||||||
+ set exec_output [prune_warnings $exec_output]
|
|
||||||
|
|
||||||
if ![string match "" $exec_output] then {
|
|
||||||
send_log "$exec_output\n"
|
|
||||||
verbose "$exec_output" 1
|
|
||||||
set failed 1
|
|
||||||
- } else {
|
|
||||||
- send_log "diff $binfile.out $srcdir/$subdir/$expfile\n"
|
|
||||||
- verbose "diff $binfile.out $srcdir/$subdir/$expfile"
|
|
||||||
- catch "exec diff $binfile.out $srcdir/$subdir/$expfile" exec_output
|
|
||||||
- set exec_output [prune_warnings $exec_output]
|
|
||||||
-
|
|
||||||
- if ![string match "" $exec_output] then {
|
|
||||||
- send_log "$exec_output\n"
|
|
||||||
- verbose "$exec_output" 1
|
|
||||||
- set failed 1
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if { $failed != 0 } {
|
|
||||||
- fail $testname
|
|
||||||
- } else {
|
|
||||||
- set errcnt 0
|
|
||||||
- pass $testname
|
|
||||||
- }
|
|
||||||
+ if { $failed != 0 } {
|
|
||||||
+ fail $testname
|
|
||||||
+ } else {
|
|
||||||
+ set errcnt 0
|
|
||||||
+ pass $testname
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,103 +0,0 @@
|
||||||
From e4b6d90dbcbf56c959eca8dcdf846fbe21c822e3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland McGrath <roland@gnu.org>
|
|
||||||
Date: Thu, 15 Nov 2012 00:33:27 +0000
|
|
||||||
Subject: [PATCH 05/27] bfd/ * elf32-arm.c (elf32_arm_nacl_plt0_entry): Use
|
|
||||||
bic rather than bfc instruction for data
|
|
||||||
sandboxing.
|
|
||||||
|
|
||||||
gold/
|
|
||||||
* arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather
|
|
||||||
than bfc instruction for data sandboxing.
|
|
||||||
---
|
|
||||||
bfd/ChangeLog | 5 +++++
|
|
||||||
bfd/elf32-arm.c | 18 +++++++++---------
|
|
||||||
gold/ChangeLog | 5 +++++
|
|
||||||
gold/arm.cc | 4 ++--
|
|
||||||
4 files changed, 21 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
|
|
||||||
index 7aa83bf..981e05a 100644
|
|
||||||
--- a/bfd/ChangeLog
|
|
||||||
+++ b/bfd/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2012-11-14 Roland McGrath <mcgrathr@google.com>
|
|
||||||
+
|
|
||||||
+ * elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc
|
|
||||||
+ instruction for data sandboxing.
|
|
||||||
+
|
|
||||||
2012-11-13 Tristan Gingold <gingold@adacore.com>
|
|
||||||
|
|
||||||
* Makefile.am (RELEASE): Unset.
|
|
||||||
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
|
|
||||||
index a287fbb..3c541ca 100644
|
|
||||||
--- a/bfd/elf32-arm.c
|
|
||||||
+++ b/bfd/elf32-arm.c
|
|
||||||
@@ -2209,21 +2209,21 @@ static const bfd_vma elf32_arm_nacl_plt0_entry [] =
|
|
||||||
0xe08cc00f, /* add ip, ip, pc */
|
|
||||||
0xe52dc008, /* str ip, [sp, #-8]! */
|
|
||||||
/* Second bundle: */
|
|
||||||
- 0xe7dfcf1f, /* bfc ip, #30, #2 */
|
|
||||||
- 0xe59cc000, /* ldr ip, [ip] */
|
|
||||||
+ 0xe3ccc103, /* bic ip, ip, #0xc0000000 */
|
|
||||||
+ 0xe59cc000, /* ldr ip, [ip] */
|
|
||||||
0xe3ccc13f, /* bic ip, ip, #0xc000000f */
|
|
||||||
- 0xe12fff1c, /* bx ip */
|
|
||||||
+ 0xe12fff1c, /* bx ip */
|
|
||||||
/* Third bundle: */
|
|
||||||
- 0xe320f000, /* nop */
|
|
||||||
- 0xe320f000, /* nop */
|
|
||||||
- 0xe320f000, /* nop */
|
|
||||||
+ 0xe320f000, /* nop */
|
|
||||||
+ 0xe320f000, /* nop */
|
|
||||||
+ 0xe320f000, /* nop */
|
|
||||||
/* .Lplt_tail: */
|
|
||||||
0xe50dc004, /* str ip, [sp, #-4] */
|
|
||||||
/* Fourth bundle: */
|
|
||||||
- 0xe7dfcf1f, /* bfc ip, #30, #2 */
|
|
||||||
- 0xe59cc000, /* ldr ip, [ip] */
|
|
||||||
+ 0xe3ccc103, /* bic ip, ip, #0xc0000000 */
|
|
||||||
+ 0xe59cc000, /* ldr ip, [ip] */
|
|
||||||
0xe3ccc13f, /* bic ip, ip, #0xc000000f */
|
|
||||||
- 0xe12fff1c, /* bx ip */
|
|
||||||
+ 0xe12fff1c, /* bx ip */
|
|
||||||
};
|
|
||||||
#define ARM_NACL_PLT_TAIL_OFFSET (11 * 4)
|
|
||||||
|
|
||||||
diff --git a/gold/ChangeLog b/gold/ChangeLog
|
|
||||||
index 0d3074a..9a1a9d3 100644
|
|
||||||
--- a/gold/ChangeLog
|
|
||||||
+++ b/gold/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2012-11-14 Roland McGrath <mcgrathr@google.com>
|
|
||||||
+
|
|
||||||
+ * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather
|
|
||||||
+ than bfc instruction for data sandboxing.
|
|
||||||
+
|
|
||||||
2012-11-07 Roland McGrath <mcgrathr@google.com>
|
|
||||||
|
|
||||||
* i386.cc (Target_i386::relocate_for_relocatable): Remove extraneous
|
|
||||||
diff --git a/gold/arm.cc b/gold/arm.cc
|
|
||||||
index d434c9d..238cf32 100644
|
|
||||||
--- a/gold/arm.cc
|
|
||||||
+++ b/gold/arm.cc
|
|
||||||
@@ -12196,7 +12196,7 @@ const uint32_t Output_data_plt_arm_nacl<big_endian>::first_plt_entry[16] =
|
|
||||||
0xe08cc00f, // add ip, ip, pc
|
|
||||||
0xe52dc008, // str ip, [sp, #-8]!
|
|
||||||
// Second bundle:
|
|
||||||
- 0xe7dfcf1f, // bfc ip, #30, #2
|
|
||||||
+ 0xe3ccc103, // bic ip, ip, #0xc0000000
|
|
||||||
0xe59cc000, // ldr ip, [ip]
|
|
||||||
0xe3ccc13f, // bic ip, ip, #0xc000000f
|
|
||||||
0xe12fff1c, // bx ip
|
|
||||||
@@ -12207,7 +12207,7 @@ const uint32_t Output_data_plt_arm_nacl<big_endian>::first_plt_entry[16] =
|
|
||||||
// .Lplt_tail:
|
|
||||||
0xe50dc004, // str ip, [sp, #-4]
|
|
||||||
// Fourth bundle:
|
|
||||||
- 0xe7dfcf1f, // bfc ip, #30, #2
|
|
||||||
+ 0xe3ccc103, // bic ip, ip, #0xc0000000
|
|
||||||
0xe59cc000, // ldr ip, [ip]
|
|
||||||
0xe3ccc13f, // bic ip, ip, #0xc000000f
|
|
||||||
0xe12fff1c, // bx ip
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,95 +0,0 @@
|
||||||
From c49a2d2d8ff625b17699c44a703f217de5b4fa2f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Yufeng Zhang <yufeng.zhang@arm.com>
|
|
||||||
Date: Mon, 19 Nov 2012 18:46:01 +0000
|
|
||||||
Subject: [PATCH 10/27] bfd/ChangeLog
|
|
||||||
|
|
||||||
2012-11-19 Joey Ye <joey.ye@arm.com>
|
|
||||||
|
|
||||||
* elf32-arm.c (elf32_arm_final_link_relocate,
|
|
||||||
case R_ARM_THM_ALU_PREL_11_0, case R_ARM_THM_PC12): Align address of
|
|
||||||
the place being relocated.
|
|
||||||
(elf32_arm_final_link_relocate, case R_ARM_THM_PC8): Align address
|
|
||||||
of the place being relocated and truncate addend.
|
|
||||||
(Pa): New macro.
|
|
||||||
---
|
|
||||||
bfd/ChangeLog | 9 +++++++++
|
|
||||||
bfd/elf32-arm.c | 23 +++++++++++++----------
|
|
||||||
2 files changed, 22 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
|
|
||||||
index 981e05a..59c36a7 100644
|
|
||||||
--- a/bfd/ChangeLog
|
|
||||||
+++ b/bfd/ChangeLog
|
|
||||||
@@ -1,3 +1,12 @@
|
|
||||||
+2012-11-19 Joey Ye <joey.ye@arm.com>
|
|
||||||
+
|
|
||||||
+ * elf32-arm.c (elf32_arm_final_link_relocate,
|
|
||||||
+ case R_ARM_THM_ALU_PREL_11_0, case R_ARM_THM_PC12): Align address of
|
|
||||||
+ the place being relocated.
|
|
||||||
+ (elf32_arm_final_link_relocate, case R_ARM_THM_PC8): Align address
|
|
||||||
+ of the place being relocated and truncate addend.
|
|
||||||
+ (Pa): New macro.
|
|
||||||
+
|
|
||||||
2012-11-14 Roland McGrath <mcgrathr@google.com>
|
|
||||||
|
|
||||||
* elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc
|
|
||||||
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
|
|
||||||
index 3c541ca..01ca11b 100644
|
|
||||||
--- a/bfd/elf32-arm.c
|
|
||||||
+++ b/bfd/elf32-arm.c
|
|
||||||
@@ -63,6 +63,9 @@
|
|
||||||
#define ARM_ELF_ABI_VERSION 0
|
|
||||||
#define ARM_ELF_OS_ABI_VERSION ELFOSABI_ARM
|
|
||||||
|
|
||||||
+/* The Adjusted Place, as defined by AAELF. */
|
|
||||||
+#define Pa(X) ((X) & 0xfffffffc)
|
|
||||||
+
|
|
||||||
static bfd_boolean elf32_arm_write_section (bfd *output_bfd,
|
|
||||||
struct bfd_link_info *link_info,
|
|
||||||
asection *sec,
|
|
||||||
@@ -8619,9 +8622,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|
||||||
}
|
|
||||||
|
|
||||||
relocation = value + signed_addend;
|
|
||||||
- relocation -= (input_section->output_section->vma
|
|
||||||
- + input_section->output_offset
|
|
||||||
- + rel->r_offset);
|
|
||||||
+ relocation -= Pa (input_section->output_section->vma
|
|
||||||
+ + input_section->output_offset
|
|
||||||
+ + rel->r_offset);
|
|
||||||
|
|
||||||
value = abs (relocation);
|
|
||||||
|
|
||||||
@@ -8651,12 +8654,12 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|
||||||
insn = bfd_get_16 (input_bfd, hit_data);
|
|
||||||
|
|
||||||
if (globals->use_rel)
|
|
||||||
- addend = (insn & 0x00ff) << 2;
|
|
||||||
+ addend = ((((insn & 0x00ff) << 2) + 4) & 0x3ff) -4;
|
|
||||||
|
|
||||||
relocation = value + addend;
|
|
||||||
- relocation -= (input_section->output_section->vma
|
|
||||||
- + input_section->output_offset
|
|
||||||
- + rel->r_offset);
|
|
||||||
+ relocation -= Pa (input_section->output_section->vma
|
|
||||||
+ + input_section->output_offset
|
|
||||||
+ + rel->r_offset);
|
|
||||||
|
|
||||||
value = abs (relocation);
|
|
||||||
|
|
||||||
@@ -8691,9 +8694,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|
||||||
}
|
|
||||||
|
|
||||||
relocation = value + signed_addend;
|
|
||||||
- relocation -= (input_section->output_section->vma
|
|
||||||
- + input_section->output_offset
|
|
||||||
- + rel->r_offset);
|
|
||||||
+ relocation -= Pa (input_section->output_section->vma
|
|
||||||
+ + input_section->output_offset
|
|
||||||
+ + rel->r_offset);
|
|
||||||
|
|
||||||
value = abs (relocation);
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
From 0c6a475b99dc06a49549d81059f290b23b86c62d Mon Sep 17 00:00:00 2001
|
|
||||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
||||||
Date: Tue, 20 Nov 2012 05:57:53 +0000
|
|
||||||
Subject: [PATCH 12/27] Fix TLS LD to LE optimization for x32
|
|
||||||
|
|
||||||
PR gold/14858
|
|
||||||
* x86_64.cc (Relocate::tls_ld_to_le): Support x32.
|
|
||||||
---
|
|
||||||
gold/ChangeLog | 5 +++++
|
|
||||||
gold/x86_64.cc | 9 ++++++++-
|
|
||||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gold/ChangeLog b/gold/ChangeLog
|
|
||||||
index 9a1a9d3..b31d11f 100644
|
|
||||||
--- a/gold/ChangeLog
|
|
||||||
+++ b/gold/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2012-11-19 H.J. Lu <hongjiu.lu@intel.com>
|
|
||||||
+
|
|
||||||
+ PR gold/14858
|
|
||||||
+ * x86_64.cc (Relocate::tls_ld_to_le): Support x32.
|
|
||||||
+
|
|
||||||
2012-11-14 Roland McGrath <mcgrathr@google.com>
|
|
||||||
|
|
||||||
* arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather
|
|
||||||
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
|
|
||||||
index b5b616f..8ddf4f2 100644
|
|
||||||
--- a/gold/x86_64.cc
|
|
||||||
+++ b/gold/x86_64.cc
|
|
||||||
@@ -3959,8 +3959,12 @@ Target_x86_64<size>::Relocate::tls_ld_to_le(
|
|
||||||
section_size_type view_size)
|
|
||||||
{
|
|
||||||
// leaq foo@tlsld(%rip),%rdi; call __tls_get_addr@plt;
|
|
||||||
+ // For SIZE == 64:
|
|
||||||
// ... leq foo@dtpoff(%rax),%reg
|
|
||||||
// ==> .word 0x6666; .byte 0x66; movq %fs:0,%rax ... leaq x@tpoff(%rax),%rdx
|
|
||||||
+ // For SIZE == 32:
|
|
||||||
+ // ... leq foo@dtpoff(%rax),%reg
|
|
||||||
+ // ==> nopl 0x0(%rax); movl %fs:0,%eax ... leaq x@tpoff(%rax),%rdx
|
|
||||||
|
|
||||||
tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, -3);
|
|
||||||
tls::check_range(relinfo, relnum, rela.get_r_offset(), view_size, 9);
|
|
||||||
@@ -3970,7 +3974,10 @@ Target_x86_64<size>::Relocate::tls_ld_to_le(
|
|
||||||
|
|
||||||
tls::check_tls(relinfo, relnum, rela.get_r_offset(), view[4] == 0xe8);
|
|
||||||
|
|
||||||
- memcpy(view - 3, "\x66\x66\x66\x64\x48\x8b\x04\x25\0\0\0\0", 12);
|
|
||||||
+ if (size == 64)
|
|
||||||
+ memcpy(view - 3, "\x66\x66\x66\x64\x48\x8b\x04\x25\0\0\0\0", 12);
|
|
||||||
+ else
|
|
||||||
+ memcpy(view - 3, "\x0f\x1f\x40\x00\x64\x8b\x04\x25\0\0\0\0", 12);
|
|
||||||
|
|
||||||
// The next reloc should be a PLT32 reloc against __tls_get_addr.
|
|
||||||
// We can skip it.
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
From d4d8d22c6d0a859f617cf7d0a2e31056893c1d98 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Yufeng Zhang <yufeng.zhang@arm.com>
|
|
||||||
Date: Tue, 20 Nov 2012 10:41:54 +0000
|
|
||||||
Subject: [PATCH 13/27] gas/ChangeLog
|
|
||||||
|
|
||||||
2012-11-20 Yufeng Zhang <yufeng.zhang@arm.com>
|
|
||||||
|
|
||||||
* config/tc-aarch64.c (first_error_fmt): Add ATTRIBUTE_UNUSED to the
|
|
||||||
local variable "ret".
|
|
||||||
---
|
|
||||||
gas/ChangeLog | 5 +++++
|
|
||||||
gas/config/tc-aarch64.c | 2 +-
|
|
||||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gas/ChangeLog b/gas/ChangeLog
|
|
||||||
index 219c27e..bb9ef1c 100644
|
|
||||||
--- a/gas/ChangeLog
|
|
||||||
+++ b/gas/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2012-11-20 Yufeng Zhang <yufeng.zhang@arm.com>
|
|
||||||
+
|
|
||||||
+ * config/tc-aarch64.c (first_error_fmt): Add ATTRIBUTE_UNUSED to the
|
|
||||||
+ local variable "ret".
|
|
||||||
+
|
|
||||||
2012-11-07 James Murray <jsm@jsm-net.demon.co.uk>
|
|
||||||
|
|
||||||
* config/tc-m68hc11.c: Fix R_M68HC12_16B relocation for movb/w
|
|
||||||
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
|
|
||||||
index 843923b..a83a62e 100644
|
|
||||||
--- a/gas/config/tc-aarch64.c
|
|
||||||
+++ b/gas/config/tc-aarch64.c
|
|
||||||
@@ -643,7 +643,7 @@ first_error_fmt (const char *format, ...)
|
|
||||||
|
|
||||||
if (! error_p ())
|
|
||||||
{
|
|
||||||
- int ret;
|
|
||||||
+ int ret ATTRIBUTE_UNUSED;
|
|
||||||
va_start (args, format);
|
|
||||||
ret = vsnprintf (buffer, size, format, args);
|
|
||||||
know (ret <= size - 1 && ret >= 0);
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,112 +0,0 @@
|
||||||
From adef1e82d241e22139c5edbba1efe9734cfdcace Mon Sep 17 00:00:00 2001
|
|
||||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
||||||
Date: Tue, 20 Nov 2012 14:30:48 +0000
|
|
||||||
Subject: [PATCH 14/27] Fix opcode for 64-bit jecxz
|
|
||||||
|
|
||||||
gas/testsuite/
|
|
||||||
|
|
||||||
PR gas/14859
|
|
||||||
* gas/i386/x86-64-opcode.s: Add jecxz.
|
|
||||||
* gas/i386/x86-64-opcode.d: Updated.
|
|
||||||
|
|
||||||
opcodes/
|
|
||||||
|
|
||||||
PR gas/14859
|
|
||||||
* i386-opc.tbl: Fix opcode for 64-bit jecxz.
|
|
||||||
* i386-tbl.h: Regenerated.
|
|
||||||
---
|
|
||||||
gas/ChangeLog | 6 ++++++
|
|
||||||
gas/testsuite/gas/i386/x86-64-opcode.d | 1 +
|
|
||||||
gas/testsuite/gas/i386/x86-64-opcode.s | 2 ++
|
|
||||||
opcodes/ChangeLog | 9 ++++++++-
|
|
||||||
opcodes/i386-opc.tbl | 2 +-
|
|
||||||
opcodes/i386-tbl.h | 2 +-
|
|
||||||
6 files changed, 19 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gas/ChangeLog b/gas/ChangeLog
|
|
||||||
index bb9ef1c..8a950ec 100644
|
|
||||||
--- a/gas/ChangeLog
|
|
||||||
+++ b/gas/ChangeLog
|
|
||||||
@@ -1,3 +1,9 @@
|
|
||||||
+2012-11-20 H.J. Lu <hongjiu.lu@intel.com>
|
|
||||||
+
|
|
||||||
+ PR gas/14859
|
|
||||||
+ * gas/i386/x86-64-opcode.s: Add jecxz.
|
|
||||||
+ * gas/i386/x86-64-opcode.d: Updated.
|
|
||||||
+
|
|
||||||
2012-11-20 Yufeng Zhang <yufeng.zhang@arm.com>
|
|
||||||
|
|
||||||
* config/tc-aarch64.c (first_error_fmt): Add ATTRIBUTE_UNUSED to the
|
|
||||||
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d
|
|
||||||
index 7c6dd03..4b3003a 100644
|
|
||||||
--- a/gas/testsuite/gas/i386/x86-64-opcode.d
|
|
||||||
+++ b/gas/testsuite/gas/i386/x86-64-opcode.d
|
|
||||||
@@ -296,4 +296,5 @@ Disassembly of section .text:
|
|
||||||
[ ]*[a-f0-9]+: 0f 07 sysret
|
|
||||||
[ ]*[a-f0-9]+: 0f 01 f8 swapgs
|
|
||||||
[ ]*[a-f0-9]+: 66 68 22 22 pushw \$0x2222
|
|
||||||
+[ ]*[a-f0-9]+: 67 e3 ff jecxz 0x49d
|
|
||||||
#pass
|
|
||||||
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s
|
|
||||||
index cb9bbc1..96f624d 100644
|
|
||||||
--- a/gas/testsuite/gas/i386/x86-64-opcode.s
|
|
||||||
+++ b/gas/testsuite/gas/i386/x86-64-opcode.s
|
|
||||||
@@ -424,3 +424,5 @@
|
|
||||||
swapgs # -- -- -- -- 0F 01 f8
|
|
||||||
|
|
||||||
pushw $0x2222
|
|
||||||
+
|
|
||||||
+ jecxz .+2
|
|
||||||
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
|
|
||||||
index ca0f49b..98450f9 100644
|
|
||||||
--- a/opcodes/ChangeLog
|
|
||||||
+++ b/opcodes/ChangeLog
|
|
||||||
@@ -1,3 +1,10 @@
|
|
||||||
+2012-11-20 Kirill Yukhin <kirill.yukhin@intel.com>
|
|
||||||
+ H.J. Lu <hongjiu.lu@intel.com>
|
|
||||||
+
|
|
||||||
+ PR gas/14859
|
|
||||||
+ * i386-opc.tbl: Fix opcode for 64-bit jecxz.
|
|
||||||
+ * i386-tbl.h: Regenerated.
|
|
||||||
+
|
|
||||||
2012-10-09 Nagajyothi Eggone <nagajyothi.eggone@amd.com>
|
|
||||||
|
|
||||||
* i386-gen.c (cpu_flag_init): Add CPU_BDVER3_FLAGS.
|
|
||||||
@@ -9,7 +16,7 @@
|
|
||||||
|
|
||||||
2012-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
||||||
|
|
||||||
- * arm-dis.c: Changed ldra and strl-form mnemonics
|
|
||||||
+ * arm-dis.c: Changed ldra and strl-form mnemonics
|
|
||||||
to lda and stl-form.
|
|
||||||
|
|
||||||
2012-09-18 Chao-ying Fu <fu@mips.com>
|
|
||||||
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
|
|
||||||
index 8b08edc..482bd7b 100644
|
|
||||||
--- a/opcodes/i386-opc.tbl
|
|
||||||
+++ b/opcodes/i386-opc.tbl
|
|
||||||
@@ -390,7 +390,7 @@ jg, 1, 0x7f, None, 1, 0, Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf,
|
|
||||||
// jcxz vs. jecxz is chosen on the basis of the address size prefix.
|
|
||||||
jcxz, 1, 0xe3, None, 1, CpuNo64, JumpByte|Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp16|Disp32 }
|
|
||||||
jecxz, 1, 0xe3, None, 1, CpuNo64, JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp16|Disp32 }
|
|
||||||
-jecxz, 1, 0x67e3, None, 2, Cpu64, JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp32|Disp32S }
|
|
||||||
+jecxz, 1, 0xe3, None, 1, Cpu64, JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp32|Disp32S }
|
|
||||||
jrcxz, 1, 0xe3, None, 1, Cpu64, JumpByte|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Disp8|Disp32|Disp32S }
|
|
||||||
|
|
||||||
// The loop instructions also use the address size prefix to select
|
|
||||||
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
|
|
||||||
index 001a966..a3a3e64 100644
|
|
||||||
--- a/opcodes/i386-tbl.h
|
|
||||||
+++ b/opcodes/i386-tbl.h
|
|
||||||
@@ -3417,7 +3417,7 @@ const insn_template i386_optab[] =
|
|
||||||
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0 } } } },
|
|
||||||
- { "jecxz", 1, 0x67e3, None, 2,
|
|
||||||
+ { "jecxz", 1, 0xe3, None, 1,
|
|
||||||
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
From b15bb9c9dc6875a2fe08feba6f31cce6a9468cf7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland McGrath <roland@gnu.org>
|
|
||||||
Date: Wed, 21 Nov 2012 19:32:32 +0000
|
|
||||||
Subject: [PATCH 17/27] * ld-elf/comm-data.exp: Add XFAIL for arm*-*-*
|
|
||||||
targets, referring to PR ld/13802.
|
|
||||||
|
|
||||||
---
|
|
||||||
ld/testsuite/ChangeLog | 5 +++++
|
|
||||||
ld/testsuite/ld-elf/comm-data.exp | 2 ++
|
|
||||||
2 files changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
|
|
||||||
index e02432f..aada077 100644
|
|
||||||
--- a/ld/testsuite/ChangeLog
|
|
||||||
+++ b/ld/testsuite/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2012-11-21 Roland McGrath <mcgrathr@google.com>
|
|
||||||
+
|
|
||||||
+ * ld-elf/comm-data.exp: Add XFAIL for arm*-*-* targets, referring
|
|
||||||
+ to PR ld/13802.
|
|
||||||
+
|
|
||||||
2012-11-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
||||||
|
|
||||||
* ld-elf/shared.exp (build_cxx_tests): Move out the commented out
|
|
||||||
diff --git a/ld/testsuite/ld-elf/comm-data.exp b/ld/testsuite/ld-elf/comm-data.exp
|
|
||||||
index 1c75f55..71b856d 100644
|
|
||||||
--- a/ld/testsuite/ld-elf/comm-data.exp
|
|
||||||
+++ b/ld/testsuite/ld-elf/comm-data.exp
|
|
||||||
@@ -59,6 +59,8 @@ if [is_elf64 "tmpdir/libcomm-data.so"] {
|
|
||||||
append AFLAGS " --defsym ELF64=1"
|
|
||||||
}
|
|
||||||
|
|
||||||
+setup_xfail "arm*-*-*" "ld/13802"
|
|
||||||
+
|
|
||||||
# Verify that a common symbol has been converted to an undefined
|
|
||||||
# reference to the global symbol of the same name defined above
|
|
||||||
# and that the debug reference has been dropped.
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
From 6a7ec91db1a2a7d60d225ee613c9ebaf1e222acd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland McGrath <roland@gnu.org>
|
|
||||||
Date: Wed, 21 Nov 2012 20:14:41 +0000
|
|
||||||
Subject: [PATCH 18/27] bfd/ * elf-nacl.c
|
|
||||||
(segment_nonexecutable_and_has_contents): Renamed to
|
|
||||||
... (segment_eligible_for_headers): ... this.
|
|
||||||
Take new arguments MAXPAGESIZE and
|
|
||||||
SIZEOF_HEADERS. Return false if the first section's
|
|
||||||
start address doesn't leave space for the headers.
|
|
||||||
(nacl_modify_segment_map): Update caller.
|
|
||||||
|
|
||||||
---
|
|
||||||
bfd/ChangeLog | 8 ++++++++
|
|
||||||
bfd/elf-nacl.c | 14 ++++++++++++--
|
|
||||||
2 files changed, 20 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
|
|
||||||
index 59c36a7..cf65838 100644
|
|
||||||
--- a/bfd/ChangeLog
|
|
||||||
+++ b/bfd/ChangeLog
|
|
||||||
@@ -1,3 +1,11 @@
|
|
||||||
+2012-11-21 Roland McGrath <mcgrathr@google.com>
|
|
||||||
+
|
|
||||||
+ * elf-nacl.c (segment_nonexecutable_and_has_contents): Renamed to ...
|
|
||||||
+ (segment_eligible_for_headers): ... this. Take new arguments
|
|
||||||
+ MAXPAGESIZE and SIZEOF_HEADERS. Return false if the first section's
|
|
||||||
+ start address doesn't leave space for the headers.
|
|
||||||
+ (nacl_modify_segment_map): Update caller.
|
|
||||||
+
|
|
||||||
2012-11-19 Joey Ye <joey.ye@arm.com>
|
|
||||||
|
|
||||||
* elf32-arm.c (elf32_arm_final_link_relocate,
|
|
||||||
diff --git a/bfd/elf-nacl.c b/bfd/elf-nacl.c
|
|
||||||
index 842e367..04659e7 100644
|
|
||||||
--- a/bfd/elf-nacl.c
|
|
||||||
+++ b/bfd/elf-nacl.c
|
|
||||||
@@ -42,11 +42,18 @@ segment_executable (struct elf_segment_map *seg)
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Determine if this segment is eligible to receive the file and program
|
|
||||||
+ headers. It must be non-executable and have contents. Its first
|
|
||||||
+ section must start far enough past the page boundary to allow space
|
|
||||||
+ for the headers. */
|
|
||||||
static bfd_boolean
|
|
||||||
-segment_nonexecutable_and_has_contents (struct elf_segment_map *seg)
|
|
||||||
+segment_eligible_for_headers (struct elf_segment_map *seg,
|
|
||||||
+ bfd_vma maxpagesize, bfd_vma sizeof_headers)
|
|
||||||
{
|
|
||||||
bfd_boolean any_contents = FALSE;
|
|
||||||
unsigned int i;
|
|
||||||
+ if (seg->count == 0 || seg->sections[0]->lma % maxpagesize < sizeof_headers)
|
|
||||||
+ return FALSE;
|
|
||||||
for (i = 0; i < seg->count; ++i)
|
|
||||||
{
|
|
||||||
if (seg->sections[i]->flags & SEC_CODE)
|
|
||||||
@@ -68,6 +75,8 @@ nacl_modify_segment_map (bfd *abfd, struct bfd_link_info *info)
|
|
||||||
struct elf_segment_map **first_load = NULL;
|
|
||||||
struct elf_segment_map **last_load = NULL;
|
|
||||||
bfd_boolean moved_headers = FALSE;
|
|
||||||
+ int sizeof_headers = bfd_sizeof_headers (abfd, info);
|
|
||||||
+ bfd_vma maxpagesize = get_elf_backend_data (abfd)->maxpagesize;
|
|
||||||
|
|
||||||
if (info != NULL && info->user_phdrs)
|
|
||||||
/* The linker script used PHDRS explicitly, so don't change what the
|
|
||||||
@@ -93,7 +102,8 @@ nacl_modify_segment_map (bfd *abfd, struct bfd_link_info *info)
|
|
||||||
/* Now that we've noted the first PT_LOAD, we're looking for
|
|
||||||
the first non-executable PT_LOAD with a nonempty p_filesz. */
|
|
||||||
else if (!moved_headers
|
|
||||||
- && segment_nonexecutable_and_has_contents (seg))
|
|
||||||
+ && segment_eligible_for_headers (seg, maxpagesize,
|
|
||||||
+ sizeof_headers))
|
|
||||||
{
|
|
||||||
/* This is the one we were looking for!
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
From f9fd8f72b070bfdc49c957f3968e6fcec34b57fc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland McGrath <roland@gnu.org>
|
|
||||||
Date: Mon, 26 Nov 2012 17:50:04 +0000
|
|
||||||
Subject: [PATCH 24/27] bfd/ * elf-nacl.c (nacl_modify_segment_map): Don't
|
|
||||||
crash when INFO is null.
|
|
||||||
|
|
||||||
---
|
|
||||||
bfd/ChangeLog | 4 ++++
|
|
||||||
bfd/elf-nacl.c | 5 ++---
|
|
||||||
2 files changed, 6 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
|
|
||||||
index cf65838..5500b36 100644
|
|
||||||
--- a/bfd/ChangeLog
|
|
||||||
+++ b/bfd/ChangeLog
|
|
||||||
@@ -1,3 +1,7 @@
|
|
||||||
+2012-11-26 Roland McGrath <mcgrathr@google.com>
|
|
||||||
+
|
|
||||||
+ * elf-nacl.c (nacl_modify_segment_map): Don't crash when INFO is null.
|
|
||||||
+
|
|
||||||
2012-11-21 Roland McGrath <mcgrathr@google.com>
|
|
||||||
|
|
||||||
* elf-nacl.c (segment_nonexecutable_and_has_contents): Renamed to ...
|
|
||||||
diff --git a/bfd/elf-nacl.c b/bfd/elf-nacl.c
|
|
||||||
index 04659e7..ce401fa 100644
|
|
||||||
--- a/bfd/elf-nacl.c
|
|
||||||
+++ b/bfd/elf-nacl.c
|
|
||||||
@@ -75,7 +75,7 @@ nacl_modify_segment_map (bfd *abfd, struct bfd_link_info *info)
|
|
||||||
struct elf_segment_map **first_load = NULL;
|
|
||||||
struct elf_segment_map **last_load = NULL;
|
|
||||||
bfd_boolean moved_headers = FALSE;
|
|
||||||
- int sizeof_headers = bfd_sizeof_headers (abfd, info);
|
|
||||||
+ int sizeof_headers = info == NULL ? 0 : bfd_sizeof_headers (abfd, info);
|
|
||||||
bfd_vma maxpagesize = get_elf_backend_data (abfd)->maxpagesize;
|
|
||||||
|
|
||||||
if (info != NULL && info->user_phdrs)
|
|
||||||
@@ -149,8 +149,7 @@ nacl_modify_segment_map (bfd *abfd, struct bfd_link_info *info)
|
|
||||||
proper order for the ELF rule that they must appear in ascending address
|
|
||||||
order. So find the two segments we swapped before, and swap them back. */
|
|
||||||
bfd_boolean
|
|
||||||
-nacl_modify_program_headers (bfd *abfd,
|
|
||||||
- struct bfd_link_info *info ATTRIBUTE_UNUSED)
|
|
||||||
+nacl_modify_program_headers (bfd *abfd, struct bfd_link_info *info)
|
|
||||||
{
|
|
||||||
struct elf_segment_map **m = &elf_tdata (abfd)->segment_map;
|
|
||||||
Elf_Internal_Phdr *phdr = elf_tdata (abfd)->phdr;
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
From fdf71da8350a7c2b4050e09c5a08e7d42b7a4a4a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland McGrath <roland@gnu.org>
|
|
||||||
Date: Tue, 27 Nov 2012 17:23:31 +0000
|
|
||||||
Subject: [PATCH 26/27] ld/testsuite/ * ld-elf/flags1.d: Add *-*-nacl* to
|
|
||||||
xfail list. * ld-elf/orphan-region.d: Likewise.
|
|
||||||
|
|
||||||
---
|
|
||||||
ld/testsuite/ChangeLog | 5 +++++
|
|
||||||
ld/testsuite/ld-elf/flags1.d | 7 ++++---
|
|
||||||
ld/testsuite/ld-elf/orphan-region.d | 5 +++--
|
|
||||||
3 files changed, 12 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
|
|
||||||
index aada077..c0558ac 100644
|
|
||||||
--- a/ld/testsuite/ChangeLog
|
|
||||||
+++ b/ld/testsuite/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2012-11-27 Roland McGrath <mcgrathr@google.com>
|
|
||||||
+
|
|
||||||
+ * ld-elf/flags1.d: Add *-*-nacl* to xfail list.
|
|
||||||
+ * ld-elf/orphan-region.d: Likewise.
|
|
||||||
+
|
|
||||||
2012-11-21 Roland McGrath <mcgrathr@google.com>
|
|
||||||
|
|
||||||
* ld-elf/comm-data.exp: Add XFAIL for arm*-*-* targets, referring
|
|
||||||
diff --git a/ld/testsuite/ld-elf/flags1.d b/ld/testsuite/ld-elf/flags1.d
|
|
||||||
index e6bb001..ab8facc 100644
|
|
||||||
--- a/ld/testsuite/ld-elf/flags1.d
|
|
||||||
+++ b/ld/testsuite/ld-elf/flags1.d
|
|
||||||
@@ -1,11 +1,12 @@
|
|
||||||
#name: --set-section-flags test 1 (sections)
|
|
||||||
#ld: -Tflags1.ld
|
|
||||||
-#objcopy_linked_file: --set-section-flags .post_text_reserve=contents,alloc,load,readonly,code
|
|
||||||
+#objcopy_linked_file: --set-section-flags .post_text_reserve=contents,alloc,load,readonly,code
|
|
||||||
#readelf: -l --wide
|
|
||||||
#xfail: "avr-*-*" "dlx-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*"
|
|
||||||
-#xfail: "moxie-*-*" "mt-*-*" "msp430-*-*"
|
|
||||||
+#xfail: "moxie-*-*" "mt-*-*" "msp430-*-*" "*-*-nacl*"
|
|
||||||
#xfail: "*-*-hpux*" "hppa*64*-*-*"
|
|
||||||
-# Fails on the AVR, DLX, H8300, I960, IP2K, M32R, MOXIE, MT, and MSP430
|
|
||||||
+# Fails on the AVR, DLX, H8300, I960, IP2K, M32R, MOXIE, MT, and MSP430,
|
|
||||||
+# and all NaCl targets,
|
|
||||||
# because the two sections are not merged into one segment.
|
|
||||||
# (There is no good reason why they have to be).
|
|
||||||
# Fails on HPUX systems because the .type pseudo-op behaves differently.
|
|
||||||
diff --git a/ld/testsuite/ld-elf/orphan-region.d b/ld/testsuite/ld-elf/orphan-region.d
|
|
||||||
index 9d6c90c..d63b1df 100644
|
|
||||||
--- a/ld/testsuite/ld-elf/orphan-region.d
|
|
||||||
+++ b/ld/testsuite/ld-elf/orphan-region.d
|
|
||||||
@@ -3,9 +3,10 @@
|
|
||||||
#readelf: -S -l --wide
|
|
||||||
#xfail: arc-*-* d30v-*-* dlx-*-* fr30-*-* frv-*-elf i860-*-* i960-*-*
|
|
||||||
#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* or32-*-* pj*-*-*
|
|
||||||
-#xfail: spu-*-* hppa*64*-*-* frv-*-*
|
|
||||||
+#xfail: spu-*-* hppa*64*-*-* frv-*-* *-*-nacl*
|
|
||||||
# if not using elf32.em, you don't get fancy orphan handling
|
|
||||||
-# spu twiddles LOAD range, hppa64 adds PHDR, frv-linux adds GNU_STACK
|
|
||||||
+# spu twiddles LOAD range, hppa64 adds PHDR, frv-linux adds GNU_STACK,
|
|
||||||
+# nacl splits to two segments
|
|
||||||
|
|
||||||
#...
|
|
||||||
\[[ 0-9]+\] \.text[ \t]+PROGBITS[ \t]+0*40000000[ \t]+.*
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
|
@ -32,23 +32,12 @@ SRC_URI = "\
|
||||||
"
|
"
|
||||||
|
|
||||||
BACKPORT = "\
|
BACKPORT = "\
|
||||||
file://backport/0001-bfd.patch \
|
|
||||||
file://backport/0003-Assemble-all-sources-files-in-each-test.patch \
|
|
||||||
file://backport/0005-bfd.patch \
|
|
||||||
file://backport/0010-bfd-ChangeLog.patch \
|
|
||||||
file://backport/0012-Fix-TLS-LD-to-LE-optimization-for-x32.patch \
|
|
||||||
file://backport/0013-gas-ChangeLog.patch \
|
|
||||||
file://backport/0014-Fix-opcode-for-64-bit-jecxz.patch \
|
|
||||||
file://backport/0017-ld-elf-comm-data.exp-Add-XFAIL-for-arm-targets-refer.patch \
|
|
||||||
file://backport/0018-bfd.patch \
|
|
||||||
file://backport/0024-bfd.patch \
|
|
||||||
file://backport/0026-ld-testsuite.patch \
|
|
||||||
file://backport/0001-doc-binutils.texi-elfedit-Fix-use-of-itemx-in-table.patch \
|
file://backport/0001-doc-binutils.texi-elfedit-Fix-use-of-itemx-in-table.patch \
|
||||||
file://backport/0001-ld.texinfo-Replace-with-when-it-is-part-of-the-text.patch \
|
file://backport/0001-ld.texinfo-Replace-with-when-it-is-part-of-the-text.patch \
|
||||||
file://backport/binutils-fix-ineffectual-zero-of-cache.patch \
|
file://backport/binutils-fix-ineffectual-zero-of-cache.patch \
|
||||||
file://backport/binutils-replace-strncat-with-strcat.patch \
|
file://backport/binutils-replace-strncat-with-strcat.patch \
|
||||||
file://backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch \
|
file://backport/0001-config-tc-ppc.c-md_assemble-Do-not-generate-APUinfo-.patch \
|
||||||
"
|
"
|
||||||
SRC_URI[md5sum] = "33adb18c3048d057ac58d07a3f1adb38"
|
SRC_URI[md5sum] = "4f8fa651e35ef262edc01d60fb45702e"
|
||||||
SRC_URI[sha256sum] = "2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19"
|
SRC_URI[sha256sum] = "fe914e56fed7a9ec2eb45274b1f2e14b0d8b4f41906a5194eac6883cfe5c1097"
|
||||||
|
|
Loading…
Reference in New Issue