binutils: add support for 2.23.1

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34262
master
Florian Fainelli 12 years ago
parent 41b6662001
commit 274c21cd8e
  1. 6
      toolchain/binutils/Config.in
  2. 3
      toolchain/binutils/Makefile
  3. 35
      toolchain/binutils/patches/2.23.1/112-arm-uclibc-gas-needs-libm.patch
  4. 22
      toolchain/binutils/patches/2.23.1/120-sh-conf.patch
  5. 22
      toolchain/binutils/patches/2.23.1/300-001_ld_makefile_patch.patch
  6. 20
      toolchain/binutils/patches/2.23.1/300-012_check_ldrunpath_length.patch

@ -31,6 +31,11 @@ choice
depends !avr32 || (avr32 && BROKEN)
bool "binutils 2.22"
config BINUTILS_VERSION_2_23_1
depends !ubicom32 || (ubicom32 && BROKEN)
depends !avr32 || (avr32 && BROKEN)
bool "binutils 2.23.1"
endchoice
config EXTRA_BINUTILS_CONFIG_OPTIONS
@ -48,6 +53,7 @@ config BINUTILS_VERSION
default "2.21" if BINUTILS_VERSION_2_21
default "2.21.1" if BINUTILS_VERSION_2_21_1
default "2.22" if BINUTILS_VERSION_2_22
default "2.23.1" if BINUTILS_VERSION_2_23_1
default "2.19.1" if ubicom32
default "2.20.1" if avr32
default "2.22"

@ -28,6 +28,9 @@ endif
ifeq ($(PKG_VERSION),2.22)
PKG_MD5SUM:=ee0f10756c84979622b992a4a61ea3f5
endif
ifeq ($(PKG_VERSION),2.23.1)
PKG_MD5SUM:=33adb18c3048d057ac58d07a3f1adb38
endif
HOST_BUILD_PARALLEL:=1

@ -0,0 +1,35 @@
Source: Khem Raj <raj.khem@gmail.com>
Disposition: submit upstream.
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
--- a/gas/configure.tgt
+++ b/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

@ -0,0 +1,22 @@
--- a/configure
+++ b/configure
@@ -3570,7 +3570,7 @@ case "${target}" in
mips*-*-*)
noconfigdirs="$noconfigdirs gprof"
;;
- sh-*-* | sh64-*-*)
+ sh*-*-* | sh64-*-*)
case "${target}" in
sh*-*-elf)
;;
--- a/configure.ac
+++ b/configure.ac
@@ -1006,7 +1006,7 @@ case "${target}" in
mips*-*-*)
noconfigdirs="$noconfigdirs gprof"
;;
- sh-*-* | sh64-*-*)
+ sh*-*-* | sh64-*-*)
case "${target}" in
sh*-*-elf)
;;

@ -0,0 +1,22 @@
--- a/ld/Makefile.am
+++ b/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@
--- a/ld/Makefile.in
+++ b/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

@ -0,0 +1,20 @@
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1273,6 +1273,8 @@ fragment <<EOF
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
+ if ((lib_path) && (strlen (lib_path) == 0))
+ lib_path = NULL;
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
@@ -1500,6 +1502,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
+ if ((rpath) && (strlen (rpath) == 0))
+ rpath = NULL;
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
Loading…
Cancel
Save