Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Java on SPARC Linux
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on Sparc
View previous topic :: View next topic  
Author Message
likwid
n00b
n00b


Joined: 07 Mar 2007
Posts: 40

PostPosted: Fri Mar 16, 2007 1:19 am    Post subject: Java on SPARC Linux Reply with quote

Are there any updates on this situation? Kind of insane that there isn't java for sparc linux...
Back to top
View user's profile Send private message
Ferris
Retired Dev
Retired Dev


Joined: 13 Jan 2003
Posts: 426
Location: N. Virginia (USA)

PostPosted: Fri Mar 16, 2007 11:40 am    Post subject: Reply with quote

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
View user's profile Send private message
likwid
n00b
n00b


Joined: 07 Mar 2007
Posts: 40

PostPosted: Fri Mar 16, 2007 6:45 pm    Post subject: Reply with quote

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
View user's profile Send private message
Ferris
Retired Dev
Retired Dev


Joined: 13 Jan 2003
Posts: 426
Location: N. Virginia (USA)

PostPosted: Sat Mar 17, 2007 5:55 pm    Post subject: Reply with quote

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
View user's profile Send private message
likwid
n00b
n00b


Joined: 07 Mar 2007
Posts: 40

PostPosted: Mon Mar 19, 2007 4:41 am    Post subject: Reply with quote

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
View user's profile Send private message
recupero
n00b
n00b


Joined: 25 Jun 2006
Posts: 26

PostPosted: Mon Mar 19, 2007 2:21 pm    Post subject: Reply with quote

i've just spent little time on the problem:
i've downloaded the new GPL'd Java.

And figured :lol: it could be compiled with a make :lol:

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
View user's profile Send private message
henniez-swisswater
n00b
n00b


Joined: 07 Sep 2005
Posts: 16

PostPosted: Thu Jun 28, 2007 3:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
blu3bird
Retired Dev
Retired Dev


Joined: 04 Oct 2003
Posts: 609
Location: Munich, Germany

PostPosted: Thu Jun 28, 2007 9:14 pm    Post subject: Reply with quote

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
View user's profile Send private message
Galahad
Tux's lil' helper
Tux's lil' helper


Joined: 12 Feb 2003
Posts: 126

PostPosted: Mon Jul 09, 2007 3:27 pm    Post subject: Reply with quote

gcj-jdk depends on eclipse-ecj depends on virtual/jdk. So have fun.
Back to top
View user's profile Send private message
guidebee
n00b
n00b


Joined: 30 Sep 2007
Posts: 2

PostPosted: Sun Sep 30, 2007 3:34 am    Post subject: JDK1.4.1 works on Gentoo/Sparc Reply with quote

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
View user's profile Send private message
Ferris
Retired Dev
Retired Dev


Joined: 13 Jan 2003
Posts: 426
Location: N. Virginia (USA)

PostPosted: Mon Oct 01, 2007 12:06 pm    Post subject: Reply with quote

Interesting, thanks. We'll look at it. What version of gcc are you using on your system?

Regards,
Back to top
View user's profile Send private message
guidebee
n00b
n00b


Joined: 30 Sep 2007
Posts: 2

PostPosted: Wed Oct 10, 2007 1:32 pm    Post subject: Reply with quote

gcc version 4.1.1 (Gentoo 4.1.1-r3)
Back to top
View user's profile Send private message
psychicist
n00b
n00b


Joined: 27 Oct 2007
Posts: 2

PostPosted: Sat Oct 27, 2007 9:05 am    Post subject: Reply with quote

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
View user's profile Send private message
Ferris
Retired Dev
Retired Dev


Joined: 13 Jan 2003
Posts: 426
Location: N. Virginia (USA)

PostPosted: Mon Oct 29, 2007 12:23 pm    Post subject: Reply with quote

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
View user's profile Send private message
donpine
n00b
n00b


Joined: 02 Nov 2007
Posts: 6

PostPosted: Sun Nov 25, 2007 11:48 pm    Post subject: Reply with quote

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
View user's profile Send private message
CrazyApe
n00b
n00b


Joined: 26 Apr 2003
Posts: 13
Location: Australia

PostPosted: Thu Jun 05, 2008 8:09 am    Post subject: Iced Tea - Sparc - Almost Reply with quote

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)
_________________
Neither logic nor reason can mandate adherence to convention.
Back to top
View user's profile Send private message
Ferris
Retired Dev
Retired Dev


Joined: 13 Jan 2003
Posts: 426
Location: N. Virginia (USA)

PostPosted: Wed Jun 10, 2009 12:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
CrazyApe
n00b
n00b


Joined: 26 Apr 2003
Posts: 13
Location: Australia

PostPosted: Sat Jun 13, 2009 4:47 am    Post subject: Most stuff just builds. Reply with quote

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
_________________
Neither logic nor reason can mandate adherence to convention.
Back to top
View user's profile Send private message
alexbuell
Guru
Guru


Joined: 18 Jul 2002
Posts: 474
Location: "Hemp"shire, UK

PostPosted: Mon Nov 08, 2010 9:50 am    Post subject: Reply with quote

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
View user's profile Send private message
lariano
n00b
n00b


Joined: 14 Aug 2011
Posts: 14
Location: Berlin (Germany)

PostPosted: Sun Oct 09, 2011 8:04 am    Post subject: jdk 1.6.0_22 on gentoo/sparc Reply with quote

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) :roll: .
Back to top
View user's profile Send private message
lariano
n00b
n00b


Joined: 14 Aug 2011
Posts: 14
Location: Berlin (Germany)

PostPosted: Sat Oct 15, 2011 6:18 am    Post subject: Comments on gcc for icedtea6-jdk Reply with quote

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
View user's profile Send private message
lariano
n00b
n00b


Joined: 14 Aug 2011
Posts: 14
Location: Berlin (Germany)

PostPosted: Sun Jul 29, 2012 8:52 am    Post subject: Update of icedtea6-1.11.3 Reply with quote

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
View user's profile Send private message
lariano
n00b
n00b


Joined: 14 Aug 2011
Posts: 14
Location: Berlin (Germany)

PostPosted: Thu Sep 06, 2012 7:44 pm    Post subject: 64-bit-java on a gentoo/sparc/multilib installation Reply with quote

!!! 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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on Sparc All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum