Kaynağa Gözat

fix compile for arm target

Waldemar Brodkorb 12 yıl önce
ebeveyn
işleme
36c4d46389

+ 1 - 1
jtools/Makefile

@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 TARGETS:=
 ifneq ($(ADK_PACKAGE_OPENJDK),)
 # jikes is for ant
-TARGETS+=fastjar gcj ecj jikes classpath jamvm ant openjdk
+TARGETS+=fastjar gcj ecj jikes classpath jamvm ant openjdk qemu
 endif
 
 TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS))

+ 32 - 0
jtools/qemu/Makefile

@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=		qemu
+PKG_VERSION:=		0.14.1
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		b6c713a8db638e173af53a62d5178640
+PKG_SITES:=		http://download.savannah.gnu.org/releases/qemu/
+
+include ../rules.mk
+
+install: ${STAGING_JAVA_HOST_DIR}/usr/bin/qemu-arm
+
+$(WRKBUILD)/.configured: ${WRKDIST}/.prepared
+	(cd $(WRKBUILD); ./configure --prefix=/usr \
+				--host-cc=$(CC_FOR_BUILD) \
+				--disable-system \
+				--disable-sdl \
+				--target-list=arm-linux-user \
+	)
+	touch $@
+
+$(WRKBUILD)/.compiled: ${WRKDIST}/.configured
+	${MAKE} -C ${WRKBUILD} $(MAKE_TRACE)
+	touch $@
+
+${STAGING_JAVA_HOST_DIR}/usr/bin/qemu-arm: $(WRKBUILD)/.compiled
+	${MAKE} -C ${WRKBUILD} DESTDIR=$(STAGING_JAVA_HOST_DIR) install $(MAKE_TRACE)
+
+include $(TOPDIR)/mk/tools.mk

+ 1 - 1
mk/build.mk

@@ -266,7 +266,7 @@ ifeq ($(filter-out distclean,${MAKECMDGOALS}),)
 include ${TOPDIR}/mk/vars.mk
 else
 include $(TOPDIR)/prereq.mk
-export BASH MAKE LANGUAGE LC_ALL OStype PATH CC_FOR_BUILD
+export BASH MAKE LANGUAGE LC_ALL OStype PATH CC_FOR_BUILD QEMU
 endif
 
 all: menuconfig

+ 6 - 1
mk/vars.mk

@@ -47,6 +47,10 @@ TARGET_PATH=		${SCRIPT_DIR}:${TOOLS_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_
 REAL_GNU_TARGET_NAME=	$(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX)
 GNU_TARGET_NAME=	$(CPU_ARCH)-$(ADK_VENDOR)-linux
 
+ifeq ($(CPU_ARCH),arm)
+QEMU:=			qemu-arm
+endif
+
 ifeq ($(ADK_NATIVE),y) 
 TARGET_CROSS:=
 TARGET_COMPILER_PREFIX?=
@@ -138,7 +142,8 @@ TARGET_CONFIGURE_OPTS=	PATH='${TARGET_PATH}' \
 HOST_CONFIGURE_OPTS=	CC_FOR_BUILD='${CC_FOR_BUILD}' \
 			CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \
 			CFLAGS_FOR_BUILD='${CFLAGS_FOR_BUILD}' \
-			LDFLAGS_FOR_BUILD='${LDFLAGS_FOR_BUILD}'
+			LDFLAGS_FOR_BUILD='${LDFLAGS_FOR_BUILD}' \
+			QEMU='$(QEMU)'
 
 PKG_SUFFIX:=		$(strip $(subst ",, $(ADK_PACKAGE_SUFFIX)))
 

+ 2 - 0
package/openjdk/Makefile

@@ -26,6 +26,8 @@ PKG_SITES:=		http://download.java.net/openjdk/jdk6/promoted/b22/ \
 
 #PKG_CFLINE_OPENJDK:=	depends on ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC && !ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 PKG_HOST_DEPENDS:=	!darwin !cygwin !openbsd !netbsd !freebsd
+PKG_ARCH_DEPENDS:=	arm mips x86 x86_64
+PKG_SYSTEM_DEPENDS:=	!lemote-yeelong !linksys-ag241 !fon-fon2100
 
 # autotools infrastructure for OpenJDK
 ICEDTEA_NAME:=		icedtea6

+ 13 - 0
package/openjdk/patches/dlopen-RTLD_NOLOAD.patch

@@ -0,0 +1,13 @@
+the option RTLOD_NOLOAD is not portable. (not available in uClibc)
+https://evolvis.org/scm/viewvc.php/jalimo/trunk/oe-overlay/packages/openjdk/openjdk-6-6b18-1.8/icedtea-jdk-RTLD_NOLOAD.patch?revision=840&view=markup&pathrev=867
+--- w-openjdk-6.orig/openjdk-6/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c	2011-02-28 17:06:50.000000000 +0100
++++ w-openjdk-6/openjdk-6/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c	2011-08-10 14:41:26.700571862 +0200
+@@ -51,7 +51,7 @@
+ {
+     const char *libName = (*env)->GetStringUTFChars(env, jLibName, NULL);
+     // look up existing handle only, do not load
+-    void *hModule = dlopen(libName, RTLD_NOLOAD);
++    void *hModule = dlopen(libName, RTLD_LAZY);
+     dprintf2("-handle for %s: %u\n", libName, hModule);
+     (*env)->ReleaseStringUTFChars(env, jLibName, libName);
+     return (jlong)hModule;

+ 26 - 0
package/openjdk/patches/icedtea-arm-mkbc.patch

@@ -0,0 +1,26 @@
+--- w-openjdk-6-1.orig/icedtea6-1.10/patches/arm.patch	2011-02-23 23:32:32.909601440 +0100
++++ w-openjdk-6-1/icedtea6-1.10/patches/arm.patch	2011-08-09 20:05:56.721765260 +0200
+@@ -25,7 +25,7 @@
+ +
+ +offsets_arm.s:	mkoffsets
+ +	@echo Generating assembler offsets
+-+	./mkoffsets > $@
+++	$(QEMU) ./mkoffsets > $@
+ +
+ +bytecodes_arm.s: bytecodes_arm.def mkbc
+ +	@echo Generatine ARM assembler bytecode sequences
+@@ -33,12 +33,12 @@
+ +
+ +mkbc:	$(GAMMADIR)/tools/mkbc.c
+ +	@echo Compiling mkbc tool
+-+	$(CC_COMPILE) -o $@ $< $(COMPILE_DONE)
+++	$(CC_FOR_BUILD) -o $@ $< $(COMPILE_DONE)
+ +
+ +mkoffsets:	asm_helper.cpp
+ +	@echo Compiling offset generator
+ +	$(QUIETLY) $(REMOVE_TARGET)
+-+	$(CC_COMPILE) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE)
+++	$(CC_COMPILE) -static -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE)
+ +
+ +endif
+ +

+ 20 - 11
package/openjdk/patches/inc-path.patch

@@ -1,14 +1,3 @@
---- w-openjdk-6-1.orig/openjdk-6/jdk/make/common/Defs.gmk	2011-02-28 17:06:10.000000000 +0100
-+++ w-openjdk-6-1/openjdk-6/jdk/make/common/Defs.gmk	2011-08-07 21:21:49.335286149 +0200
-@@ -173,7 +173,7 @@
-     ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
-       FREETYPE_HEADERS_PATH = $(DEVTOOLS_FT_DIR)/include
-     else
--      FREETYPE_HEADERS_PATH = /usr/include
-+      FREETYPE_HEADERS_PATH = /usr/include/disabled
-     endif
-   endif
- endif
 --- w-openjdk-6-1.orig/openjdk-6/jdk/make/common/shared/Defs-linux.gmk	2011-02-28 17:06:10.000000000 +0100
 +++ w-openjdk-6-1/openjdk-6/jdk/make/common/shared/Defs-linux.gmk	2011-08-08 10:07:58.975256728 +0200
 @@ -170,7 +170,7 @@
@@ -20,3 +9,23 @@
  
  # Import JDK images allow for partial builds, components not built are
  #    imported (or copied from) these import areas when needed.
+--- w-openjdk-6-1.orig/openjdk-6/jdk/make/common/Defs.gmk	2011-02-28 17:06:10.000000000 +0100
++++ w-openjdk-6-1/openjdk-6/jdk/make/common/Defs.gmk	2011-08-10 18:50:53.248017538 +0200
+@@ -156,7 +156,7 @@
+     ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
+       FREETYPE_LIB_PATH = $(DEVTOOLS_FT_DIR)/lib
+     else
+-      FREETYPE_LIB_PATH = /usr/lib
++      FREETYPE_LIB_PATH = /usr/lib/disabled
+       USING_SYSTEM_FT_LIB=true
+     endif
+   endif 
+@@ -173,7 +173,7 @@
+     ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
+       FREETYPE_HEADERS_PATH = $(DEVTOOLS_FT_DIR)/include
+     else
+-      FREETYPE_HEADERS_PATH = /usr/include
++      FREETYPE_HEADERS_PATH = /usr/include/disabled
+     endif
+   endif
+ endif