Browse Source

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.
Waldemar Brodkorb 14 years ago
parent
commit
0097a8249c

+ 4 - 4
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++

+ 0 - 10
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: 

+ 2 - 11
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 $@
 

+ 1 - 1
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/}

+ 56 - 0
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) \