building icedtea-7 on ARM

Chris Phillips ChrisPhi at redhat.com
Fri Feb 21 07:40:29 PST 2014


On 21/02/14 10:24 AM, Grant wrote:
>>>>>>>>> Has the new ARM stuff made it in?
>>>>>>>>>
>>>>>>>>> - Grant
>>>>>>>> Its in the pipe, probably by next Monday...
>>>>>>>>
>>>>>>>> Chris
>>>>>>>>
>>>>>>> http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/rev/0a9100ca5a41
>>>>>>> --
>>>>>>> Andrew :)
>>>>>>
>>>>>> Many thanks Andrew and Chris!  I'm compiling now.  Tarballs haven't
>>>>>> changed, just the patch needs to be applied?  Any idea when new
>>>>>> tarballs will be ready?
>>>>>>
>>>>>> - Grant
>>>>>
>>>>> I have the new tarballs and I get:
>>>>>
>>>>> Checking patches/boot/arm32.patch
>>>>
>>>> Or maybe the patch isn't necessary with the new tarballs?  I'll find out
>>>> soon.
>>>>
>>>> - Grant
>>>
>>> I get the following without the patch:
>>>
>>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
>>> INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
>>> INFO: STRIP_POLICY=no_strip
>>> INFO: ZIP_DEBUGINFO_FILES=1
>>> make[3]: Entering directory
>>> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot/jdk/make'
>>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
>>> INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
>>> INFO: STRIP_POLICY=no_strip
>>> INFO: ZIP_DEBUGINFO_FILES=1
>>> make[3]: *** No rule to make target `specified'.  Stop.
>>>
>>> - Grant
>>>
>> What/how are you building, because I see no such patch?
>
> I'm building with icedtea-7.9999.ebuild on Gentoo.  I added the patch
> myself after you referenced it earlier:
>
> http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/rev/0a9100ca5a41
>
> But it wouldn't apply so I'm thinking the new tarballs already
> incorporate it.  The build failure below is without that patch.
>
>> I'm not sure what your failure is there because you haven't included enough of the log.
> Is this enough info?
>
> make[1]: Entering directory
> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot'
> /usr/bin/make SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
> make[2]: Entering directory
> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot'
> ( cd  ./jdk/make && \
>    /usr/bin/make sanity HOTSPOT_IMPORT_CHECK=false
> LANGTOOLS_TOPDIR=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot/langtools
> JDK_TOPDIR=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot/jdk
> JDK_MAKE_SHARED_DIR=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot/jdk/make/common/shared
> EXTERNALSANITYCONTROL=true SOURCE_LANGUAGE_VERSION=7
> TARGET_CLASS_VERSION=7 MILESTONE=fcs BUILD_NUMBER=b03
> JDK_BUILD_NUMBER=b03 FULL_VERSION=1.7.0_60-b03
> PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.7.0_60 JDK_MKTG_VERSION=7u60
> JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0
> PREVIOUS_MAJOR_VERSION=1 PREVIOUS_MINOR_VERSION=6
> PREVIOUS_MICRO_VERSION=0 STATIC_CXX=false PAX_COMMAND=not specified
> PAX_COMMAND_ARGS="-m" ARCH_DATA_MODEL=32 COOKED_JDK_UPDATE_VERSION=600
> COOKED_BUILD_NUMBER=3 ANT_HOME="/usr/share/ant"
> ALT_OUTPUTDIR=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk.build-boot
> ALT_LANGTOOLS_DIST=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk.build-boot/langtools/dist
> ALT_CORBA_DIST=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk.build-boot/corba/dist
> ALT_JAXP_DIST=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk.build-boot/jaxp/dist
> ALT_JAXWS_DIST=/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk.build-boot/jaxws/dist
> BUILD_HOTSPOT=false PARALLEL_COMPILE_JOBS=1 ; )
> INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
> INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
> INFO: STRIP_POLICY=no_strip
> INFO: ZIP_DEBUGINFO_FILES=1
> make[3]: Entering directory
> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot/jdk/make'
> INFO: ENABLE_FULL_DEBUG_SYMBOLS=1
> INFO: /usr/bin/objcopy cmd found so will create .debuginfo files.
> INFO: STRIP_POLICY=no_strip
> INFO: ZIP_DEBUGINFO_FILES=1
> make[3]: *** No rule to make target `specified'.  Stop.
> make[3]: Leaving directory
> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot/jdk/make'
> make[2]: *** [jdk-sanity] Error 2
> make[2]: Leaving directory
> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot'
> make[1]: *** [jdk_only] Error 2
> make[1]: Leaving directory
> `/var/tmp/portage/dev-java/icedtea-7.9999-r2/work/icedtea-9999/openjdk-boot'
> make: *** [stamps/icedtea-boot.stamp] Error 2
>
> - Grant
On fedora17 arm (trimslice) I get the same as above ... here's the 
configure i used :

./configure --enable-zero --enable-arm32-jit --disable-system-lcms 
--disable-system-pcsc --disable-bootstrap

Not sure why make in jdk is trying to build "specified"? will try to 
determine later.

Chris
PS
I can build from the icedtea7-forest repos with my "generic" build 
script, but in order to
build with arm32jit I have to patch zeroshark.make [attached] , 
otherwise the c flags and -I's
still don't make it into the proper places so the jvm link fails. (patch
  also is required to just build hotspot on its own as I try to do 
regularly given compile time
on my trimslowasmice  :)

PPS
The failure you saw in pulseaudio may be the same as I am looking at in 
the javac langtools
build, at least it goes away when you specify -Xint (which still uses 
the arm32 asm cpp interpreter
but not the thumb2 compiler code.
-------------- next part --------------
diff --git a/make/linux/makefiles/zeroshark.make b/make/linux/makefiles/zeroshark.make
--- a/make/linux/makefiles/zeroshark.make
+++ b/make/linux/makefiles/zeroshark.make
@@ -43,7 +43,7 @@
 
 bytecodes_arm.s: bytecodes_arm.def mkbc
 	@echo Generating ARM assembler bytecode sequences
-	$(CXX_COMPILE) -E - < $< | ./mkbc - $@ $(COMPILE_DONE)
+	$(CC_COMPILE) $(CFLAGS) -E -x c++ - < $< | ./mkbc - $@ $(COMPILE_DONE)
 
 mkbc:	$(GAMMADIR)/tools/mkbc.c
 	@echo Compiling mkbc tool
@@ -52,7 +52,7 @@
 mkoffsets:	asm_helper.cpp
 	@echo Compiling offset generator
 	$(QUIETLY) $(REMOVE_TARGET)
-	$(CXX_COMPILE) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE)
+	$(CC_COMPILE) $(CFLAGS) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE)
 
 endif
 endif
@@ -60,7 +60,7 @@
 %.o: %.S
 	@echo Assembling $<
 	$(QUIETLY) $(REMOVE_TARGET)
-	$(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
+	$(COMPILE.CC) $(CFLAGS) -o $@ $< $(COMPILE_DONE)
 
 # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
 OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)


More information about the distro-pkg-dev mailing list