For reference, this is how to reproduce my working environment and get a debuggable Shark built:
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm cd llvm ./configure --with-pic --enable-pic make cd .. hg clone http://icedtea.classpath.org/hg/icedtea6 cd icedtea6 curl http://gbenson.net/wp-content/uploads/2008/08/mixtec-hacks.patch | patch -p1 ./autogen.sh LLVM_CONFIG=$(dirname $PWD)/llvm/Debug/bin/llvm-config ./configure --enable-shark make icedtea-against-ecj
After the initial make icedtea-against-ecj
you can use make hotspot
to rebuild only HotSpot.
Hi,
I’m trying to get Icedtea 7 built with Shark. I followed the directions above, except for the part of using icedtea 6 (I checked out icedtea 7 instead).
The icedtea-against-ecj target isn’t present. I assume its been replaced with icedtea-stage1? This is what I used.
The build completes fine but the jvm doesn’t seem to be using shark. If I do a java-version under the bootstrap directory I don’t see any mention of Shark.
Is there a way to verify that Shark has been built?
Thanks,
John
Hi John,
java -version
should say something like this:Note the “Shark” on the last line.
Cheers,
Gary
Hi Gary,
Thanks for the response. When I build icedtea 7 following the instructions above I don’t see the above message when I do a java -version on any of the built JVMs in bootstrap/ or openjdk.build-boot.
Do I need to rebuild hotspot to get this to work? If not, can you tell me where icedtea places the executable for the Shark JVM?
Thanks,
John
Hi Gary,
I’m also trying to get an understanding of what the limitations are in using Shark versus Hotspot’s standard x86 assembler.
1) There’s been no traffic on the bug list since 2011. (There are 9 bugs which are still open). Is Shark still being actively developed and supported?
2) Can you summarize the main limitations? For example, are there Java workloads that are known not to run in Shark mode?
I know the FAQ says Shark is “stable” on platforms with an LLVM JIT but I’m trying to get a better understanding of the limitations.
John
Hi John,
Generally, the best place to ask questions like these is the distro-pkg-dev mailing list:
http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev
I’m not working on Shark any more, but a guy called Roman Kennke has done some work on it recently.
Cheers,
Gary
Hi Gary
when I run java -version should say something like this:
openjdk version “1.8.0-internal”
OpenJDK Runtime Environment (build 1.8.0-internal-rkennke_2012_12_13_18_48-b00)
OpenJDK 64-Bit Server VM (build 25.0-b11, mixed mode)
it does not show Shark instead of Server.. is it the same?
Best Regards,
Hamza
Hi Hamza,
I haven’t worked on Shark for some time now so I don’t really know.
Try asking on the distro-pkg-dev mailing list:
http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev
or ask on the #openjdk channel on OFTC IRC.
Cheers,
Gary
Hi, I’m getting the following output in the step “make icedtea-against-ecj”
Checking patches/mixtec-assertions.patch
The text leading up to this was:
————————–
|diff -r d384f5a5bd0c hotspot/build/linux/makefiles/product.make
|— openjdk/hotspot/build/linux/makefiles/product.make Mon Aug 06 13:11:51 2007 +0100
|+++ openjdk/hotspot/build/linux/makefiles/product.make Fri Sep 14 09:58:33 2007 +0100
————————–
No file to patch. Skipping patch.
1 out of 1 hunk ignored
ERROR patch patches/mixtec-assertions.patch FAILED!
WARNING make clean-patch before retrying a fix
make: ** [stamps/patch.stamp] Erro 2
Is something wrong?