add a binutils variant based on a binutils snapshot and codesourcery g++ enhancements (compiles, but fails to link the kernel)
SVN-Revision: 18060
This commit is contained in:
parent
f0f100551d
commit
0b077fa3a7
8 changed files with 32499 additions and 3 deletions
|
@ -2,7 +2,7 @@
|
|||
|
||||
choice
|
||||
prompt "Binutils Version" if TOOLCHAINOPTS
|
||||
default BINUTILS_VERSION_2_18 if TARGET_avr32
|
||||
default BINUTILS_VERSION_2_18 if avr32
|
||||
default BINUTILS_VERSION_2_19_1
|
||||
help
|
||||
Select the version of binutils you wish to use.
|
||||
|
@ -11,8 +11,15 @@ choice
|
|||
bool "binutils 2.18"
|
||||
|
||||
config BINUTILS_VERSION_2_19_1
|
||||
depends !TARGET_avr32
|
||||
depends !avr32
|
||||
bool "binutils 2.19.1"
|
||||
|
||||
config BINUTILS_VERSION_CS
|
||||
depends !avr32
|
||||
depends !ubicom32
|
||||
depends BROKEN
|
||||
bool "binutils 2.19.1+20090205 with CodeSourcery enhancements"
|
||||
|
||||
endchoice
|
||||
|
||||
config EXTRA_BINUTILS_CONFIG_OPTIONS
|
||||
|
@ -27,5 +34,6 @@ config BINUTILS_VERSION
|
|||
prompt "Binutils Version" if (TOOLCHAINOPTS && NULL)
|
||||
default "2.18" if BINUTILS_VERSION_2_18
|
||||
default "2.19.1" if BINUTILS_VERSION_2_19_1
|
||||
default "2.18" if TARGET_avr32
|
||||
default "2.19.1+cs" if BINUTILS_VERSION_CS
|
||||
default "2.18" if avr32
|
||||
default "2.19.1"
|
||||
|
|
|
@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=binutils
|
||||
PKG_VERSION:=$(call qstrip,$(CONFIG_BINUTILS_VERSION))
|
||||
BIN_VERSION:=$(PKG_VERSION)
|
||||
|
||||
PKG_SOURCE_URL:=@GNU/binutils/
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
|
@ -18,6 +19,13 @@ endif
|
|||
ifeq ($(PKG_VERSION),2.19.1)
|
||||
PKG_MD5SUM:=09a8c5821a2dfdbb20665bc0bd680791
|
||||
endif
|
||||
ifeq ($(PKG_VERSION),2.19.1+cs)
|
||||
BIN_VERSION:=20090205
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(BIN_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||
PKG_MD5SUM:=040740e8c864dd1a15886753f9c0bc0b
|
||||
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/binutils-$(BIN_VERSION)
|
||||
endif
|
||||
|
||||
PATCH_DIR:=./patches/$(PKG_VERSION)
|
||||
|
||||
|
|
32363
toolchain/binutils/patches/2.19.1+cs/000-codesourcery_2009q1_203.patch
Normal file
32363
toolchain/binutils/patches/2.19.1+cs/000-codesourcery_2009q1_203.patch
Normal file
File diff suppressed because it is too large
Load diff
22
toolchain/binutils/patches/2.19.1+cs/110-arm-eabi-conf.patch
Normal file
22
toolchain/binutils/patches/2.19.1+cs/110-arm-eabi-conf.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -2330,7 +2330,7 @@ case "${target}" in
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
libgloss_dir=arm
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-*gnueabi)
|
||||
noconfigdirs="$noconfigdirs target-qthreads"
|
||||
case ${with_newlib} in
|
||||
no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -566,7 +566,7 @@ case "${target}" in
|
||||
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
|
||||
libgloss_dir=arm
|
||||
;;
|
||||
- arm*-*-linux-gnueabi)
|
||||
+ arm*-*-linux-*gnueabi)
|
||||
noconfigdirs="$noconfigdirs target-qthreads"
|
||||
case ${with_newlib} in
|
||||
no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
|
|
@ -0,0 +1,13 @@
|
|||
--- a/bfd/elf32-arm.c
|
||||
+++ b/bfd/elf32-arm.c
|
||||
@@ -5476,6 +5476,10 @@ bfd_elf32_arm_init_maps (bfd *abfd)
|
||||
if (! is_arm_elf (abfd))
|
||||
return;
|
||||
|
||||
+ /* PR 7093: Make sure that we are dealing with an arm elf binary. */
|
||||
+ if (! is_arm_elf (abfd))
|
||||
+ return;
|
||||
+
|
||||
if ((abfd->flags & DYNAMIC) != 0)
|
||||
return;
|
||||
|
40
toolchain/binutils/patches/2.19.1+cs/120-sh-conf.patch
Normal file
40
toolchain/binutils/patches/2.19.1+cs/120-sh-conf.patch
Normal file
|
@ -0,0 +1,40 @@
|
|||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -2298,7 +2298,7 @@ case "${target}" in
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -2632,7 +2632,7 @@ case "${target}" in
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[3456789]86-*-vsta) ;; # don't add gprof back in
|
||||
i[3456789]86-*-go32*) ;; # don't add gprof back in
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -534,7 +534,7 @@ case "${target}" in
|
||||
am33_2.0-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
- sh-*-linux*)
|
||||
+ sh*-*-linux*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
|
||||
;;
|
||||
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
|
||||
@@ -868,7 +868,7 @@ case "${target}" in
|
||||
romp-*-*)
|
||||
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
|
||||
;;
|
||||
- sh-*-* | sh64-*-*)
|
||||
+ sh*-*-* | sh64-*-*)
|
||||
case "${host}" in
|
||||
i[[3456789]]86-*-vsta) ;; # don't add gprof back in
|
||||
i[[3456789]]86-*-go32*) ;; # don't add gprof back in
|
|
@ -0,0 +1,22 @@
|
|||
--- a/ld/Makefile.am
|
||||
+++ b/ld/Makefile.am
|
||||
@@ -18,7 +18,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)
|
||||
|
||||
EMUL = @EMUL@
|
||||
EMULATION_OFILES = @EMULATION_OFILES@
|
||||
--- a/ld/Makefile.in
|
||||
+++ b/ld/Makefile.in
|
||||
@@ -304,7 +304,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
|
||||
@@ -1220,6 +1220,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;
|
||||
@@ -1405,6 +1407,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;
|
||||
if (! (bfd_elf_size_dynamic_sections
|
||||
(link_info.output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
Loading…
Reference in a new issue