diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-02-20 17:19:15 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-02-20 17:19:15 +0100 |
commit | 0097a8249ca2d1a498b457019db15d3540a259f3 (patch) | |
tree | 34aeca86734675d22f566f11c35118f0e93df20b | |
parent | db287e1579a46cdc8d8d6e1ef10455d2b1f10f22 (diff) |
add vendor string "openadk" to toolchain triplet
With this change you can compile toolchains even
when host cpu arch is identical to target cpu arch.
-rw-r--r-- | mk/vars.mk | 8 | ||||
-rw-r--r-- | toolchain/eglibc/Makefile | 10 | ||||
-rw-r--r-- | toolchain/glibc/Makefile | 13 | ||||
-rw-r--r-- | toolchain/glibc/Makefile.inc | 2 | ||||
-rw-r--r-- | toolchain/glibc/patches/longjmp_chk.patch | 56 |
5 files changed, 63 insertions, 26 deletions
diff --git a/mk/vars.mk b/mk/vars.mk index 2151348b0..345531b3f 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -37,15 +37,15 @@ PACKAGE_DIR:= $(BIN_DIR)/packages TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET}_${ADK_LIBC} TARGET_DIR_PFX:= $(BASE_DIR)/root_* TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TOOLS}/bin:${STAGING_DIR}/scripts:${_PATH} -REAL_GNU_TARGET_NAME= $(CPU_ARCH)-linux-$(ADK_TARGET_SUFFIX) -GNU_TARGET_NAME= $(CPU_ARCH)-linux +REAL_GNU_TARGET_NAME= $(CPU_ARCH)-openadk-linux-$(ADK_TARGET_SUFFIX) +GNU_TARGET_NAME= $(CPU_ARCH)-openadk-linux TOOLCHAIN_SYSROOT:= $(TOOLCHAIN_BUILD_DIR)/libc_dev ifeq ($(ADK_NATIVE),y) -TARGET_COMPILER_PREFIX?= TARGET_CROSS:= +TARGET_COMPILER_PREFIX?= else +TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(REAL_GNU_TARGET_NAME)- TARGET_COMPILER_PREFIX?=${TARGET_CROSS} -TARGET_CROSS:= $(STAGING_TOOLS)/bin/$(CPU_ARCH)-linux-$(ADK_TARGET_SUFFIX)- endif TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++ diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile index aeec91c90..1605113c6 100644 --- a/toolchain/eglibc/Makefile +++ b/toolchain/eglibc/Makefile @@ -60,16 +60,6 @@ $(WRKBUILD)/.headers: $(WRKBUILD)/.headers_configure PATH='${TARGET_PATH}' \ $(MAKE) -C $(EGLIBC_BUILD_DIR_INITIAL) \ install-headers install-bootstrap-headers=yes - PATH='${TARGET_PATH}' \ - $(MAKE) -C $(EGLIBC_BUILD_DIR_INITIAL) \ - csu/subdir_lib - ( cd $(EGLIBC_BUILD_DIR_INITIAL); \ - $(CP) csu/crt1.o csu/crti.o csu/crtn.o \ - $(TOOLCHAIN_SYSROOT)/usr/lib \ - ); - PATH='${TARGET_PATH}' \ - $(TARGET_CC) -nostdlib -nostartfiles -shared -x c /dev/null \ - -o $(TOOLCHAIN_SYSROOT)/usr/lib/libc.so touch $@ $(WRKBUILD)/.configured: diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile index 978794dc9..2058c41d4 100644 --- a/toolchain/glibc/Makefile +++ b/toolchain/glibc/Makefile @@ -63,16 +63,6 @@ $(WRKBUILD)/.headers: $(WRKBUILD)/.headers_configure install_root=$(TOOLCHAIN_SYSROOT) \ install-headers touch $(TOOLCHAIN_SYSROOT)/usr/include/gnu/stubs.h - PATH='${TARGET_PATH}' \ - $(MAKE) -C $(GLIBC_BUILD_DIR_INITIAL) \ - csu/subdir_lib - ( cd $(GLIBC_BUILD_DIR_INITIAL); \ - $(CP) csu/crt1.o csu/crti.o csu/crtn.o \ - $(TOOLCHAIN_SYSROOT)/usr/lib \ - ); - PATH='${TARGET_PATH}' \ - $(TARGET_CC) -nostdlib -nostartfiles -shared -x c /dev/null \ - -o $(TOOLCHAIN_SYSROOT)/usr/lib/libc.so touch $@ $(WRKBUILD)/.configured: @@ -92,7 +82,8 @@ $(WRKBUILD)/.compiled: touch $@ $(WRKBUILD)/.installed: - ${GLIBC_ENV} $(MAKE) -C $(GLIBC_BUILD_DIR_FINAL) install_root=$(STAGING_DIR) install + ${GLIBC_ENV} $(MAKE) -C $(GLIBC_BUILD_DIR_FINAL) \ + install_root=$(STAGING_DIR) install touch $(STAGING_DIR)/usr/include/gnu/stubs.h touch $@ diff --git a/toolchain/glibc/Makefile.inc b/toolchain/glibc/Makefile.inc index 596c71955..23659af5d 100644 --- a/toolchain/glibc/Makefile.inc +++ b/toolchain/glibc/Makefile.inc @@ -2,7 +2,7 @@ # material, please see the LICENCE file in the top-level directory. PKG_NAME:= glibc -PKG_VERSION:= 2.11 +PKG_VERSION:= 2.11.1 PKG_RELEASE:= 1 PKG_MD5SUM:= 55d50abb2d7c366bde6fb5e35e681f9b PKG_SITES:= ${MASTER_SITE_GNU:=glibc/} diff --git a/toolchain/glibc/patches/longjmp_chk.patch b/toolchain/glibc/patches/longjmp_chk.patch new file mode 100644 index 000000000..b2590460c --- /dev/null +++ b/toolchain/glibc/patches/longjmp_chk.patch @@ -0,0 +1,56 @@ +diff -Nur glibc-2.11.orig/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S glibc-2.11/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S +--- glibc-2.11.orig/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2009-10-30 18:17:08.000000000 +0100 ++++ glibc-2.11/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S 2010-02-19 08:06:22.000000000 +0100 +@@ -33,10 +33,10 @@ + cfi_register(%ebx,%ecx); \ + LOAD_PIC_REG (bx); \ + leal longjmp_msg@GOTOFF(%ebx), %eax; \ +- call __GI___fortify_fail@PLT ++ call HIDDEN_JUMPTARGET(__fortify_fail) + #else + # define CALL_FAIL movl $longjmp_msg, %eax; \ +- call __fortify_fail ++ call HIDDEN_JUMPTARGET(__fortify_fail) + #endif + + +diff -Nur glibc-2.11.orig/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S glibc-2.11/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S +--- glibc-2.11.orig/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S 2009-10-30 18:17:08.000000000 +0100 ++++ glibc-2.11/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S 2010-02-19 08:06:22.000000000 +0100 +@@ -30,19 +30,13 @@ + + #define __longjmp ____longjmp_chk + +-#ifdef PIC +-# define CALL_FAIL __GI___fortify_fail +-#else +-# define CALL_FAIL __fortify_fail +-#endif +- + #define CHECK_RSP(reg) \ + cmp.ltu p0, p8 = reg, r12; \ + (p8) br.cond.dpnt .Lok;; \ + addl r28 = @ltoffx(longjmp_msg#), r1;; \ + ld8.mov r28 = [r28], longjmp_msg#;; \ + ld8 out0 = [r28]; \ +- br.call.sptk.many b0 = CALL_FAIL#;; \ ++ br.call.sptk.many b0 = HIDDEN_JUMPTARGET(__fortify_fail)#;; \ + .Lok: + + #include "__longjmp.S" +diff -Nur glibc-2.11.orig/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S glibc-2.11/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S +--- glibc-2.11.orig/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2009-10-30 18:17:08.000000000 +0100 ++++ glibc-2.11/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S 2010-02-19 08:06:22.000000000 +0100 +@@ -31,10 +31,10 @@ + + #ifdef PIC + # define CALL_FAIL leaq longjmp_msg(%rip), %rdi; \ +- call __GI___fortify_fail ++ call HIDDEN_JUMPTARGET(__fortify_fail) + #else + # define CALL_FAIL movq $longjmp_msg, %rdi; \ +- call __fortify_fail ++ call HIDDEN_JUMPTARGET(__fortify_fail) + #endif + + #define CHECK_RSP(reg) \ |