From owner-freebsd-java@FreeBSD.ORG Thu Nov 3 03:39:12 2011 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B4A7D1065676 for ; Thu, 3 Nov 2011 03:39:12 +0000 (UTC) (envelope-from glewis@eyesbeyond.com) Received: from misty.eyesbeyond.com (gerbercreations.com [71.39.140.16]) by mx1.freebsd.org (Postfix) with ESMTP id 5A38E8FC0C for ; Thu, 3 Nov 2011 03:39:12 +0000 (UTC) Received: from misty.eyesbeyond.com (localhost.eyesbeyond.com [127.0.0.1]) by misty.eyesbeyond.com (8.14.4/8.14.4) with ESMTP id pA33dB5l096244; Wed, 2 Nov 2011 20:39:11 -0700 (PDT) (envelope-from glewis@eyesbeyond.com) Received: (from glewis@localhost) by misty.eyesbeyond.com (8.14.4/8.14.4/Submit) id pA33dAGb096243; Wed, 2 Nov 2011 20:39:10 -0700 (PDT) (envelope-from glewis@eyesbeyond.com) X-Authentication-Warning: misty.eyesbeyond.com: glewis set sender to glewis@eyesbeyond.com using -f Date: Wed, 2 Nov 2011 20:39:10 -0700 From: Greg Lewis To: Ronald Klop Message-ID: <20111103033910.GA96008@misty.eyesbeyond.com> References: <20111025145744.GA31136@misty.eyesbeyond.com> <20111026041559.GA38377@misty.eyesbeyond.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-java@freebsd.org Subject: Re: Java on ARM processor? X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Nov 2011 03:39:12 -0000 On Mon, Oct 31, 2011 at 11:14:57PM +0100, Ronald Klop wrote: > On Wed, 26 Oct 2011 06:15:59 +0200, Greg Lewis > wrote: > > > On Tue, Oct 25, 2011 at 11:02:51PM +0200, Ronald Klop wrote: > >> On Tue, 25 Oct 2011 16:57:44 +0200, Greg Lewis > >> wrote: > >> > >> > On Tue, Oct 25, 2011 at 12:00:21AM +0200, Ronald Klop wrote: > >> >> Hi, > >> >> > >> >> My Sheevaplug is now running FreeBSD 9.0-RC1. > >> >> # uname -a > >> >> FreeBSD sheeva1.klop.ws 9.0-RC1 FreeBSD 9.0-RC1 #7: Tue Oct 18 > >> 00:57:30 > >> >> CEST 2011 > >> >> root@sjakie.klop.ws:/usr/obj/arm.arm/usr/src/sys/SHEEVAPLUG > >> >> arm > >> >> > >> >> Is there any chance of running Java on this machine? The openjdk6 > >> and 7 > >> >> ports say they are only for i386/amd64. > >> >> Does freebsd have a Zero/Shark port of the hotspot? > >> > > >> > It does, but it is likely in need of a little love as I don't think > >> > anyone > >> > has tried it out for a while. I'd suggest pulling directly from the > >> > bsd-port repo for OpenJDK7 and trying that. > >> > > >> > As always, the biggest problem is going to be bootstrapping. Since > >> there > >> > isn't an existing FreeBSD/arm binary of openjdk7 you'll need to work > >> > around > >> > that. There are a variety of ways you could tackle that. The most > >> > common > >> > is to set up an NFS mount with an i386 or amd64 machine and remotely > >> > execute > >> > all of the java bootstrap steps while the C/C++ compilation occurs > >> > locally. > >> > I can provide further information if you're interested. > >> > > >> > >> Yes, please. > >> I currently have: > >> - a mercurial checkout of bsd-port in /data/openjdk7/bsd-port > >> - cups-client from ports in /usr/local > >> - freetype2 from ports in /usr/local > >> - manually extracted apache-ant in /data/openjdk7/apache-ant-1.8.2 > >> > >> I have the same on amd64 as on arm. On amd64 I can build with > >> ALT_BOOTDIR=/usr/local/openjdk6. > > > > See this email for details: > > > > http://docs.freebsd.org/cgi/getmsg.cgi?fetch=89377+0+archive/2008/freebsd-java/20080203.freebsd-java > > > > It will need to be updated somewhat for openjdk7. I likely have an > > update > > on my sparc64 machine, but it's currently down :(. > > > > Note that you'll also need libffi from ports for Zero. > > > > Another option is cross-compiling on an x86, but I've never tried that. > > There are indications in the source that there is some support for this > > (look at CROSS_COMPILE_ARCH IIRC). > > > > Well. I have the NFS/SSH stuff sort of running now. I had to tune the > boot-java scripts. And /data/openjdk7 is my NFS exported dir. > If I build with this: > export JAVA_BOOTHOST=192.168.1.33 > export JAVA_BOOTDIR=/usr/local/openjdk6 > export ALT_BOOTDIR=/data/boot-java > > export ANT_HOME=/data/openjdk7/apache-ant-1.8.2 > export ALT_FREETYPE_HEADERS_PATH=/usr/local/include > export ALT_FREETYPE_LIB_PATH=/usr/local/lib > export ALT_CUPS_HEADERS_PATH=/usr/local/include > export NO_DOCS=true > export ZERO_BUILD=true > export BUILD_CORBA=false > export BUILD_JAXP=false > export BUILD_JAXWS=false > > gmake > > It enters building the hotspot for zero, but then gives me the task to go > back to my C courses. :-) > > ######################################################################## > ######################################################################## > ##### Entering hotspot for target(s) all_productzero ##### > ######################################################################## > > cd ./hotspot/make && \ > gmake JDK_TOPDIR=/data/openjdk7/bsd-port/jdk > JDK_MAKE_SHARED_DIR=/data/openjdk7/bsd-port/jdk/make/common/shared > EXTERNALSANITYCONTROL=true SOURCE_LANGUAGE_VERSION=7 > TARGET_CLASS_VERSION=7 MILESTONE=internal BUILD_NUMBER=b00 > JDK_BUILD_NUMBER=b00 FULL_VERSION=1.7.0-internal-root_2011_10_31_22_57-b00 > PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.7.0 JDK_MKTG_VERSION=7 > JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=7 JDK_MICRO_VERSION=0 > PREVIOUS_MAJOR_VERSION=1 PREVIOUS_MINOR_VERSION=6 PREVIOUS_MICRO_VERSION=0 > ARCH_DATA_MODEL=64 COOKED_BUILD_NUMBER=0 > ANT_HOME="/data/openjdk7/apache-ant-1.8.2" > ALT_OUTPUTDIR=/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir > ALT_EXPORT_PATH=/data/openjdk7/bsd-port/build/bsd-arm/hotspot/import > ALT_SLASH_JAVA=/NOT-SET ALT_BOOTDIR=/data/boot-java > ALT_LANGTOOLS_DIST=/data/openjdk7/bsd-port/build/bsd-arm/langtools/dist > all_productzero > gmake[2]: Entering directory `/data/openjdk7/bsd-port/hotspot/make' > Makefile:378: target `/Xusage.txt' given more than once in the same rule. > cd /data/openjdk7/bsd-port/hotspot/make; \ > gmake VM_TARGET=productzero generic_buildzero > ALT_OUTPUTDIR=/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir > gmake[3]: Entering directory `/data/openjdk7/bsd-port/hotspot/make' > Makefile:378: target `/Xusage.txt' given more than once in the same rule. > mkdir -p /data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir > cd /data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir; \ > gmake -f /data/openjdk7/bsd-port/hotspot/make/bsd/Makefile \ > LP64=1 JAVA_HOME=/data/boot-java > OUTPUTDIR=/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir > GAMMADIR=/data/openjdk7/bsd-port/hotspot MAKE_VERBOSE=y > HOTSPOT_RELEASE_VERSION=21.0-b17 > JRE_RELEASE_VERSION=1.7.0-internal-root_2011_10_31_22_57-b00 > HOTSPOT_BUILD_VERSION= productzero > gmake[4]: Entering directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir' > cd bsd__zero/product && gmake -w " LP64=1 " > gmake[5]: Entering directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > gmake[6]: Entering directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > gmake[6]: Nothing to be done for `all'. > gmake[6]: Leaving directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > gmake[6]: Entering directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > if [ -d /data/openjdk7/bsd-port/hotspot/agent -a "zero" != "ia64" \ > -a "zero" != "arm" \ > -a "zero" != "ppc" \ > -a "zero" != "zero" ] ; then \ > gmake -f sa.make > /data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product/../generated/sa-jdi.jar; > \ > fi > gmake[6]: Leaving directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > gmake[6]: Entering directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > echo Generating precompiled header precompiled.hpp.gch > Generating precompiled header precompiled.hpp.gch > mkdir -p . > g++ -D_ALLBSD_SOURCE -D_GNU_SOURCE -DCC_INTERP -DZERO -D > -DZERO_LIBARCH=\"\" -DPRODUCT -I. > -I/data/openjdk7/bsd-port/hotspot/src/share/vm/prims > -I/data/openjdk7/bsd-port/hotspot/src/share/vm > -I/data/openjdk7/bsd-port/hotspot/src/cpu/zero/vm > -I/data/openjdk7/bsd-port/hotspot/src/os_cpu/bsd_zero/vm > -I/data/openjdk7/bsd-port/hotspot/src/os/bsd/vm > -I/data/openjdk7/bsd-port/hotspot/src/os/posix/vm -I../generated > -DHOTSPOT_RELEASE_VERSION="\"21.0-b17\"" > -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"root\"" > -DHOTSPOT_LIB_ARCH=\"\" > -DJRE_RELEASE_VERSION="\"1.7.0-internal-root_2011_10_31_22_31-b00\"" > -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DTARGET_OS_FAMILY_bsd > -DTARGET_ARCH_zero -DTARGET_ARCH_MODEL_zero -DTARGET_OS_ARCH_bsd_zero > -DTARGET_OS_ARCH_MODEL_bsd_zero -DTARGET_COMPILER_gcc -fPIC -fno-rtti > -fno-exceptions -pthread -fcheck-new -pipe -O3 -fno-strict-aliasing > -D_LP64=1 -I/usr/local/include -Werror -Wpointer-arith -Wconversion > -Wsign-compare -c -MMD -MP -MF > ../generated/dependencies/precompiled.hpp.gch.d -x c++-header > /data/openjdk7/bsd-port/hotspot/src/share/vm/precompiled.hpp -o > precompiled.hpp.gch > : error: macro names must be identifiers > cc1plus: warnings being treated as errors > In file included from > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:33, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/debug.hpp:29, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/globals.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/allocation.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/iterator.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/genOopClosures.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/klass.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/handles.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/code/oopRecorder.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/asm/assembler.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/precompiled.hpp:29: > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp:195: > warning: overflow in implicit constant conversion > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp:196: > warning: overflow in implicit constant conversion > In file included from > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/debug.hpp:29, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/globals.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/allocation.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/iterator.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/genOopClosures.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/klass.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/handles.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/code/oopRecorder.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/asm/assembler.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/precompiled.hpp:29: > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp: > In function 'jint high(jlong)': > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:433: > warning: right shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp: > In function 'void set_low(jlong*, jint)': > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:437: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp: > In function 'void set_high(jlong*, jint)': > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:441: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp: > In function 'jlong build_long_from(u1, u1, u1, u1, u1, u1, u1, u1)': > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1122: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1122: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1123: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1123: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1124: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1124: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1125: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/utilities/globalDefinitions.hpp:1125: > warning: left shift count >= width of type > In file included from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/basicLock.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/frame.hpp:30, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/prims/jvmtiExport.hpp:33, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/runtime/thread.hpp:32, > from > /data/openjdk7/bsd-port/hotspot/src/os/bsd/vm/thread_bsd.inline.hpp:30, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/memory/resourceArea.hpp:39, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/classfile/classFileParser.hpp:29, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/classfile/classLoader.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/classfile/systemDictionary.hpp:29, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/ci/ciEnv.hpp:30, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/ci/ciUtilities.hpp:28, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/ci/ciNullObject.hpp:30, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/ci/ciConstant.hpp:29, > from > /data/openjdk7/bsd-port/hotspot/src/share/vm/precompiled.hpp:36: > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/markOop.hpp: At global > scope: > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/markOop.hpp:142: > warning: overflow in implicit constant conversion > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/markOop.hpp:381: > warning: left shift count >= width of type > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/markOop.hpp:381: > warning: negative integer implicitly converted to unsigned type > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/markOop.hpp: In member > function 'markOopDesc* markOopDesc::copy_set_hash(intptr_t) const': > /data/openjdk7/bsd-port/hotspot/src/share/vm/oops/markOop.hpp:303: > warning: overflow in implicit constant conversion > gmake[6]: *** [precompiled.hpp.gch] Error 1 > gmake[6]: Leaving directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > gmake[5]: *** [the_vm] Error 2 > gmake[5]: Leaving directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir/bsd__zero/product' > gmake[4]: *** [productzero] Error 2 > gmake[4]: Leaving directory > `/data/openjdk7/bsd-port/build/bsd-arm/hotspot/outputdir' > gmake[3]: *** [generic_buildzero] Error 2 > gmake[3]: Leaving directory `/data/openjdk7/bsd-port/hotspot/make' > gmake[2]: *** [productzero] Error 2 > gmake[2]: Leaving directory `/data/openjdk7/bsd-port/hotspot/make' > gmake[1]: *** [hotspot-build] Error 2 > gmake[1]: Leaving directory `/data/openjdk7/bsd-port' > gmake: *** [build_product_image] Error 2 > [root@sheeva1 /data/openjdk7/bsd-port]# > > There is this error about the command-line. It is about the empty -D > option, but I don't know where is comes from. And is it ok to ignore the > warning? Of should they always be seen as errors while compiling java. I > don't know how strict the java project is about this. > > Any thoughts or helpful hints? Look at hotspot/make/bsd/platform_zero.in. You've got an empty -D because @ZERO_ARCHDEF@ isn't being set up correctly. You'll see there is a substitution done in hotspot/make/bsd/Makefile that expands this into whatever ZERO_ARCHDEF is set to. The only place that it looks like getting set is in jdk/make/jdk_generic_profile.sh. I see ZERO_LIBARCH is set there for arm. It would seem to never set ZERO_ARCHDEF with the current logic though. Try setting ZERO_ENDIANNESS and ZERO_ARCHDEF in the environment and see how you go. I would guess the correct settings are "little"(?) and "ARM". The other errors _may_ be because the arch wasn't understood so the typedef for jlong, etc. isn't being set up right. You might have to dig deeper on that one. -- Greg Lewis Email : glewis@eyesbeyond.com Eyes Beyond Web : http://www.eyesbeyond.com Information Technology FreeBSD : glewis@FreeBSD.org