ソースを参照

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 年 前
コミット
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) \