summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-02-20 17:19:15 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2010-02-20 17:19:15 +0100
commit0097a8249ca2d1a498b457019db15d3540a259f3 (patch)
tree34aeca86734675d22f566f11c35118f0e93df20b /toolchain
parentdb287e1579a46cdc8d8d6e1ef10455d2b1f10f22 (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.
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/eglibc/Makefile10
-rw-r--r--toolchain/glibc/Makefile13
-rw-r--r--toolchain/glibc/Makefile.inc2
-rw-r--r--toolchain/glibc/patches/longjmp_chk.patch56
4 files changed, 59 insertions, 22 deletions
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) \