mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 02:19:23 +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:
parent
1c0fd705a6
commit
0aa409cc4d
@ -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"
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
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 New Issue
Block a user