Prechádzať zdrojové kódy

fix openjdk7 toolchain workaround, add symlinks to reduce size of toolchains

Waldemar Brodkorb 10 rokov pred
rodič
commit
4e93572589

+ 4 - 1
TODO

@@ -1,6 +1,9 @@
+- cleanup toolchain building, add toolchain archiv creation target
+- update uclibc to git
+- update gcc to 4.8.2
+- port opkg with gpg signing
 - add grsec kernel patch
 - microblaze: add cfgfs partition to dts, add partition to spartan dts
-- use host-tools infrastructure for openjdk7
 - evaluate libguestfs for image creation
 - check for gcc and SSP again
 - port w3m

+ 1 - 10
package/libstdcxx/Makefile

@@ -16,12 +16,6 @@ endif
 endif
 endif
 
-ifeq ($(ADK_LINUX_MICROBLAZE),y)
-LIBSTDCXX_VER:=		18
-else
-LIBSTDCXX_VER:=		17
-endif
-
 PKG_NAME:=		libstdcxx
 PKG_DESCR:=		C++ support library
 PKG_SECTION:=		libs
@@ -41,10 +35,7 @@ do-install:
 ifeq ($(ADK_NATIVE),y)
 	$(CP) /usr/lib/libstdc++.so* ${IDIR_LIBSTDCXX}/usr/lib
 else
-	(cd ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}; ln -sf libstdc++.so.6.0.${LIBSTDCXX_VER} libstdc++.so.6)
-	(cd ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}; ln -sf libstdc++.so.6.0.${LIBSTDCXX_VER} libstdc++.so)
-	(cd ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/; ln -sf libstdc++.so.6.0.${LIBSTDCXX_VER} libstdc++.so)
-	$(CP) ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/libstdc++.so.6.0.${LIBSTDCXX_VER} ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}
+	$(CP) ${STAGING_TARGET_DIR}/${ADK_TARGET_LIBC_PATH}/libstdc++.so* ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}
 	-@rm ${IDIR_LIBSTDCXX}/usr/${ADK_TARGET_LIBC_PATH}/libstdc++.so.*-gdb.py
 endif
 

+ 1 - 1
package/openjdk7/Makefile

@@ -83,7 +83,7 @@ CONFIGURE_ARGS+=	$(CONFIGURE_COMMON)
 CONFIGURE_ARGS+=	--disable-bootstrap
 
 CONFIGURE_ENV+=		LD_LIBRARY_PATH=$(STAGING_HOST_DIR)/usr/lib
-MAKE_ENV+=		ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME) \
+MAKE_ENV+=		ALT_COMPILER_PATH=$(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/bin \
 			ALT_OPENWIN_HOME=$(STAGING_DIR)/usr/ \
 			ALT_CUPS_HEADERS_PATH=$(STAGING_DIR)/usr/include/ \
 			ALT_FREETYPE_HEADERS_PATH=$(STAGING_DIR)/usr/include/ \

+ 14 - 6
toolchain/gcc/Makefile

@@ -9,6 +9,7 @@ TARGET_CFLAGS:=	$(filter-out -fstack-protector,$(TARGET_CFLAGS))
 include Makefile.inc
 
 GCC_CONFOPTS=		--prefix=$(STAGING_HOST_DIR) \
+			--with-bugurl="http://www.openadk.org/" \
 			--build=$(GNU_HOST_NAME) \
 			--host=$(GNU_HOST_NAME) \
 			--target=$(REAL_GNU_TARGET_NAME) \
@@ -118,7 +119,6 @@ endif
 			${GCC_CONFOPTS} \
 			--enable-languages=c \
 			--disable-shared \
-			--with-newlib \
 			--without-headers
 	touch $@
 
@@ -166,9 +166,7 @@ $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured
 
 $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
 	PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_FINAL) install
-	# workaround if you cross-compile binutils
-	@-rm $(STAGING_TARGET_DIR)/lib/libiberty.a $(STAGING_TARGET_DIR)/usr/lib/libiberty.a
-	# Set up the symlinks to enable lying about target name.
+	# Set up the symlinks to enable lying about target name
 	set -e; \
 	cd $(STAGING_HOST_DIR); \
 		ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \
@@ -177,8 +175,18 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
 			ln -sf $${app} \
 				$(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \
 		done;
-	# workaround for openjdk
-	cd $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/bin ; cp * ..
+	# remove duplicate tools
+	set -e; \
+	cd $(STAGING_HOST_DIR)/bin; \
+		for app in $(REAL_GNU_TARGET_NAME)-* ; do \
+			ln -sf ../$(REAL_GNU_TARGET_NAME)/bin/$${app##$(REAL_GNU_TARGET_NAME)-} $${app}; \
+		done;
+	# setup symlink, so that gcc/g++ find cc1plus
+	(cd $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/ && \
+		ln -sf ../libexec .)
+	# setup symlink, so that gcc/g++ find stddef.h
+	(cd $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib/ && \
+		ln -sf ../../host_${CPU_ARCH}_${ADK_TARGET_SUFFIX}_${ADK_TARGET_LIBC}/lib/gcc .)
 	# fix linking g++ apps with libtool
 	@-test -d $(STAGING_TARGET_DIR)/lib32 && \
 		cd $(STAGING_TARGET_DIR)/lib32 && \

+ 2 - 0
toolchain/kernel-headers/Makefile

@@ -7,6 +7,8 @@ include $(TOPDIR)/mk/linux.mk
 include ${TOPDIR}/mk/buildhlp.mk
 
 $(WRKBUILD)/.headers:
+	$(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \
+		headers_check
 	$(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \
 		INSTALL_HDR_PATH=$(STAGING_DIR)/usr \
 		headers_install