Building Shark

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.

8 thoughts on “Building Shark

  1. 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

  2. Hi John,
    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 Shark VM (build 25.0-b11, mixed mode)

    Note the “Shark” on the last line.
    Cheers,
    Gary

  3. 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

  4. 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

  5. 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

  6. 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?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.