Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Nov 2015 10:25:04 -0500
From:      "Curtis Hamilton" <hamiltcl@verizon.net>
To:        "'Andreas Tobler'" <andreast-list@fgznet.ch>, "'Steve Wills'" <swills@freebsd.org>, "'Justin Hibbits'" <jrh29@alumni.cwru.edu>
Cc:        "'FreeBSD PowerPC ML'" <freebsd-ppc@freebsd.org>
Subject:   RE: OpenJDK for PowerPC64
Message-ID:  <018b01d11582$a7300950$f5901bf0$@verizon.net>
In-Reply-To: <5635458E.2070700@fgznet.ch>
References:  <002a01d11001$a4b126e0$ee1374a0$@verizon.net> <CAHSQbTAurUob%2B5ypH%2BG5_2V8dh-iGWpxobGe-EzPHBXF-ptDfg@mail.gmail.com> <003701d1102a$ee366c70$caa34550$@verizon.net> <CAHSQbTCD2QmTd865QfSV-Guuf3y7gA=euEDriM%2Bc1Pzfw7L--Q@mail.gmail.com> <00f701d1129c$b82b0400$28810c00$@verizon.net> <563370BF.8010602@FreeBSD.org> <012c01d11328$caef1220$60cd3660$@verizon.net> <5633D743.9070002@fgznet.ch> <5633E35A.50402@fgznet.ch> <5635458E.2070700@fgznet.ch>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
Attached are the instructions for setting up a bootstrap for building
OpenJDK on FreeBSD.  In an earlier email I provided the build script used to
build the BSD-Port mercurial, using the bootstrap setup in the instructions.


Let me know if you have questions.

-Curtis

-----Original Message-----
From: Andreas Tobler [mailto:andreast-list@fgznet.ch] 
Sent: Saturday, October 31, 2015 6:50 PM
To: Curtis Hamilton <hamiltcl@verizon.net>; 'Steve Wills'
<swills@freebsd.org>; 'Justin Hibbits' <jrh29@alumni.cwru.edu>
Cc: 'FreeBSD PowerPC ML' <freebsd-ppc@freebsd.org>
Subject: Re: OpenJDK for PowerPC64

On 30.10.15 22:38, Andreas Tobler wrote:
> On 30.10.15 21:46, Andreas Tobler wrote:
>> On 30.10.15 16:36, Curtis Hamilton wrote:
>>> Steve,
>>>
>>> I'll work on the patch.  In the meantime, if you'd like to give them 
>>> a try, I've built OpenJDK7/8 Zero VM for powerpc64.  It's available 
>>> at the below
>>> URL:
>>>
>>> https://drive.google.com/folderview?id=0Bz7VO-WP3rlpM3BabUd6ejlya3c&;
>>> usp=shar
>>> ing
>>
>> Do you need 32-bit powerpc stuff to bootstrap OpenJDK?
>>
>> If not, you can speed up the gcc build with the attached patch.
>> It gives you the possibility to choose java for powerpc64 and to 
>> disable/enable multilibs for powerpc64.
>>
>> I just successfully built the gcc5-devel on my quad, including 
>> multilibs)
>>
>> The other versions are part of my todo, after fixing gcc trunk....
>>
>> The multilib switch is part of John Merino's work.

Here I have to apologize, it's the work from Julio Merino. I seem to mix
John Marino and Julio Merino, sorry.

>> I recommend to use a compiler as new as possible, although, not the 
>> 6.0-devel since it is broken, at least for me.
>>
>> You can use USES_GCC = 5.2 in the ports Makefile to say which gcc 
>> compiler you wan to use.
>
> I just noticed some weird stuff with gcc5-devel, Try to use the gcc49, 
> the patch applies there too. I'll run some tests on gcc49 during the
night.

The gcc49 and below are not usable due to the fact that they do not install
properly. The reason is the multilib part for soft-float which is not
working properly. But this part is not needed.

> The gcc5-devel part I solve later.

It is solved, patch pending for gcc trunk and gcc-5. A leftover from adding
PIE support. My fault, but I do not run all combinations of bootstrapping
all the time since the machine is very power hungry...

Attached the patch I used to build a gcc-49 with multilib and java support.

Hth,
Andreas

Btw, it would be great if you (@Curtis) could describe how you did the
OpenJDK bootstrap.

[-- Attachment #2 --]
This information is a compilation from numerous sources, but inspired by the work of the Icedtea Team.  After several failed attempts, with varying results, to build the Icedtea Zero VM on FreeBSD 10

Hardware:  Apple PowerMac G5, 5GB RAM, 1TB Harddrive

Software:  FreeBSD 10.2, GCC5 w/GCJ

To create a JDK bootstrap you need GCC with GCJ (Java) build.  I recommend GCC47, 
but any version at gcc45 or above should work. At the command prompt:

Create bootstrap structure:

mkdir -p /usr/local/bootstrap-openjdk/bin
mkdir -p /usr/local/bootstrap-openjdk/lib
mkdir -p /usr/local/bootstrap-openjdk/jre/lib
mkdir -p /usr/local/bootstrap-openjdk/jre/lib/security

Create symbolic links for java executables:

cd /usr/local/bootstrap-openjdk
ln -s /usr/local/bin/gcj5	javac
ln -s /usr/local/bin/gij5	java
ln -s /usr/local/bin/gjar5	 jar
ln -s /usr/local/bin/gjarsigner5 jarsigner
ln -s /usr/local/bin/gjavah5 javah
ln -s /usr/local/bin/gnative2ascii5 native2ascii

Create symbolic links for java libraries:

cd /usr/local/bootstrap-openjdk/lib
ln -s /usr/local/share/classpath/tools.zip	tools.jar

cd /usr/local/bootstrap-openjdk/jre/lib
ln -s /usr/local/share/classpath/glibj.zip	rt.jar

The GCJ java libraries should work for building JDK6, if want to build JDK7 recommend 
you substitue the tools.jar and rt.jar libraries with libraries from a Linux or 
other JDK6 distribution. Also copy "cacerts" file from this distribution and place in the
"/usr/local/bootstrap-openjdk/jre/lib/security" directory.

Required build tools:

GNU make
CUPS and headers (cups-devel)
libX11 and headers (libX11-devel)
Freetype2 and headers (freetype-devel)
patch
sed
unzip
md5sum and sha256sum (FreeBSD files names are md5 and sha256 in /sbin. Create sym links to md5sum and sha256sum in /sbin)
wget
alsa and headers
xalan and xerces (bootstrapping only)
GLib and GTK+ for the Gtk+ look and feel
Ant >= 1.6.5
libXp-devel
libXtst-devel
libXinerama-devel
Automake 1.9
libjpeg-devel >= 6b
libpng-devel
giflib-devel
zlib-devel 

Optional symbolic links:

ln -s /usr/local/bin/gappletviewer5		appletviewer
ln -s /usr/local/bin/gkeytool5			keytool
ln -s /usr/local/bin/gorbd5				orbd
ln -s /usr/local/bin/grmic5				rmic
ln -s /usr/local/bin/grmid5				rmid
ln -s /usr/local/bin/grmiregistry5		rmiregistry
ln -s /usr/local/bin/gserialver5		serialver
ln -s /usr/local/bin/gtnameserv5		tnameserv

Recommended build environment settings:

setenv LANG C 
setenv ALT_JAVA_HOME /usr/local/bootstrap-openjdk
setenv ALT_BOOTDIR /usr/local/bootstrap-openjdk
setenv ALT_JDK_IMPORT_PATH /usr/local/bootstrap-openjdk
setenv PLATFORM bsd 
setenv OS_FAMILY bsd 
setenv ARCH ppc 
setenv BUILDARCH ppc 
setenv LIBARCH ppc 
setenv ARCH_DATA_MODEL 64
setenv ALT_FREETYPE_LIB_PATH /usr/local/lib 
setenv ALT_FREETYPE_HEADERS_PATH /usr/local/lib/libffi-3.2.1/include 
setenv ALT_CACERTS_FILE /usr/local/bootstrap-openjdk/jre/lib/security/cacerts
setenv LIBFFI_CFLAGS "-I/usr/local/lib/libffi-3.2.1/include"
setenv DEFAULT_LIBPATH "/lib:/usr/lib:/usr/local/lib"
setenv NO_DOCS true
setenv BUILD_CORBA false
setenv BUILD_JAXP false
setenv BUILD_JAXWS false
setenv ZERO_BUILD true
setenv ZERO_ENDIANNESS big
setenv ZERO_LIBARCH ppc
setenv ZERO_ARCHDEF PPC
setenv ZERO_ARCHFLAG "-mpowerpc64" 
setenv HOTSPOT_BUILD_JOBS 8 
setenv PARALLEL_COMPILE_JOBS 8 
setenv CC_INTERP true 
setenv OPENJDK true 
help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?018b01d11582$a7300950$f5901bf0$>