Monday, February 04, 2019

Building OpenJDK 12 on Solaris 11 x86_64

Following on from a previous blog "Building OpenJDK 11 on Solaris 11 x86_64" I have added instructions for OpenJDK 12 on Oracle Solaris 11.4 x64 (SPARC version downloadable).
  • At this time you require Oracle Solaris Studio 12.4 or Oracle Solaris Studio 12.6
  • Do not build on a NFS drive, since will be very slow. 
  • Tested on Solaris 11.4.5.3.0 with Oracle Solaris Studio 12.4
    • Disable hotspot-gtest & shenandoahgc & dtrace
  • You need to have OpenJDK 11 installed already. 
  • Download the "EM_486" patch http://robpetti.com/files/jdk11-sol114.patch
# cd /usr/tmp 
# export PATH=/usr/local/openjdk/jdk11/bin:/opt/solarisstudio12.4/bin:/usr/bin:/usr/sbin:/usr/gnu/bin

# which cc java
/opt/solarisstudio12.4/bin/cc
/usr/local/openjdk/jdk11/bin/java

# hg clone http://hg.openjdk.java.net/jdk/jdk12
destination directory: jdk12
requesting all changes
adding changesets
adding manifests                                                                                                             
manifests [===============================>     ] 18408/53167 
adding file changes                                                                                                          
added 53167 changesets with 461022 changes to 181805 files                                                                   
updating to branch default
67026 files updated, 0 files merged, 0 files removed, 0 files unresolved

# cd jdk12
# patch -p1 < jdk11-sol114.patch
patching file src/hotspot/os/solaris/os_solaris.cpp
Hunk #1 succeeded at 1559 (offset -18 lines).

# bash configure  --prefix=/usr/local/openjdk/jdk12 --disable-hotspot-gtest --with-jvm-features=-shenandoahgc,-dtrace
Runnable configure script is not present
Generating runnable configure script at /var/tmp/jdk12/build/.configure-support/generated-configure.sh
......
====================================================
The existing configuration has been successfully updated in
/var/tmp/jdk12/build/solaris-x86_64-server-release
using configure arguments '--prefix=/usr/local/openjdk/jdk12 --disable-hotspot-gtest --with-jvm-features=-shenandoahgc,-dtrace'.

Configuration summary:
* Debug level:    release
* HS debug level: product
* JVM variants:   server
* JVM features:   server: 'aot cds cmsgc compiler1 compiler2 epsilongc g1gc graal jfr jni-check jvmci jvmti management nmt parallelgc serialgc se
rvices vm-structs' 
* OpenJDK target: OS: solaris, CPU architecture: x86, address length: 64
* Version string: 12-internal+0-adhoc.andrew.jdk12 (12-internal)

Tools summary:
* Boot JDK:       openjdk version "11-internal" 2018-09-25 OpenJDK Runtime Environment (build 11-internal+0-adhoc.andrew.jdk11) OpenJDK 64-Bit Server VM (build 11-internal+0-adhoc.andrew.jdk11, mixed mode)  (at /usr/local/openjdk/jdk11/jvm/openjdk-11-internal)
* Toolchain:      solstudio (Oracle Solaris Studio)
* C Compiler:     Version 5.13 (at /opt/solarisstudio12.4/bin/cc)
* C++ Compiler:   Version 5.13 (at /opt/solarisstudio12.4/bin/CC)

Build performance summary:
* Cores to use:   12
* Memory limit:   16297 MB

WARNING: The result of this configuration has overridden an older
configuration. You *should* run 'make clean' to make sure you get a
proper build. Failure to do so might result in strange build problems.

# gmake  
Building target 'default (exploded-image)' in configuration 'solaris-x86_64-server-release'
Compiling 8 files for BUILD_TOOLS_LANGTOOLS
...
Creating support/modules_libs/jdk.security.auth/libjaas.so from 1 file(s)
Compiling 4 files for BUILD_JIGSAW_TOOLS
Stopping sjavac server
Finished building target 'default (exploded-image)' in configuration 'solaris-x86_64-server-release'

# gmake images     
Building target 'images' in configuration 'solaris-x86_64-server-release'
Compiling 31 files for BUILD_JRTFS
Creating support/modules_libs/java.base/jrt-fs.jar
...
Compiling 1 files for CLASSLIST_JAR
Creating support/classlist.jar
Creating images/jmods/jdk.jlink.jmod
Creating images/jmods/java.base.jmod
Creating jdk image
Creating CDS archive for jdk image
Stopping sjavac server
Finished building target 'images' in configuration 'solaris-x86_64-server-release'


# ./build/*/images/jdk/bin/java -version  
openjdk version "12-internal" 2019-03-19
OpenJDK Runtime Environment (build 12-internal+0-adhoc.andrew.jdk12)
OpenJDK 64-Bit Server VM (build 12-internal+0-adhoc.andrew.jdk12, mixed mode, sharing)

# gmake install     
Building target 'install' in configuration 'solaris-x86_64-server-release'
Installing jdk image into /usr/local/openjdk/jdk12/jvm/openjdk-12-internal
and creating 33 links from /usr/local/openjdk/jdk12/bin into the jdk.
Finished building target 'install' in configuration 'solaris-x86_64-server-release'

Formatting: I now use http://codeformatter.blogspot.co.uk for code formatting.

No comments: