summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-04-26 12:50:25 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2011-04-26 12:50:25 +0200
commita8c14536161a7f62f06beb5928acfd78691bef78 (patch)
treeadeaed5057b137598c625e1fc6f8054d2cd9bfa7 /toolchain
parentce64829c0d165fe0f25c861117a359b05293ec51 (diff)
make arm/mips architectures more configurable in a simpler way
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/eglibc/patches/gcc_eh.patch18
-rw-r--r--toolchain/gcc/Makefile12
-rw-r--r--toolchain/gcc/patches/no-lib64.patch43
-rw-r--r--toolchain/uClibc/Makefile10
4 files changed, 38 insertions, 45 deletions
diff --git a/toolchain/eglibc/patches/gcc_eh.patch b/toolchain/eglibc/patches/gcc_eh.patch
deleted file mode 100644
index 1635a7d66..000000000
--- a/toolchain/eglibc/patches/gcc_eh.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -Nur eglibc-2.10.orig/libc/Makeconfig eglibc-2.10/libc/Makeconfig
---- eglibc-2.10.orig/libc/Makeconfig 2009-08-13 13:26:57.000000000 +0200
-+++ eglibc-2.10/libc/Makeconfig 2009-08-18 23:03:50.000000000 +0200
-@@ -538,12 +538,12 @@
- libunwind = -lunwind
- endif
- ifneq ($(have-as-needed),yes)
-- libgcc_eh := -lgcc_eh $(libunwind)
-+ libgcc_eh := $(libunwind)
- else
- libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) $(libunwind) -Wl,--no-as-needed
- endif
- gnulib := -lgcc $(libgcc_eh)
--static-gnulib := -lgcc -lgcc_eh $(libunwind)
-+static-gnulib := -lgcc $(libunwind)
- libc.so-gnulib := -lgcc
- endif
- ifeq ($(elf),yes)
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 7313c4d70..ec13aadea 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -17,11 +17,11 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \
--with-libelf=$(STAGING_HOST_DIR) \
--disable-__cxa_atexit \
--with-gnu-ld \
+ --disable-multilib \
--disable-libmudflap \
--disable-libgomp \
--disable-biarch \
--disable-decimal-float \
- --disable-multilib \
--disable-sjlj-exceptions \
--disable-libstdcxx-pch \
--disable-ppl-version-check \
@@ -58,12 +58,8 @@ ifeq ($(ADK_TARGET_NO_FPU),y)
GCC_CONFOPTS+= --with-float=soft
endif
-ifeq ($(ADK_LINUX_MIPS64),y)
-GCC_CONFOPTS+= --with-abi=64
-endif
-
-ifeq ($(ADK_LINUX_MIPS64EL),y)
-GCC_CONFOPTS+= --with-abi=64
+ifneq ($(ADK_TARGET_ABI),)
+GCC_CONFOPTS+= --with-abi=${ADK_TARGET_ABI}
endif
ifeq (${ADK_MAKE_PARALLEL},y)
@@ -131,6 +127,8 @@ $(GCC_BUILD_DIR_INITIAL)/.compiled: $(GCC_BUILD_DIR_INITIAL)/.configured
$(WRKBUILD)/.configured: $(GCC_BUILD_DIR_INITIAL)/.compiled
PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_INITIAL) install-gcc install-target-libgcc
+ # -lgcc_eh workaround
+ (cd $(STAGING_HOST_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) && ln -sf libgcc.a libgcc_eh.a)
touch $@
$(GCC_BUILD_DIR_FINAL)/.configured:
diff --git a/toolchain/gcc/patches/no-lib64.patch b/toolchain/gcc/patches/no-lib64.patch
index add17ecb8..5ad91ea50 100644
--- a/toolchain/gcc/patches/no-lib64.patch
+++ b/toolchain/gcc/patches/no-lib64.patch
@@ -1,6 +1,6 @@
-diff -Nur gcc-4.4.1.orig/gcc/config/i386/linux64.h gcc-4.4.1/gcc/config/i386/linux64.h
---- gcc-4.4.1.orig/gcc/config/i386/linux64.h 2009-04-10 01:23:07.000000000 +0200
-+++ gcc-4.4.1/gcc/config/i386/linux64.h 2009-08-21 18:34:13.000000000 +0200
+diff -Nur gcc-4.5.2.orig/gcc/config/i386/linux64.h gcc-4.5.2/gcc/config/i386/linux64.h
+--- gcc-4.5.2.orig/gcc/config/i386/linux64.h 2010-03-24 21:44:48.000000000 +0100
++++ gcc-4.5.2/gcc/config/i386/linux64.h 2011-04-23 22:49:31.087660410 +0200
@@ -59,7 +59,7 @@
done. */
@@ -8,12 +8,12 @@ diff -Nur gcc-4.4.1.orig/gcc/config/i386/linux64.h gcc-4.4.1/gcc/config/i386/lin
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
- #undef ASM_SPEC
- #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \
-diff -Nur gcc-4.4.1.orig/gcc/config/i386/t-linux64 gcc-4.4.1/gcc/config/i386/t-linux64
---- gcc-4.4.1.orig/gcc/config/i386/t-linux64 2008-07-02 17:59:19.000000000 +0200
-+++ gcc-4.4.1/gcc/config/i386/t-linux64 2009-08-21 18:34:13.000000000 +0200
-@@ -7,7 +7,7 @@
+ #if TARGET_64BIT_DEFAULT
+ #define SPEC_32 "m32"
+diff -Nur gcc-4.5.2.orig/gcc/config/i386/t-linux64 gcc-4.5.2/gcc/config/i386/t-linux64
+--- gcc-4.5.2.orig/gcc/config/i386/t-linux64 2009-04-21 21:03:23.000000000 +0200
++++ gcc-4.5.2/gcc/config/i386/t-linux64 2011-04-23 22:49:31.107660436 +0200
+@@ -25,7 +25,7 @@
MULTILIB_OPTIONS = m64/m32
MULTILIB_DIRNAMES = 64 32
@@ -22,22 +22,27 @@ diff -Nur gcc-4.4.1.orig/gcc/config/i386/t-linux64 gcc-4.4.1/gcc/config/i386/t-l
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
-diff -Nur gcc-4.4.1.orig/gcc/config/mips/linux64.h gcc-4.4.1/gcc/config/mips/linux64.h
---- gcc-4.4.1.orig/gcc/config/mips/linux64.h 2009-02-20 16:20:38.000000000 +0100
-+++ gcc-4.4.1/gcc/config/mips/linux64.h 2009-08-21 18:37:19.000000000 +0200
-@@ -36,7 +36,7 @@
+diff -Nur gcc-4.5.2.orig/gcc/config/mips/linux64.h gcc-4.5.2/gcc/config/mips/linux64.h
+--- gcc-4.5.2.orig/gcc/config/mips/linux64.h 2009-02-20 16:20:38.000000000 +0100
++++ gcc-4.5.2/gcc/config/mips/linux64.h 2011-04-23 22:50:17.267672629 +0200
+@@ -36,9 +36,9 @@
%{profile:-lc_p} %{!profile:-lc}}"
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
+-#define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld.so.1"
- #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
- #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
++#define GLIBC_DYNAMIC_LINKERN32 "/lib/ld.so.1"
++#define UCLIBC_DYNAMIC_LINKERN32 "/lib/ld-uClibc.so.0"
#define LINUX_DYNAMIC_LINKERN32 \
-diff -Nur gcc-4.4.1.orig/gcc/config/mips/t-linux64 gcc-4.4.1/gcc/config/mips/t-linux64
---- gcc-4.4.1.orig/gcc/config/mips/t-linux64 2006-06-06 14:51:24.000000000 +0200
-+++ gcc-4.4.1/gcc/config/mips/t-linux64 2009-08-21 18:34:13.000000000 +0200
-@@ -1,6 +1,6 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
+
+diff -Nur gcc-4.5.2.orig/gcc/config/mips/t-linux64 gcc-4.5.2/gcc/config/mips/t-linux64
+--- gcc-4.5.2.orig/gcc/config/mips/t-linux64 2009-04-21 21:03:23.000000000 +0200
++++ gcc-4.5.2/gcc/config/mips/t-linux64 2011-04-23 22:49:31.207663770 +0200
+@@ -18,7 +18,7 @@
+
MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
MULTILIB_DIRNAMES = n32 32 64
-MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index ec73bf5b9..bd1b6e8a3 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -14,10 +14,18 @@ ifeq (${ADK_MAKE_PARALLEL},y)
UCLIBC_MAKEOPTS+= -j${ADK_MAKE_JOBS}
endif
+UCLIBCCFG=uclibc.config
+ifeq ($(ADK_TARGET_ENDIAN),little)
+UCLIBCCFG=uclibc.config.little
+endif
+ifeq ($(ADK_TARGET_ENDIAN),big)
+UCLIBCCFG=uclibc.config.big
+endif
+
$(WRKBUILD)/.headers:
$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak
sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${STAGING_TARGET_DIR}/usr/include\"' \
- $(TOPDIR)/target/$(ADK_TARGET_ARCH)/uclibc.config >${WRKBUILD}/.config
+ $(TOPDIR)/target/$(ADK_TARGET_ARCH)/$(UCLIBCCFG) >${WRKBUILD}/.config
ifneq ($(ADK_DEBUG),)
$(SED) 's,DOSTRIP,DODEBUG,' ${WRKBUILD}/.config
endif