summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <mail@waldemar-brodkorb.de>2012-10-05 14:49:13 +0200
committerWaldemar Brodkorb <mail@waldemar-brodkorb.de>2012-10-05 14:49:13 +0200
commitf3db9f0c592ad982d6702ce8314888d97e2de68b (patch)
tree221a3d6adf72e19928c916ece41040ca46d95441 /toolchain
parent6c6f588279720346ef20948130884437b0cd9e6d (diff)
make libgcc static for busybox, make librt separate package, remove dependency to libtirpc, disable inetd, add preliminary multilib support (not working right now),enable 32/64 bit kernel support for x86_64
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/binutils/Makefile2
-rw-r--r--toolchain/gcc/Makefile9
-rw-r--r--toolchain/gcc/patches/4.7.2/no-lib64.patch92
-rw-r--r--toolchain/uClibc/Makefile28
4 files changed, 34 insertions, 97 deletions
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 36e5b51d6..056aff065 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -12,7 +12,7 @@ else
CONFOPTS+= --disable-libssp
endif
-ifneq ($(strip $(ADK_LINUX_64)$(ADK_64BIT_KERNEL)),)
+ifneq ($(strip $(ADK_LINUX_64)$(ADK_TARGET_KERNEL64)),)
CONFOPTS+= --enable-64-bit-bfd
endif
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index a9f361ffe..a61d5eaa7 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -17,7 +17,6 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \
--with-libelf=$(STAGING_HOST_DIR) \
--disable-__cxa_atexit \
--with-gnu-ld \
- --disable-multilib \
--disable-libmudflap \
--disable-libgomp \
--disable-decimal-float \
@@ -34,10 +33,12 @@ else
GCC_CONFOPTS+= --disable-sjlj-exceptions
endif
-ifeq ($(ADK_64BIT_KERNEL),y)
-GCC_CONFOPTS+= --enable-targets=all
+ifeq ($(ADK_TARGET_WITH_MULTILIB),y)
+GCC_CONFOPTS+= --with-multilib-list=$(ADK_MULTILIB_TARGET) \
+ --enable-multilib
else
-GCC_CONFOPTS+= --disable-biarch
+GCC_CONFOPTS+= --disable-biarch \
+ --disable-multilib
endif
ifeq ($(ADK_TOOLCHAIN_GCC_SSP),y)
diff --git a/toolchain/gcc/patches/4.7.2/no-lib64.patch b/toolchain/gcc/patches/4.7.2/no-lib64.patch
deleted file mode 100644
index c567a4bec..000000000
--- a/toolchain/gcc/patches/4.7.2/no-lib64.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-diff -Nur gcc-4.7.2.orig/gcc/config/i386/linux64.h gcc-4.7.2/gcc/config/i386/linux64.h
---- gcc-4.7.2.orig/gcc/config/i386/linux64.h 2011-07-07 17:38:34.000000000 +0200
-+++ gcc-4.7.2/gcc/config/i386/linux64.h 2012-09-22 12:48:17.000000000 +0200
-@@ -29,5 +29,5 @@
- #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
-
- #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
--#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKERX32 "/lib/ld-linux-so.2"
-diff -Nur gcc-4.7.2.orig/gcc/config/i386/t-linux64 gcc-4.7.2/gcc/config/i386/t-linux64
---- gcc-4.7.2.orig/gcc/config/i386/t-linux64 2011-11-02 16:23:48.000000000 +0100
-+++ gcc-4.7.2/gcc/config/i386/t-linux64 2012-09-22 12:46:07.000000000 +0200
-@@ -34,6 +34,6 @@
- comma=,
- MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
- MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
--MULTILIB_OSDIRNAMES = m64=../lib64
--MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
--MULTILIB_OSDIRNAMES+= mx32=../libx32
-+MULTILIB_OSDIRNAMES = m64=../lib
-+MULTILIB_OSDIRNAMES+= m32=../lib
-+MULTILIB_OSDIRNAMES+= mx32=../lib
-diff -Nur gcc-4.7.2.orig/gcc/config/mips/linux64.h gcc-4.7.2/gcc/config/mips/linux64.h
---- gcc-4.7.2.orig/gcc/config/mips/linux64.h 2011-07-19 20:00:27.000000000 +0200
-+++ gcc-4.7.2/gcc/config/mips/linux64.h 2012-09-22 12:44:16.000000000 +0200
-@@ -24,9 +24,9 @@
- #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
-
- #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 "/lib/ld.so.1"
-+#define UCLIBC_DYNAMIC_LINKERN32 "/lib/ld-uClibc.so.0"
- #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
- #define GNU_USER_DYNAMIC_LINKERN32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
-diff -Nur gcc-4.7.2.orig/gcc/config/mips/t-linux64 gcc-4.7.2/gcc/config/mips/t-linux64
---- gcc-4.7.2.orig/gcc/config/mips/t-linux64 2011-11-02 15:33:56.000000000 +0100
-+++ gcc-4.7.2/gcc/config/mips/t-linux64 2012-09-22 12:48:39.000000000 +0200
-@@ -18,4 +18,4 @@
-
- MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
- MULTILIB_DIRNAMES = n32 32 64
--MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
-+MULTILIB_OSDIRNAMES = ../lib ../lib ../lib
-diff -Nur gcc-4.7.2.orig/gcc/config/rs6000/linux64.h gcc-4.7.2/gcc/config/rs6000/linux64.h
---- gcc-4.7.2.orig/gcc/config/rs6000/linux64.h 2012-03-12 17:16:51.000000000 +0100
-+++ gcc-4.7.2/gcc/config/rs6000/linux64.h 2012-09-22 12:44:16.000000000 +0200
-@@ -359,7 +359,7 @@
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
-
- #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
- #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
- #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
- #if DEFAULT_LIBC == LIBC_UCLIBC
-diff -Nur gcc-4.7.2.orig/gcc/config/rs6000/t-linux64 gcc-4.7.2/gcc/config/rs6000/t-linux64
---- gcc-4.7.2.orig/gcc/config/rs6000/t-linux64 2011-11-02 16:23:48.000000000 +0100
-+++ gcc-4.7.2/gcc/config/rs6000/t-linux64 2012-09-22 12:44:16.000000000 +0200
-@@ -31,5 +31,5 @@
- MULTILIB_EXTRA_OPTS = fPIC mstrict-align
- MULTILIB_EXCEPTIONS = m64/msoft-float
- MULTILIB_EXCLUSIONS = m64/!m32/msoft-float
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
-+MULTILIB_OSDIRNAMES = ../lib $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
- MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
-diff -Nur gcc-4.7.2.orig/gcc/config/sparc/linux64.h gcc-4.7.2/gcc/config/sparc/linux64.h
---- gcc-4.7.2.orig/gcc/config/sparc/linux64.h 2011-11-12 02:05:07.000000000 +0100
-+++ gcc-4.7.2/gcc/config/sparc/linux64.h 2012-09-22 12:44:16.000000000 +0200
-@@ -94,7 +94,7 @@
- done. */
-
- #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux.so.2"
-
- #ifdef SPARC_BI_ARCH
-
-diff -Nur gcc-4.7.2.orig/gcc/config/sparc/t-linux64 gcc-4.7.2/gcc/config/sparc/t-linux64
---- gcc-4.7.2.orig/gcc/config/sparc/t-linux64 2011-11-02 16:23:48.000000000 +0100
-+++ gcc-4.7.2/gcc/config/sparc/t-linux64 2012-09-22 12:49:43.000000000 +0200
-@@ -26,4 +26,4 @@
-
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_OSDIRNAMES = ../lib ../lib
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index a59805454..48279469e 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -83,6 +83,33 @@ endif
touch $(WRKBUILD)/.configured
touch $@
+ifeq ($(ADK_TARGET_WITH_MULTILIB),y)
+$(WRKBUILD)/.compiled:
+ $(MAKE) ${UCLIBC_MAKEOPTS} -C $(WRKBUILD) \
+ PREFIX= \
+ DEVEL_PREFIX=/ \
+ RUNTIME_PREFIX=/ \
+ HOSTCC="$(CC_FOR_BUILD)" \
+ CPU_CFLAGS="$(TARGET_CFLAGS)" \
+ MULTILIB_DIR=/$(ADK_TARGET_LIBC_PATH) \
+ all
+ touch $@
+
+$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
+ $(MAKE) -C $(WRKBUILD) \
+ PREFIX=$(STAGING_TARGET_DIR) \
+ DEVEL_PREFIX=/usr/ \
+ DEVEL_PREFIX_LIB=/ \
+ RUNTIME_PREFIX=/ \
+ CPU_CFLAGS="$(TARGET_CFLAGS)" \
+ MULTILIB_DIR=/$(ADK_TARGET_LIBC_PATH) \
+ install_dev install_runtime
+ rm -rf $(STAGING_TARGET_DIR)/$(ADK_TARGET_LIBC_PATH)/libc.so
+ ln -s libc.so.0 $(STAGING_TARGET_DIR)/$(ADK_TARGET_LIBC_PATH)/libc.so
+ touch $@
+
+else
+
$(WRKBUILD)/.compiled:
$(MAKE) ${UCLIBC_MAKEOPTS} -C $(WRKBUILD) \
PREFIX= \
@@ -114,5 +141,6 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.install_headers
rm -rf $(STAGING_TARGET_DIR)/lib/libc.so
ln -s libc.so.0 $(STAGING_TARGET_DIR)/lib/libc.so
touch $@
+endif
include ${TOPDIR}/mk/toolchain.mk