View previous topic :: View next topic |
Author |
Message |
likwid n00b
Joined: 07 Mar 2007 Posts: 40
|
Posted: Fri Mar 16, 2007 1:19 am Post subject: Java on SPARC Linux |
|
|
Are there any updates on this situation? Kind of insane that there isn't java for sparc linux... |
|
Back to top |
|
|
Ferris Retired Dev
Joined: 13 Jan 2003 Posts: 426 Location: N. Virginia (USA)
|
Posted: Fri Mar 16, 2007 11:40 am Post subject: |
|
|
Sigh. No. You are right, it is insane that sun won't support java on their own systems. (Sun supports sparc, sun supports linux, but sun does not support sparc/linux.) |
|
Back to top |
|
|
likwid n00b
Joined: 07 Mar 2007 Posts: 40
|
Posted: Fri Mar 16, 2007 6:45 pm Post subject: |
|
|
Man that sucks heavy balls. Has this always been the case? Like back when RedHat used to have a sparc distro (6.2 and under) wasn't there java? |
|
Back to top |
|
|
Ferris Retired Dev
Joined: 13 Jan 2003 Posts: 426 Location: N. Virginia (USA)
|
Posted: Sat Mar 17, 2007 5:55 pm Post subject: |
|
|
There was one from blackdown, but it has security issues. If you have time and like to code at a fairly low level, I can help with a possible light-weight substitute, but I haven't had the time to make it work (endian issues and pointer misalignment and just what assembly level semaphores it wants). It's a disgrace that sun won't support their language on their architecture on a system they support, but I can't fix that.
Yours in frustration, |
|
Back to top |
|
|
likwid n00b
Joined: 07 Mar 2007 Posts: 40
|
Posted: Mon Mar 19, 2007 4:41 am Post subject: |
|
|
I am a junior level sysadmin/engineer... I've forgotten most of my C due to lack of use lol so I couldn't help you with what I assume is assembly level coding. I'd be all for it if I could code well. Hopefully someone out there will take on this task... |
|
Back to top |
|
|
recupero n00b
Joined: 25 Jun 2006 Posts: 26
|
Posted: Mon Mar 19, 2007 2:21 pm Post subject: |
|
|
i've just spent little time on the problem:
i've downloaded the new GPL'd Java.
And figured it could be compiled with a make
Yea, but isn't it theoretically possible to use Sun/Sparc binary compatibility in order to run a javac for the compilation of the GPL'd version?
Post some links if you have some idea.
Thank you. |
|
Back to top |
|
|
henniez-swisswater n00b
Joined: 07 Sep 2005 Posts: 16
|
Posted: Thu Jun 28, 2007 3:41 pm Post subject: |
|
|
i tried to compile the x86 source code for my sparc. most of it went well, except sun-jdk. now i have java config etc, but no java:( |
|
Back to top |
|
|
blu3bird Retired Dev
Joined: 04 Oct 2003 Posts: 614 Location: Munich, Germany
|
Posted: Thu Jun 28, 2007 9:14 pm Post subject: |
|
|
probably because sun-jdk is binary and you just can't run x86 binaries on a sparc
However if you have a program written in java and you want to run it on linux/sparc you can try your luck with gcj/gij(compile gcc with gcj useflag, http://gcc.gnu.org/java/faq.html). _________________ Black Holes are created when God divides by zero! |
|
Back to top |
|
|
Galahad Tux's lil' helper
Joined: 12 Feb 2003 Posts: 126
|
Posted: Mon Jul 09, 2007 3:27 pm Post subject: |
|
|
gcj-jdk depends on eclipse-ecj depends on virtual/jdk. So have fun. |
|
Back to top |
|
|
guidebee n00b
Joined: 30 Sep 2007 Posts: 2
|
Posted: Sun Sep 30, 2007 3:34 am Post subject: JDK1.4.1 works on Gentoo/Sparc |
|
|
I recently installed the gentoo linux on Sun ultra 10 (Sparc) ,and met the same problem, there's no avaible Java for Linux/Sparc.
I tried to download
http://ftp.cvut.cz/java-linux/JDK-1.4.1/sparc/01/
and tried to install j2sdk-1.4.1-beta-linux-sparc.bin, it gave some checksum error.
there's a way to manually install the JDK1.4.1. use any editor (like vi) to open the .bin file.
delete all the shell scipts in the .bin file.
"
....
END_OF_STUB
BZh91AY&SY¹...
"
keep all the data below END_OF_STUB ,save it, and change the file name to .bz2
then use tar xvf [jdk].bz2 , it unzips all the JDK1.4.1
it actually works |
|
Back to top |
|
|
Ferris Retired Dev
Joined: 13 Jan 2003 Posts: 426 Location: N. Virginia (USA)
|
Posted: Mon Oct 01, 2007 12:06 pm Post subject: |
|
|
Interesting, thanks. We'll look at it. What version of gcc are you using on your system?
Regards, |
|
Back to top |
|
|
guidebee n00b
Joined: 30 Sep 2007 Posts: 2
|
Posted: Wed Oct 10, 2007 1:32 pm Post subject: |
|
|
gcc version 4.1.1 (Gentoo 4.1.1-r3) |
|
Back to top |
|
|
psychicist n00b
Joined: 27 Oct 2007 Posts: 2
|
Posted: Sat Oct 27, 2007 9:05 am Post subject: |
|
|
I'm neither a Gentoo nor a Debian/Ubuntu user but why would we settle for some older, unsupported SPARC JVM when we could just as well get the OpenJDK working on SPARC. The code is there for Linux and for SPARC, we only have to get the combination working.
I've already asked for assistance on the Hotspot-dev mailing list, so with your help we could get this thing working pretty soon. You can find more information at http://mail.openjdk.java.net/pipermail/hotspot-dev/2007-September/thread.html. |
|
Back to top |
|
|
Ferris Retired Dev
Joined: 13 Jan 2003 Posts: 426 Location: N. Virginia (USA)
|
Posted: Mon Oct 29, 2007 12:23 pm Post subject: |
|
|
Thanks for the information. I think that there are two difficulties: (1) Assembly language will likely need some conversion; (2) More difficult: I am sure sparc/solaris java assumes 64-but user mode. Sparc/linux is 32-bit user mode. This can cause problems unless the sun developers took care to use conditional compilation options.
That said, good look and ask for assistance if you wish. |
|
Back to top |
|
|
donpine n00b
Joined: 02 Nov 2007 Posts: 6
|
Posted: Sun Nov 25, 2007 11:48 pm Post subject: |
|
|
Thank You guidbee! Your instructions worked great for me. I'm running 2.6.22 with gcc 4.1.1 on an Ultra 5. Some web applets don't load, but I'm able to run MoneyDance (keep the old box productive).
Thanks for the tip! |
|
Back to top |
|
|
CrazyApe n00b
Joined: 26 Apr 2003 Posts: 14 Location: Australia
|
Posted: Thu Jun 05, 2008 8:09 am Post subject: Iced Tea - Sparc - Almost |
|
|
I picked up an Ultra 5 a few weeks ago as I like to mess about with Gentoo on alternate architectures, it wasn't long before I found myself looking into the current java situation we have.
I've managed to get very close with iced tea.
Hotspot is compiled with the propper sparc patches for the atomic ops, etc.
I have java, javac, and all the other binaries, I'm just having issues getting some class stuff built.
All the .class files are built, but the section of code that builds the .jar has a problem.
I'm getting:
error: bad class file: sun/rmi/registry/RegistryImpl_Skel.class(sun/rmi/registry:RegistryImpl_Skel.class)
bad signature: java/lang/
Please remove or make sure it appears in the correct subdirectory of the classpath.
I really don't know much about java, what can I do here, even a quick fix to get past this point.
For now I'll just keep messing with it, I may discover something. Anyway, this shows promise.
sparc / # /var/tmp/portage/dev-java/icedtea-6.1.1/work/icedtea6-1.1/openjdk/control/build/linux-sparc/j2re-image/bin/java -version
java version "1.6.0"
IcedTea Runtime Environment (build 1.6.0-b09)
OpenJDK Client VM (build 1.6.0-b09, mixed mode) |
|
Back to top |
|
|
Ferris Retired Dev
Joined: 13 Jan 2003 Posts: 426 Location: N. Virginia (USA)
|
Posted: Wed Jun 10, 2009 12:18 pm Post subject: |
|
|
Please see Bug #159780 from comment 41 (https://bugs.gentoo.org/show_bug.cgi?id=159780#41 ) on. It looks as if IcedTea can work as a java engine on sparc, thanks to Dylan Wakefield. Please test it if you are interested in java and post results here. I am aiming to get this into the Gentoo mainstream, and would just like to have a bit of feedback first.
Thanks, |
|
Back to top |
|
|
CrazyApe n00b
Joined: 26 Apr 2003 Posts: 14 Location: Australia
|
Posted: Sat Jun 13, 2009 4:47 am Post subject: Most stuff just builds. |
|
|
I've been having a bit of a play with icedtea6-bin and the vast majority of apps that require java now build, simply by keywording them for sparc/~sparc.
The following is a list of things that have built successfully, this is by no means an exhaustive list. Just because it built doesn't mean it works, although in general that is the case.
Anything with native code may need a tweak to the build, things that come to mind are swt and eclipse.
The swt ebuild needs a bit of a tweak, I'll post an ebuild for it later. I have tested swt somewhat with vuze
Eclipse (not listed bellow) needs another strand of spaghetti wound through it's build system, I'll take a look at it and see what I come up with.
Anyway, the list so far:
app-editors/jedit-4.3_pre16
app-editors/jext-5.0
dev-java/ant-1.7.1
dev-java/ant-antlr-1.7.1-r1
dev-java/ant-apache-bcel-1.7.1
dev-java/ant-apache-bsf-1.7.1-r1
dev-java/ant-apache-log4j-1.7.1
dev-java/ant-apache-oro-1.7.1
dev-java/ant-apache-regexp-1.7.1
dev-java/ant-apache-resolver-1.7.1
dev-java/ant-commons-logging-1.7.1
dev-java/ant-commons-net-1.7.1
dev-java/ant-core-1.7.1-r4
dev-java/ant-eclipse-ecj-3.4
dev-java/ant-javamail-1.7.1
dev-java/ant-jdepend-1.7.1
dev-java/ant-jmf-1.7.1
dev-java/ant-jsch-1.7.1
dev-java/ant-junit-1.7.1
dev-java/ant-nodeps-1.7.1
dev-java/ant-owanttask-1.1-r12
dev-java/ant-swing-1.7.1
dev-java/ant-trax-1.7.1
dev-java/antlr-3.1.3-r2
dev-java/asm-2.0-r1
dev-java/bcmail-1.38-r1
dev-java/bsf-2.4.0-r1
dev-java/cldc-api-1.1
dev-java/commons-daemon-1.0.1-r2
dev-java/commons-dbcp-1.2.2
dev-java/commons-el-1.0-r2
dev-java/commons-pool-1.4
dev-java/dom4j-1.6.1-r3
dev-java/eclipse-ecj-3.4-r4
dev-java/fop-0.94-r1
dev-java/gnu-classpath-0.97.2
dev-java/gnu-regexp-1.1.4-r2
dev-java/hamcrest-core-1.1
dev-java/icu4j-3.8.1-r1
dev-java/iso-relax-20050331-r2
dev-java/itext-2.1.5
dev-java/jarjar-0.9
dev-java/java-config-2.1.8
dev-java/java-config-wrapper-0.16
dev-java/java-getopt-1.0.13
dev-java/javacc-4.2
dev-java/javacup-0.11a_beta20060608
dev-java/jaxen-1.1.1
dev-java/jaxp-1.4-r1
dev-java/jcommon-1.0.16
dev-java/jfreechart-1.0.13
dev-java/jgoodies-looks-2.1.4
dev-java/jsch-0.1.41
dev-java/junit-4.6
dev-java/jython-2.2.1-r1
dev-java/jzlib-1.0.7-r1
dev-java/log4j-1.2.15-r1
dev-java/lucene-1.9.1
dev-java/lucene-analyzers-2.3.2
dev-java/qdox-1.6.3
dev-java/rhino-1.6.5
dev-java/servletapi-2.4-r5
dev-java/stringtemplate-3.2
dev-java/sun-jaf-1.1.1
dev-java/sun-javamail-1.4.2
dev-java/swing-layout-1.0.3
dev-java/swt-3.4-r3
dev-java/tomcat-servlet-api-6.0.18
dev-java/xerces-2.9.1
dev-java/xml-xmlbeans-1.0.4_pre20041217
java-virtuals/jaf-1.1-r1
java-virtuals/javamail-1.0-r1
java-virtuals/servlet-api-2.3
media-video/projectx-0.90.4.00_p26
net-irc/jircii-41
net-p2p/vuze-4.2.0.2
net-p2p/vuze-coreplugins-4.2.0.2
sci-biology/readseq-20080420
virtual/jdk-1.6.0-r2
www-servers/tomcat-6.0.18-r3
Cheers,
Dylan |
|
Back to top |
|
|
alexbuell Guru
Joined: 18 Jul 2002 Posts: 498 Location: "Hemp"shire, UK
|
Posted: Mon Nov 08, 2010 9:50 am Post subject: |
|
|
Good news, I have used 1.4.1 to bootstrap to icedtea-6.1.9.1, I'm testing the JVM at the moment. There will be a binpkg up for testing soon. _________________ Cheers,
Alex.
Linux - the best text adventure game ever. |
|
Back to top |
|
|
lariano n00b
Joined: 14 Aug 2011 Posts: 18 Location: Berlin (Germany)
|
Posted: Sun Oct 09, 2011 8:04 am Post subject: jdk 1.6.0_22 on gentoo/sparc |
|
|
As there is currently no jdk via portage availabel for sparc I have tried to build it manually on my SB-1500 (UltraSparc IIIi). After several attempts finally I've got it running and could ask
$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.3) (linux-gnu build 1.6.0_22-b22)
OpenJDK Client VM (build 19.0-b09, mixed mode)
I had to emerge dev-java/ecj-gcj and sys-devel/gcc-4.5.3-r1 for bootstrapping and to fulfill all requirements of the `configure' script of icedtea6-1.10.3 (several java apis can be downloaded in binary form). Then I encounterd two problems:
I had a ClassNotFoundException at the beginning of the build process and found a solution with help of
http://www.linuxfromscratch.org/blfs/view/svn/general/icedtea6.html
The xml-apis-jar from the xerces archive must be provided additionally due to some bug. The patch provided on the linuxfromscratch-site (http://www.linuxfromscratch.org/patches/blfs/svn/icedtea6-1.9.7-xerces2_10-1.patch) can not be applied automatically because it is written for icedTea-1.9.7. But the few changes can be done manually.
The second problem was a compiler error because the newer gcc-versions produce new warnings for some old-style-code in the jdk-sources which are converted into compiler errors if -Werror is set as option. The sources of the jdk are not ready for these warnings. The solution is therefore to get rid of the -Werror option. I have found a patch for this issue in an older version of icedTea (http://osdir.com/ml/attachments/txtMUBogtElg3.txt) which is however not included in icedtea6-1.10.3. As with the issue before I applied the ideas of this patch manually to the file targets which are found under a slightly different location however. Then finally everything worked.
The new jdk makes a quite good impression. My favorite java application are running stable, e.g. intelliJ-IDEA. I have copied a jboss-5.1.0 from an opensolaris installation of another hard drive of the same machine to the gentoo-installation and found to my complete surprise that the startup time of this empty jboss takes ~2:05min on opensolaris (2009.06, sun-jdk-1.6.0_13) whereas only ~1:35min on gentoo (2.6.39-gentoo-r3) . |
|
Back to top |
|
|
lariano n00b
Joined: 14 Aug 2011 Posts: 18 Location: Berlin (Germany)
|
Posted: Sat Oct 15, 2011 6:18 am Post subject: Comments on gcc for icedtea6-jdk |
|
|
My gentoo installation was compiled with gcc-4.4.5 but in order to compile the icedtea6-jdk I had to emerge gcc-4.5.3. Later I tried to upgrade the whole system with the new compiler but had no success (got an ugly compiler error late in `emerge -ev world'). Therfore I switched back to stable gcc-4.4.5 and rebuilt the icedtea6-jdk two times based on the output of the previous build cycle using
Code: | ./configure --disable-bootstrap --with-jdk-home=$JDK_OF_PREVIOUS_BUILD (...) |
Now I have consistent binaries and all packages emerged for the first build cycle, compiled with gcc-4.5.3, should be eligible for unmerge. The testsuite of the jdk gives for me now the following results in good agreement with the results reported on linuxfromscratch:
Code: | hotspot test results: passed: 97; failed: 1; error: 1
langtools test results: passed: 1,409
jdk test results: passed: 3,351; failed: 25; error: 5 |
|
|
Back to top |
|
|
lariano n00b
Joined: 14 Aug 2011 Posts: 18 Location: Berlin (Germany)
|
Posted: Sun Jul 29, 2012 8:52 am Post subject: Update of icedtea6-1.11.3 |
|
|
As several links from my above posts are broken in the meanwhile I have decided to make an update of my jdk and offer the complete build as a download on a shared storage (if there are possibilities to do it with gentoo please let me know).
Code: |
www.mydrive.ch
Login: gentoo@lariano
Password: java4sparc
File: gentoo/icedtea6-1.11.3-gentoo-sparc.zip (200 MB)
sha1sum: c51baca24573bdb1fb9cdc6bf05c86a6d48b95c0
md5sum: becf493e633012cb5d88a10c5e5bdb4f
|
The build was made with the jdk 1.6.0_22 of my above posts and icedtea6-1.11.3 which produces a 1.6.0_24 jdk. This time I have found only one problem: several undefined symbols in the file openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp in function 'print_register_info'. By analyzing the code of this file - mainly function 'print_context' - I have tried the following patch successfully:
Code: |
--- openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.bak.cpp 2012-07-28 14:09:21.546887126 +0200
+++ openjdk/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp 2012-07-28 14:12:29.398937898 +0200
@@ -309,29 +309,30 @@
if (context == NULL) return;
ucontext_t *uc = (ucontext_t*)context;
+ sigcontext* sc = (sigcontext*)context;
intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
st->print_cr("Register to memory mapping:");
st->cr();
// this is only for the "general purpose" registers
- st->print("G1="); print_location(st, SIG_REGS(sc).u_regs[CON__G1]);
- st->print("G2="); print_location(st, SIG_REGS(sc).u_regs[CON__G2]);
- st->print("G3="); print_location(st, SIG_REGS(sc).u_regs[CON__G3]);
- st->print("G4="); print_location(st, SIG_REGS(sc).u_regs[CON__G4]);
- st->print("G5="); print_location(st, SIG_REGS(sc).u_regs[CON__G5]);
- st->print("G6="); print_location(st, SIG_REGS(sc).u_regs[CON__G6]);
- st->print("G7="); print_location(st, SIG_REGS(sc).u_regs[CON__G7]);
+ st->print("G1="); print_location(st, SIG_REGS(sc).u_regs[CON_G1]);
+ st->print("G2="); print_location(st, SIG_REGS(sc).u_regs[CON_G2]);
+ st->print("G3="); print_location(st, SIG_REGS(sc).u_regs[CON_G3]);
+ st->print("G4="); print_location(st, SIG_REGS(sc).u_regs[CON_G4]);
+ st->print("G5="); print_location(st, SIG_REGS(sc).u_regs[CON_G5]);
+ st->print("G6="); print_location(st, SIG_REGS(sc).u_regs[CON_G6]);
+ st->print("G7="); print_location(st, SIG_REGS(sc).u_regs[CON_G7]);
st->cr();
- st->print("O0="); print_location(st, SIG_REGS(sc).u_regs[CON__O0]);
- st->print("O1="); print_location(st, SIG_REGS(sc).u_regs[CON__O1]);
- st->print("O2="); print_location(st, SIG_REGS(sc).u_regs[CON__O2]);
- st->print("O3="); print_location(st, SIG_REGS(sc).u_regs[CON__O3]);
- st->print("O4="); print_location(st, SIG_REGS(sc).u_regs[CON__O4]);
- st->print("O5="); print_location(st, SIG_REGS(sc).u_regs[CON__O5]);
- st->print("O6="); print_location(st, SIG_REGS(sc).u_regs[CON__O6]);
- st->print("O7="); print_location(st, SIG_REGS(sc).u_regs[CON__O7]);
+ st->print("O0="); print_location(st, SIG_REGS(sc).u_regs[CON_O0]);
+ st->print("O1="); print_location(st, SIG_REGS(sc).u_regs[CON_O1]);
+ st->print("O2="); print_location(st, SIG_REGS(sc).u_regs[CON_O2]);
+ st->print("O3="); print_location(st, SIG_REGS(sc).u_regs[CON_O3]);
+ st->print("O4="); print_location(st, SIG_REGS(sc).u_regs[CON_O4]);
+ st->print("O5="); print_location(st, SIG_REGS(sc).u_regs[CON_O5]);
+ st->print("O6="); print_location(st, SIG_REGS(sc).u_regs[CON_O6]);
+ st->print("O7="); print_location(st, SIG_REGS(sc).u_regs[CON_O7]);
st->cr();
st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]);
|
This patch must be copied to patches/openjdk/os_linux_sparc.patch of the icedtea6-1.11.3 directory and added to the Makefile.am in order to have it executed automatically during the build:
Code: |
--- Makefile.bak.am 2012-07-28 16:12:31.550420609 +0200
+++ Makefile.am 2012-07-28 16:13:06.890834373 +0200
@@ -428,6 +428,7 @@
patches/openjdk/7103725-ssl_beast_regression.patch \
patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \
patches/openjdk/remove-mimpure-option-to-gcc.patch \
+ patches/openjdk/os_linux_sparc.patch \
patches/idresolver_fix.patch \
patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch \
patches/coverage-table.patch
|
Then for me the build runs smoothly with the following commands:
Code: |
# add ant to PATH
export PATH=$HOME/work/java/apache-ant-1.7.1/bin:$PATH
# cd to icedtea6-1.11.3
./autogen.sh
# point to the old build-jdk and rhino1_7R3
./configure --disable-bootstrap --with-jdk-home=/opt/icedtea6 --with-rhino=$HOME/work/java/rhino1_7R3/js.jar
make
|
With the provided binary version of the jdk 1.6.0_24 you can build your own jdk in this manner.
At the end a 'make check' will run the test suite. Be sure to disable the power management and screensaver of your workstation first and don't touch mouse and keyboard when the awt and swing tests are executed. The test suite takes on my SB-1500 more than 5 hours:
Code: |
hotspot: passed: 109; failed: 1; error: 1
jdk: passed: 3,391; failed: 26; error: 3
langtools: passed: 1,418
|
|
|
Back to top |
|
|
lariano n00b
Joined: 14 Aug 2011 Posts: 18 Location: Berlin (Germany)
|
Posted: Thu Sep 06, 2012 7:44 pm Post subject: 64-bit-java on a gentoo/sparc/multilib installation |
|
|
!!! The multilib configuration is experimental. Use it at your own risk. !!!
I have performed a clean installation of gentoo/sparc/multilib on a spare disk of my SB-1500 using a stage3-multilib-tarball. I wanted to build icedtea6-1.11.3 for the 64-bit environment. With 64-bit-java you can overcome the 4g memory restriction of 32-bit-java which manifests in responds like this:
Code: |
$ java -Xms4608m -Xmx4608m HelloWorld
Invalid initial heap size: -Xms4608m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.
|
For the installation I followed the gentoo/sparc installation guide and the very few posts regarding sparc/multilib:
http://archives.gentoo.org/gentoo-sparc/msg_4cccf044808919d11a29fcec43f4881a.xml
http://www.gentoo.org/proj/en/base/sparc/multilib.xml
After the successful installation of multilib I have emerged several additional packages in 64-bit mode which are required for building icedtea6-openjdk. I followed the concept of an alternate ROOT environment variable (-> `man emerge') and set the following environment variables:
Code: |
export ROOT=/opt/icedtea6-1.11.3-libs
export DEFAULT_ABI="sparc64"
export ABI="${DEFAULT_ABI}"
CFLAGS="-O2 -mcpu=ultrasparc3 -pipe -m64"
CFLAGS="$CFLAGS -L/opt/icedtea6-1.11.3-libs/lib64"
CFLAGS="$CFLAGS -L/opt/icedtea6-1.11.3-libs/usr/lib64"
CFLAGS="$CFLAGS -Wl,-rpath=/opt/icedtea6-1.11.3-libs/lib64"
CFLAGS="$CFLAGS -Wl,-rpath=/opt/icedtea6-1.11.3-libs/usr/lib64"
CFLAGS="$CFLAGS -I/opt/icedtea6-1.11.3-libs/usr/include"
export CFLAGS
export CFLAGS_sparc64=$CFLAGS
export CXXFLAGS=$CFLAGS
|
If you emerge libraries with this environment the binaries will be installed in 64-bit-form under the directory /opt/icedtea6-1.11.3-libs and have no conflicts with existing libraries of the same package in 32-bit-form installed under /.
At the end I have emerged the following libraries in 64-bit-form:
Code: |
# equery list "*"
* Searching for * ...
app-arch/bzip2-1.0.6-r3:0
dev-libs/libpthread-stubs-0.3:0
media-libs/alsa-lib-1.0.25-r1:0
media-libs/freetype-2.4.9-r1:2
media-libs/giflib-4.1.6-r2:0
media-libs/jpeg-8d:0
media-libs/libpng-1.5.10:0
sys-apps/util-linux-2.20.1-r2:0
sys-libs/gpm-1.20.6:0
sys-libs/ncurses-5.9-r2:5
sys-libs/zlib-1.2.5.1-r2:0
x11-libs/libICE-1.0.7:0
x11-libs/libSM-1.2.0:0
x11-libs/libX11-1.4.4:0
x11-libs/libXau-1.0.6:0
x11-libs/libXdmcp-1.1.0:0
x11-libs/libXext-1.3.0:0
x11-libs/libXi-1.4.3-r1:0
x11-libs/libXrender-0.9.6:0
x11-libs/libXt-1.1.1:0
x11-libs/libXtst-1.2.0:0
x11-libs/libxcb-1.7:0
x11-libs/xtrans-1.2.6:0
x11-proto/inputproto-2.0.2:0
x11-proto/kbproto-1.0.5:0
x11-proto/recordproto-1.14.1:0
x11-proto/renderproto-0.11.1:0
x11-proto/xextproto-7.2.0:0
x11-proto/xf86bigfontproto-1.2.0:0
x11-proto/xproto-7.0.22:0
|
Symbolic links must be created in /lib64 to the appropriate libraries under /opt/icedtea6-1.11.3-libs as needed by the configure script or the build process of the openjdk.
For building icedtea6 I used a similar enironment as for emerging the 64-bit-libraries:
Code: |
CFLAGS="-O2 -mcpu=ultrasparc3 -pipe -m64"
CFLAGS="$CFLAGS -L/opt/icedtea6-1.11.3-libs/lib64"
CFLAGS="$CFLAGS -L/opt/icedtea6-1.11.3-libs/usr/lib64"
CFLAGS="$CFLAGS -Wl,-rpath=/opt/icedtea6-1.11.3-libs/lib64"
CFLAGS="$CFLAGS -Wl,-rpath=/opt/icedtea6-1.11.3-libs/usr/lib64"
CFLAGS="$CFLAGS -I/opt/icedtea6-1.11.3-libs/usr/include"
export CFLAGS
export CXXFLAGS=$CFLAGS
./configure --disable-bootstrap --with-jdk-home=${PATH_TO_32BIT_JDK} --with-rhino=$HOME/work/java/rhino1_7R3/js.jar
|
The build process proceeded in stop-and-go-mode. When a library was missing, the build process interrupted, I emerged the missing library in 64-bit-mode and restarted the build. I had no problems emerging the 64-bit-libraries !
I ended up with a j2sdk wich introduces itself as
Code: |
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (linux-gnu build 1.6.0_24-b24)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
|
The above HelloWorld example gives now what I wanted to see:
Code: |
$ java -Xms4608m -Xmx4608m HelloWorld
Hello, world!
|
The 64-bit-j2sdk seems fully functional and passed the openjdk-test-suite with the following results:
Code: |
hotspot: passed: 106; failed: 4; error: 1
jdk: passed: 3,392; failed: 25; error: 3
langtools: passed: 1,418
|
(In order to run the openjdk-test-suite I had to install X11 in 32-bit-mode as usual, but no desktop environment.)
The price for 64-bit-java is however a significant loss of performance. The jdk-part of the test-suite takes for me ~4:55h in 32-bit-mode and ~7:30h in 64-bit-mode. The startup time of an empty jboss-5.1.0 is on my SB-1500 1:30min in 32-bit-mode and 3min in 64-bit-mode.
!!! The multilib configuration is experimental. Use it at your own risk. !!! |
|
Back to top |
|
|
|