From df9b304f7a43c798223606eb5f0e13f7250393fe Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 8 Aug 2012 07:57:09 -0700 Subject: binutils-2.23.1: Add recipes backport non regressing patches from 2.23 branch after 2.23.1 release. Signed-off-by: Khem Raj Signed-off-by: Saul Wold --- meta/recipes-devtools/binutils/binutils-2.23.1.inc | 46 + .../binutils-2.23.1/backport/0001-bfd.patch | 58 + ...3-Assemble-all-sources-files-in-each-test.patch | 187 + .../binutils-2.23.1/backport/0005-bfd.patch | 103 + .../backport/0010-bfd-ChangeLog.patch | 95 + ...012-Fix-TLS-LD-to-LE-optimization-for-x32.patch | 57 + .../backport/0013-gas-ChangeLog.patch | 43 + .../0014-Fix-opcode-for-64-bit-jecxz.patch | 112 + ...-data.exp-Add-XFAIL-for-arm-targets-refer.patch | 40 + .../binutils-2.23.1/backport/0018-bfd.patch | 78 + .../binutils-2.23.1/backport/0024-bfd.patch | 49 + .../backport/0026-ld-testsuite.patch | 65 + .../binutils/binutils-2.23.1/binutils-armv5e.patch | 25 + .../binutils/binutils-2.23.1/binutils-poison.patch | 259 + .../binutils-uclibc-100-uclibc-conf.patch | 40 + ...binutils-uclibc-300-001_ld_makefile_patch.patch | 55 + ...binutils-uclibc-300-006_better_file_error.patch | 45 + ...ils-uclibc-300-012_check_ldrunpath_length.patch | 49 + .../binutils-uclibc-gas-needs-libm.patch | 38 + .../binutils-x86_64_i386_biarch.patch | 29 + .../binutils-2.23.1/libiberty_path_fix.patch | 22 + .../binutils-2.23.1/libtool-2.4-update.patch | 19407 +++++++++++++++++++ .../binutils-2.23.1/libtool-rpath-fix.patch | 39 + .../mips64-default-ld-emulation.patch | 49 + .../binutils/binutils-2.23.1/relocatable_sdk.patch | 49 + .../binutils/binutils-cross-canadian_2.23.1.bb | 3 + .../binutils/binutils-cross_2.23.1.bb | 3 + .../binutils/binutils-crosssdk_2.23.1.bb | 14 + meta/recipes-devtools/binutils/binutils_2.23.1.bb | 35 + 29 files changed, 21094 insertions(+) create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1.inc create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-bfd.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0003-Assemble-all-sources-files-in-each-test.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0005-bfd.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0012-Fix-TLS-LD-to-LE-optimization-for-x32.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0013-gas-ChangeLog.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0014-Fix-opcode-for-64-bit-jecxz.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0017-ld-elf-comm-data.exp-Add-XFAIL-for-arm-targets-refer.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0018-bfd.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0024-bfd.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/backport/0026-ld-testsuite.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-armv5e.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-poison.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-100-uclibc-conf.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-001_ld_makefile_patch.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-006_better_file_error.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-012_check_ldrunpath_length.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-gas-needs-libm.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/binutils-x86_64_i386_biarch.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/libiberty_path_fix.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/libtool-2.4-update.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/libtool-rpath-fix.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/mips64-default-ld-emulation.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.23.1/relocatable_sdk.patch create mode 100644 meta/recipes-devtools/binutils/binutils-cross-canadian_2.23.1.bb create mode 100644 meta/recipes-devtools/binutils/binutils-cross_2.23.1.bb create mode 100644 meta/recipes-devtools/binutils/binutils-crosssdk_2.23.1.bb create mode 100644 meta/recipes-devtools/binutils/binutils_2.23.1.bb (limited to 'meta/recipes-devtools/binutils') diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1.inc b/meta/recipes-devtools/binutils/binutils-2.23.1.inc new file mode 100644 index 0000000000..33969813af --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1.inc @@ -0,0 +1,46 @@ +LIC_FILES_CHKSUM="\ + file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\ + file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ + file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\ + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\ + file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\ + file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\ + file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ + file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\ + file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\ + file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\ + " + +SRC_URI = "\ + ${GNU_MIRROR}/binutils/binutils-${PV}.tar.bz2 \ + file://binutils-uclibc-100-uclibc-conf.patch \ + file://binutils-uclibc-300-001_ld_makefile_patch.patch \ + file://binutils-uclibc-300-006_better_file_error.patch \ + file://binutils-uclibc-300-012_check_ldrunpath_length.patch \ + file://binutils-uclibc-gas-needs-libm.patch \ + file://binutils-x86_64_i386_biarch.patch \ + file://libtool-2.4-update.patch \ + file://libiberty_path_fix.patch \ + file://binutils-poison.patch \ + file://libtool-rpath-fix.patch \ + file://binutils-armv5e.patch \ + file://mips64-default-ld-emulation.patch \ + ${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 \ +" +SRC_URI[md5sum] = "33adb18c3048d057ac58d07a3f1adb38" +SRC_URI[sha256sum] = "2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19" + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-bfd.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-bfd.patch new file mode 100644 index 0000000000..c04f8d45b3 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0001-bfd.patch @@ -0,0 +1,58 @@ +From 7dbb7d8db8003ff73d80956bd3271f9588437aa7 Mon Sep 17 00:00:00 2001 +From: Tristan Gingold +Date: Tue, 13 Nov 2012 15:22:45 +0000 +Subject: [PATCH 01/27] bfd/ 2012-11-13 Tristan Gingold + + + * 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 + ++ * Makefile.am (RELEASE): Unset. ++ * Makefile.in: Regenerate. ++ ++2012-11-13 Tristan Gingold ++ + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0003-Assemble-all-sources-files-in-each-test.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0003-Assemble-all-sources-files-in-each-test.patch new file mode 100644 index 0000000000..be0888590a --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0003-Assemble-all-sources-files-in-each-test.patch @@ -0,0 +1,187 @@ +From 80b672d804357f2a1be04ac4e5a4d4c7d0d3b348 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +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 ++ ++ * 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 + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0005-bfd.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0005-bfd.patch new file mode 100644 index 0000000000..4f970044e3 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0005-bfd.patch @@ -0,0 +1,103 @@ +From e4b6d90dbcbf56c959eca8dcdf846fbe21c822e3 Mon Sep 17 00:00:00 2001 +From: Roland McGrath +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 ++ ++ * elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc ++ instruction for data sandboxing. ++ + 2012-11-13 Tristan Gingold + + * 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 ++ ++ * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather ++ than bfc instruction for data sandboxing. ++ + 2012-11-07 Roland McGrath + + * 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::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::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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch new file mode 100644 index 0000000000..8ade69d3fc --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch @@ -0,0 +1,95 @@ +From c49a2d2d8ff625b17699c44a703f217de5b4fa2f Mon Sep 17 00:00:00 2001 +From: Yufeng Zhang +Date: Mon, 19 Nov 2012 18:46:01 +0000 +Subject: [PATCH 10/27] bfd/ChangeLog + +2012-11-19 Joey Ye + + * 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 ++ ++ * 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 + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0012-Fix-TLS-LD-to-LE-optimization-for-x32.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0012-Fix-TLS-LD-to-LE-optimization-for-x32.patch new file mode 100644 index 0000000000..b4bc10f9c5 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0012-Fix-TLS-LD-to-LE-optimization-for-x32.patch @@ -0,0 +1,57 @@ +From 0c6a475b99dc06a49549d81059f290b23b86c62d Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +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 ++ ++ PR gold/14858 ++ * x86_64.cc (Relocate::tls_ld_to_le): Support x32. ++ + 2012-11-14 Roland McGrath + + * 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::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::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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0013-gas-ChangeLog.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0013-gas-ChangeLog.patch new file mode 100644 index 0000000000..f4314201e9 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0013-gas-ChangeLog.patch @@ -0,0 +1,43 @@ +From d4d8d22c6d0a859f617cf7d0a2e31056893c1d98 Mon Sep 17 00:00:00 2001 +From: Yufeng Zhang +Date: Tue, 20 Nov 2012 10:41:54 +0000 +Subject: [PATCH 13/27] gas/ChangeLog + +2012-11-20 Yufeng Zhang + + * 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 ++ ++ * config/tc-aarch64.c (first_error_fmt): Add ATTRIBUTE_UNUSED to the ++ local variable "ret". ++ + 2012-11-07 James Murray + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0014-Fix-opcode-for-64-bit-jecxz.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0014-Fix-opcode-for-64-bit-jecxz.patch new file mode 100644 index 0000000000..b230e330c5 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0014-Fix-opcode-for-64-bit-jecxz.patch @@ -0,0 +1,112 @@ +From adef1e82d241e22139c5edbba1efe9734cfdcace Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +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 ++ ++ PR gas/14859 ++ * gas/i386/x86-64-opcode.s: Add jecxz. ++ * gas/i386/x86-64-opcode.d: Updated. ++ + 2012-11-20 Yufeng Zhang + + * 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 ++ H.J. Lu ++ ++ PR gas/14859 ++ * i386-opc.tbl: Fix opcode for 64-bit jecxz. ++ * i386-tbl.h: Regenerated. ++ + 2012-10-09 Nagajyothi Eggone + + * i386-gen.c (cpu_flag_init): Add CPU_BDVER3_FLAGS. +@@ -9,7 +16,7 @@ + + 2012-09-18 Kyrylo Tkachov + +- * 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 +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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0017-ld-elf-comm-data.exp-Add-XFAIL-for-arm-targets-refer.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0017-ld-elf-comm-data.exp-Add-XFAIL-for-arm-targets-refer.patch new file mode 100644 index 0000000000..909d27a17b --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0017-ld-elf-comm-data.exp-Add-XFAIL-for-arm-targets-refer.patch @@ -0,0 +1,40 @@ +From b15bb9c9dc6875a2fe08feba6f31cce6a9468cf7 Mon Sep 17 00:00:00 2001 +From: Roland McGrath +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 ++ ++ * ld-elf/comm-data.exp: Add XFAIL for arm*-*-* targets, referring ++ to PR ld/13802. ++ + 2012-11-14 H.J. Lu + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0018-bfd.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0018-bfd.patch new file mode 100644 index 0000000000..a29f424abf --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0018-bfd.patch @@ -0,0 +1,78 @@ +From 6a7ec91db1a2a7d60d225ee613c9ebaf1e222acd Mon Sep 17 00:00:00 2001 +From: Roland McGrath +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 ++ ++ * 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 + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0024-bfd.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0024-bfd.patch new file mode 100644 index 0000000000..f50c2ec075 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0024-bfd.patch @@ -0,0 +1,49 @@ +From f9fd8f72b070bfdc49c957f3968e6fcec34b57fc Mon Sep 17 00:00:00 2001 +From: Roland McGrath +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 ++ ++ * elf-nacl.c (nacl_modify_segment_map): Don't crash when INFO is null. ++ + 2012-11-21 Roland McGrath + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0026-ld-testsuite.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0026-ld-testsuite.patch new file mode 100644 index 0000000000..b1e9e65383 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0026-ld-testsuite.patch @@ -0,0 +1,65 @@ +From fdf71da8350a7c2b4050e09c5a08e7d42b7a4a4a Mon Sep 17 00:00:00 2001 +From: Roland McGrath +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 ++ ++ * ld-elf/flags1.d: Add *-*-nacl* to xfail list. ++ * ld-elf/orphan-region.d: Likewise. ++ + 2012-11-21 Roland McGrath + + * 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 + diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-armv5e.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-armv5e.patch new file mode 100644 index 0000000000..97ad6dffba --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-armv5e.patch @@ -0,0 +1,25 @@ +Add the armv5e architecture to binutils + +Binutils has a comment that indicates it is supposed to match gcc for all of +the support "-march=" settings, but it was lacking the armv5e setting. This +was a simple way to add it, as thumb instructions shouldn't be generated by +the compiler anyway. + +Upstream-Status: Denied +Upstream maintainer indicated that we should not be using armv5e, even though +it is a legal archicture defined by our gcc. + +Signed-off-by: Mark Hatle + +Index: binutils-2.22.90/gas/config/tc-arm.c +=================================================================== +--- binutils-2.22.90.orig/gas/config/tc-arm.c 2012-07-24 09:38:32.000000000 -0700 ++++ binutils-2.22.90/gas/config/tc-arm.c 2012-08-07 23:41:59.822564075 -0700 +@@ -23162,6 +23162,7 @@ + ARM_ARCH_OPT ("armv4t", ARM_ARCH_V4T, FPU_ARCH_FPA), + ARM_ARCH_OPT ("armv4txm", ARM_ARCH_V4TxM, FPU_ARCH_FPA), + ARM_ARCH_OPT ("armv5", ARM_ARCH_V5, FPU_ARCH_VFP), ++ ARM_ARCH_OPT ("armv5e", ARM_ARCH_V5TE, FPU_ARCH_VFP), + ARM_ARCH_OPT ("armv5t", ARM_ARCH_V5T, FPU_ARCH_VFP), + ARM_ARCH_OPT ("armv5txm", ARM_ARCH_V5TxM, FPU_ARCH_VFP), + ARM_ARCH_OPT ("armv5te", ARM_ARCH_V5TE, FPU_ARCH_VFP), diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-poison.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-poison.patch new file mode 100644 index 0000000000..39cae5155d --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-poison.patch @@ -0,0 +1,259 @@ +Upstream-Status: Inappropriate [distribution: codesourcery] + +Patch originally created by Mark Hatle, forward-ported to +binutils 2.21 by Scott Garman. + +purpose: warn for uses of system directories when cross linking + +Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 + +2008-07-02 Joseph Myers + + ld/ + * ld.h (args_type): Add error_poison_system_directories. + * ld.texinfo (--error-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.error_poison_system_directories. + * ldmain.c (main): Initialize + command_line.error_poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --error-poison-system-directories. + (parse_args): Handle new option. + +2007-06-13 Joseph Myers + + ld/ + * config.in: Regenerate. + * ld.h (args_type): Add poison_system_directories. + * ld.texinfo (--no-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.poison_system_directories. + * ldmain.c (main): Initialize + command_line.poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_NO_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --no-poison-system-directories. + (parse_args): Handle new option. + +2007-04-20 Joseph Myers + + Merge from Sourcery G++ binutils 2.17: + + 2007-03-20 Joseph Myers + Based on patch by Mark Hatle . + ld/ + * configure.in (--enable-poison-system-directories): New option. + * configure, config.in: Regenerate. + * ldfile.c (ldfile_add_library_path): If + ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, + /usr/lib, /usr/local/lib or /usr/X11R6/lib. + +Signed-off-by: Mark Hatle +Signed-off-by: Scott Garman + +Index: binutils-2.22.90/ld/config.in +=================================================================== +--- binutils-2.22.90.orig/ld/config.in 2012-05-17 08:13:21.000000000 -0700 ++++ binutils-2.22.90/ld/config.in 2012-08-07 23:09:34.834490113 -0700 +@@ -11,6 +11,9 @@ + language is requested. */ + #undef ENABLE_NLS + ++/* Define to warn for use of native system library directories */ ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++ + /* Additional extension a shared object might have. */ + #undef EXTRA_SHLIB_EXTENSION + +Index: binutils-2.22.90/ld/configure +=================================================================== +--- binutils-2.22.90.orig/ld/configure 2012-08-07 23:08:50.000000000 -0700 ++++ binutils-2.22.90/ld/configure 2012-08-07 23:09:34.838490177 -0700 +@@ -776,6 +776,7 @@ + enable_targets + enable_64_bit_bfd + with_sysroot ++enable_poison_system_directories + enable_gold + enable_got + enable_werror +@@ -1432,6 +1433,8 @@ + (and sometimes confusing) to the casual installer + --enable-targets alternative target configurations + --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) ++ --enable-poison-system-directories ++ warn for use of native system library directories + --enable-gold[=ARG] build gold [ARG={default,yes,no}] + --enable-got= GOT handling scheme (target, single, negative, + multigot) +@@ -4344,7 +4347,18 @@ + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then + ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi + + # Check whether --enable-got was given. + if test "${enable_got+set}" = set; then : +Index: binutils-2.22.90/ld/configure.in +=================================================================== +--- binutils-2.22.90.orig/ld/configure.in 2012-05-17 08:13:23.000000000 -0700 ++++ binutils-2.22.90/ld/configure.in 2012-08-07 23:09:34.838490177 -0700 +@@ -70,6 +70,16 @@ + AC_SUBST(TARGET_SYSTEM_ROOT) + AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system library directories]),, ++ [enable_poison_system_directories=no]) ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], ++ [1], ++ [Define to warn for use of native system library directories]) ++fi ++ + dnl Use --enable-gold to decide if this linker should be the default. + dnl "install_as_default" is set to false if gold is the default linker. + dnl "installed_linker" is the installed BFD linker name. +Index: binutils-2.22.90/ld/ldfile.c +=================================================================== +--- binutils-2.22.90.orig/ld/ldfile.c 2012-07-13 06:20:26.000000000 -0700 ++++ binutils-2.22.90/ld/ldfile.c 2012-08-07 23:30:35.166538044 -0700 +@@ -116,6 +116,23 @@ + new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL); + else + new_dirs->name = xstrdup (name); ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (command_line.poison_system_directories ++ && ((!strncmp (name, "/lib", 4)) ++ || (!strncmp (name, "/usr/lib", 8)) ++ || (!strncmp (name, "/usr/local/lib", 14)) ++ || (!strncmp (name, "/usr/X11R6/lib", 14)))) ++ { ++ if (command_line.error_poison_system_directories) ++ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ else ++ einfo (_("%P: warning: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ } ++#endif ++ + } + + /* Try to open a BFD for a lang_input_statement. */ +Index: binutils-2.22.90/ld/ld.h +=================================================================== +--- binutils-2.22.90.orig/ld/ld.h 2012-07-09 23:50:55.000000000 -0700 ++++ binutils-2.22.90/ld/ld.h 2012-08-07 23:09:34.838490177 -0700 +@@ -203,6 +203,14 @@ + /* If TRUE we'll just print the default output on stdout. */ + bfd_boolean print_output_format; + ++ /* If TRUE (the default) warn for uses of system directories when ++ cross linking. */ ++ bfd_boolean poison_system_directories; ++ ++ /* If TRUE (default FALSE) give an error for uses of system ++ directories when cross linking instead of a warning. */ ++ bfd_boolean error_poison_system_directories; ++ + /* Big or little endian as set on command line. */ + enum endian_enum endian; + +Index: binutils-2.22.90/ld/ldmain.c +=================================================================== +--- binutils-2.22.90.orig/ld/ldmain.c 2012-07-13 06:20:26.000000000 -0700 ++++ binutils-2.22.90/ld/ldmain.c 2012-08-07 23:09:34.846490172 -0700 +@@ -265,6 +265,8 @@ + command_line.warn_search_mismatch = TRUE; + command_line.check_section_addresses = -1; + command_line.disable_target_specific_optimizations = -1; ++ command_line.poison_system_directories = TRUE; ++ command_line.error_poison_system_directories = FALSE; + + /* We initialize DEMANGLING based on the environment variable + COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the +Index: binutils-2.22.90/ld/ld.texinfo +=================================================================== +--- binutils-2.22.90.orig/ld/ld.texinfo 2012-07-09 23:50:55.000000000 -0700 ++++ binutils-2.22.90/ld/ld.texinfo 2012-08-07 23:09:34.850490143 -0700 +@@ -2147,6 +2147,18 @@ + + Passing @code{none} for @var{style} disables the setting from any + @code{--build-id} options earlier on the command line. ++ ++@kindex --no-poison-system-directories ++@item --no-poison-system-directories ++Do not warn for @option{-L} options using system directories such as ++@file{/usr/lib} when cross linking. This option is intended for use ++in chroot environments when such directories contain the correct ++libraries for the target system rather than the host. ++ ++@kindex --error-poison-system-directories ++@item --error-poison-system-directories ++Give an error instead of a warning for @option{-L} options using ++system directories when cross linking. + @end table + + @c man end +Index: binutils-2.22.90/ld/lexsup.c +=================================================================== +--- binutils-2.22.90.orig/ld/lexsup.c 2012-07-13 06:20:26.000000000 -0700 ++++ binutils-2.22.90/ld/lexsup.c 2012-08-07 23:09:34.850490143 -0700 +@@ -496,6 +496,14 @@ + TWO_DASHES }, + { {"wrap", required_argument, NULL, OPTION_WRAP}, + '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES }, ++ { {"no-poison-system-directories", no_argument, NULL, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Do not warn for -L options using system directories"), ++ TWO_DASHES }, ++ { {"error-poison-system-directories", no_argument, NULL, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Give an error for -L options using system directories"), ++ TWO_DASHES }, + }; + + #define OPTION_COUNT ARRAY_SIZE (ld_options) +@@ -1424,6 +1432,14 @@ + einfo (_("%P%X: --hash-size needs a numeric argument\n")); + } + break; ++ ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; ++ ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; ++ break; + } + } + +Index: binutils-2.22.90/ld/ldlex.h +=================================================================== +--- binutils-2.22.90.orig/ld/ldlex.h 2012-05-26 04:13:19.000000000 -0700 ++++ binutils-2.22.90/ld/ldlex.h 2012-08-07 23:34:17.122546581 -0700 +@@ -135,6 +135,8 @@ + #endif /* ENABLE_PLUGINS */ + OPTION_DEFAULT_SCRIPT, + OPTION_PRINT_OUTPUT_FORMAT, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES + }; + + /* The initial parser states. */ diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-100-uclibc-conf.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-100-uclibc-conf.patch new file mode 100644 index 0000000000..b5a25c2389 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-100-uclibc-conf.patch @@ -0,0 +1,40 @@ +Upstream-Status: Pending + +Index: binutils-2.22/configure +=================================================================== +--- binutils-2.22.orig/configure ++++ binutils-2.22/configure +@@ -3130,7 +3130,7 @@ case "${target}" in + ;; + s390-*-* | s390x-*-*) + ;; +- sh-*-* | sh[34]*-*-*) ++ sh*-*-* | sh[34]*-*-*) + ;; + sh64-*-* | sh5*-*-*) + ;; +@@ -3570,7 +3570,7 @@ case "${target}" in + mips*-*-*) + noconfigdirs="$noconfigdirs gprof" + ;; +- sh-*-* | sh64-*-*) ++ sh*-*-* | sh64-*-*) + case "${target}" in + sh*-*-elf) + ;; +Index: binutils-2.22/gprof/configure +=================================================================== +--- binutils-2.22.orig/gprof/configure ++++ binutils-2.22/gprof/configure +@@ -6103,6 +6103,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-001_ld_makefile_patch.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-001_ld_makefile_patch.patch new file mode 100644 index 0000000000..c6e1efcea0 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-001_ld_makefile_patch.patch @@ -0,0 +1,55 @@ +#!/bin/sh -e +## 001_ld_makefile_patch.dpatch +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Description: correct where ld scripts are installed +## DP: Author: Chris Chimelis +## DP: Upstream status: N/A +## DP: Date: ?? + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 +Upstream-Status: Inappropriate [debian patch] + +@DPATCH@ +Index: binutils-2.22/ld/Makefile.am +=================================================================== +--- binutils-2.22.orig/ld/Makefile.am ++++ binutils-2.22/ld/Makefile.am +@@ -37,7 +37,7 @@ endif + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +Index: binutils-2.22/ld/Makefile.in +=================================================================== +--- binutils-2.22.orig/ld/Makefile.in ++++ binutils-2.22/ld/Makefile.in +@@ -366,7 +366,7 @@ AM_CFLAGS = $(WARN_CFLAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-006_better_file_error.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-006_better_file_error.patch new file mode 100644 index 0000000000..47bd8ff109 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-006_better_file_error.patch @@ -0,0 +1,45 @@ +#!/bin/sh -e +## 006_better_file_error.dpatch by David Kimdon +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Specify which filename is causing an error if the filename is a +## DP: directory. (#45832) + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 +Upstream-Status: Inappropriate [debian patch] + +@DPATCH@ +Index: binutils-2.22/bfd/opncls.c +=================================================================== +--- binutils-2.22.orig/bfd/opncls.c ++++ binutils-2.22/bfd/opncls.c +@@ -197,6 +197,13 @@ bfd_fopen (const char *filename, const c + { + bfd *nbfd; + const bfd_target *target_vec; ++ struct stat s; ++ ++ if (stat (filename, &s) == 0) ++ if (S_ISDIR(s.st_mode)) { ++ bfd_set_error (bfd_error_file_not_recognized); ++ return NULL; ++ } + + nbfd = _bfd_new_bfd (); + if (nbfd == NULL) diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-012_check_ldrunpath_length.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-012_check_ldrunpath_length.patch new file mode 100644 index 0000000000..d31f80cd3d --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-300-012_check_ldrunpath_length.patch @@ -0,0 +1,49 @@ +#!/bin/sh -e +## 012_check_ldrunpath_length.dpatch by Chris Chimelis +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for +## DP: cases where -rpath isn't specified. (#151024) + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 +Upstream-Status: Inappropriate [debian patch] + +@DPATCH@ +Index: binutils-2.22/ld/emultempl/elf32.em +=================================================================== +--- binutils-2.22.orig/ld/emultempl/elf32.em ++++ binutils-2.22/ld/emultempl/elf32.em +@@ -1273,6 +1273,8 @@ fragment <link_next) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-gas-needs-libm.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-gas-needs-libm.patch new file mode 100644 index 0000000000..3869faff0e --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-uclibc-gas-needs-libm.patch @@ -0,0 +1,38 @@ +Source: Khem Raj +Disposition: submit upstream. +Upstream-Status: Pending + +Description: + +We do not need to have the libtool patch anymore for binutils after +libtool has been updated upstream it include support for it. However +for building gas natively on uclibc systems we have to link it with +-lm so that it picks up missing symbols. + +/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): In function `floatformat_from_double': +floatformat.c:(.text+0x1ec): undefined reference to `frexp' +floatformat.c:(.text+0x2f8): undefined reference to `ldexp' +/local/build_area/BUILD/arm_v5t_le_uclibc/binutils-2.17.50/objdir/libiberty/pic/libiberty.a(floatformat.o): In function `floatformat_to_double': +floatformat.c:(.text+0x38a): undefined reference to `ldexp' +floatformat.c:(.text+0x3d2): undefined reference to `ldexp' +floatformat.c:(.text+0x43e): undefined reference to `ldexp' floatformat.c:(.text+0x4e2): undefined reference to `ldexp' +collect2: ld returned 1 exit status +make[4]: *** [as-new] Error 1 + +Index: binutils-2.22/gas/configure.tgt +=================================================================== +--- binutils-2.22.orig/gas/configure.tgt ++++ binutils-2.22/gas/configure.tgt +@@ -428,6 +428,12 @@ case ${generic_target} in + *-*-netware) fmt=elf em=netware ;; + esac + ++case ${generic_target} in ++ arm-*-*uclibc*) ++ need_libm=yes ++ ;; ++esac ++ + case ${cpu_type} in + alpha | arm | i386 | ia64 | microblaze | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k) + bfd_gas=yes diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/binutils-x86_64_i386_biarch.