1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 18:23:09 +02:00

add a binutils variant based on a binutils snapshot and codesourcery g++ enhancements (compiles, but fails to link the kernel)

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18060 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2009-10-19 02:09:59 +00:00
parent 1c0fd705a6
commit 0aa409cc4d
8 changed files with 32499 additions and 3 deletions

View File

@ -2,7 +2,7 @@
choice choice
prompt "Binutils Version" if TOOLCHAINOPTS 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 default BINUTILS_VERSION_2_19_1
help help
Select the version of binutils you wish to use. Select the version of binutils you wish to use.
@ -11,8 +11,15 @@ choice
bool "binutils 2.18" bool "binutils 2.18"
config BINUTILS_VERSION_2_19_1 config BINUTILS_VERSION_2_19_1
depends !TARGET_avr32 depends !avr32
bool "binutils 2.19.1" 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 endchoice
config EXTRA_BINUTILS_CONFIG_OPTIONS config EXTRA_BINUTILS_CONFIG_OPTIONS
@ -27,5 +34,6 @@ config BINUTILS_VERSION
prompt "Binutils Version" if (TOOLCHAINOPTS && NULL) prompt "Binutils Version" if (TOOLCHAINOPTS && NULL)
default "2.18" if BINUTILS_VERSION_2_18 default "2.18" if BINUTILS_VERSION_2_18
default "2.19.1" if BINUTILS_VERSION_2_19_1 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" default "2.19.1"

View File

@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=binutils PKG_NAME:=binutils
PKG_VERSION:=$(call qstrip,$(CONFIG_BINUTILS_VERSION)) PKG_VERSION:=$(call qstrip,$(CONFIG_BINUTILS_VERSION))
BIN_VERSION:=$(PKG_VERSION)
PKG_SOURCE_URL:=@GNU/binutils/ PKG_SOURCE_URL:=@GNU/binutils/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
@ -18,6 +19,13 @@ endif
ifeq ($(PKG_VERSION),2.19.1) ifeq ($(PKG_VERSION),2.19.1)
PKG_MD5SUM:=09a8c5821a2dfdbb20665bc0bd680791 PKG_MD5SUM:=09a8c5821a2dfdbb20665bc0bd680791
endif 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) PATCH_DIR:=./patches/$(PKG_VERSION)

File diff suppressed because it is too large Load Diff

View 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"

View File

@ -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;

View 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

View File

@ -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

View File

@ -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,