working openjdk builds on all archs
[termux-packages] / disabled-packages / openjdk-9-jre-headless / build.sh
index 787f6af..1a96a12 100644 (file)
@@ -1,17 +1,15 @@
 TERMUX_PKG_HOMEPAGE=http://openjdk.java.net
 TERMUX_PKG_DESCRIPTION="OpenJDK 9 Java Runtime Environment (prerelease)"
-_jbuild=162
+_jbuild=181
 _hg_tag="jdk-9+${_jbuild}"
 _jvm_dir="lib/jvm/openjdk-9"
-TERMUX_PKG_VERSION="9.2017.4.3"
+TERMUX_PKG_VERSION="9.2017.8.20"
 TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas"
 TERMUX_PKG_HOMEPAGE=http://openjdk.java.net/projects/jdk9
 TERMUX_PKG_DEPENDS="freetype, libpng, ca-certificates-java"
 TERMUX_PKG_CONFFILES="$_jvm_dir/lib/jvm.cfg"
-# currently upstream has no support building for these arches on android
-# this will change in the future
-TERMUX_PKG_BLACKLISTED_ARCHES="aarch64 x86_64"
 TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
+--disable-aot
 --disable-hotspot-gtest
 --disable-option-checking
 --disable-warnings-as-errors
@@ -20,31 +18,30 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
 --with-libpng=system
 --with-zlib=system
 --with-jdk-variant=normal
---with-jvm-variants=client
+--with-jvm-variants=server
 "
 TERMUX_PKG_CLANG=no
 TERMUX_PKG_RM_AFTER_INSTALL="$_jvm_dir/demo $_jvm_dir/sample"
-
-_cups_ver=2.2.3
-
-changesets=('d9c3e4f30936'
-       '493011dee80e'
-       'dc3346496843'
-       '0d44d05a4c96'
-       '3890f96e8995'
-       '92a38c75cd27'
-       '24582dd2649a'
-       '5e5e436543da')
-
-sha256sums=('36ca35e4fe90ae1b1966d9f909c108f39fe411b2e783faa49102d2088909be8e'
-       '9d24cab2e16c17f51d591b9786005062bee3e60e394d1b78dddbdfb01b9a5ea6'
-       '312204f76d4f23be09aa7121273ac791588de5c6a3c25d49b3087a6eb547bb7a'
-       '9ef21b7013ef2a0b0870d4741fc961d1fce0fcb91f44a1f8cdad865455583246'
-       '8d925111270630a171b0165b740bdd5d8d07c4aa1f9ea3caa86076b9f896d3ed'
-       '1fec470e1480472ec7e4ff402bc4b6de5e095cfd5f787bdc250814eb9479a3c0'
-       'db95a143078cdf3cefff5479c5350b678b1a779fcdcf7e066049559a537d81e1'
-       '115601bbce2f5d9df66ce49d4ca6f6db327f1e17865537911160f0cde919e7bf'
-       '66701fe15838f2c892052c913bde1ba106bbee2e0a953c955a62ecacce76885f')
+_cups_ver=2.2.4
+
+changesets=('e5455438db96'
+       '5666eba44ac6'
+       '8076a7391ba0'
+       '17bb8a98d5e3'
+       'a1d64f45f9d5'
+       '364631d8ff2e'
+       '65bfdabaab9c'
+       '17cc754c8936')
+
+sha256sums=('c759faa5bff4b3d7bcf87dce57e9d1a39600ef67ec68f96d6d12d07b1bf773ce'
+       '34518bf8b27aa893f834f8f81293ac0e04a210ee4f2e11bb2c89331f87912d96'
+       '3b649e34e2a1c8758c6311931d201a38432088ccb86a720afb1cb99fe193537f'
+       'bb330b8b516178304dc11c755994db20eccc696ae5c2a16b04a4a67b20b33b79'
+       'a213ebc4bf896c55855761891932a19f42ad5276d3fd155cfb604b27f4866d9d'
+       '0bc1953e9f23d59dafc415a7a37ff2da23cf8782e0532e253a6d7d63aa0ea954'
+       '739a5d275db4a2a81cf3c3ca17a78212b8c47092e5c10888b79e9599dd9dcc2d'
+       'fbc9b49a7f0fa1723e369d91068d51a11de40e931f281a3ed9650484b437cc7f'
+       '596d4db72651c335469ae5f37b0da72ac9f97d73e30838d787065f559dea98cc')
 
 reponames=(dev corba hotspot jdk jaxws jaxp langtools nashorn cups)
 
@@ -65,7 +62,7 @@ termux_step_post_extract_package () {
                local url=${_url_src}/$repo/archive/$change.tar.bz2
 
                termux_download $url $file $sum
-               $TERMUX_TAR xf $file -C $TERMUX_PKG_SRCDIR
+               tar xf $file -C $TERMUX_PKG_SRCDIR
                mv $TERMUX_PKG_SRCDIR/$repo-$change $TERMUX_PKG_SRCDIR/$repo
        done
 
@@ -73,7 +70,7 @@ termux_step_post_extract_package () {
        file=$TERMUX_PKG_CACHEDIR/cups-$_cups_ver-source.tar.gz
        url="https://github.com/apple/cups/releases/download/v$_cups_ver/`basename $file`"
        termux_download $url $file ${sha256sums[8]}
-       $TERMUX_TAR xf $file -C $TERMUX_PKG_SRCDIR
+       tar xf $file -C $TERMUX_PKG_SRCDIR
 }
 
 # override this step to since openjdk provides its own customized guess scripts
@@ -84,6 +81,8 @@ termux_step_replace_guess_scripts () {
 termux_step_pre_configure () {
        TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-cups-include=$TERMUX_PKG_SRCDIR/cups-$_cups_ver"
 
+       ln -sf $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/libc.so $TERMUX_PKG_TMPDIR/libpthread.so
+
        cat > "$TERMUX_STANDALONE_TOOLCHAIN/devkit.info" <<HERE
 DEVKIT_NAME="Android ${TERMUX_ARCH^^}"
 DEVKIT_TOOLCHAIN_PATH="\$DEVKIT_ROOT/$TERMUX_HOST_PLATFORM/bin"
@@ -93,17 +92,32 @@ HERE
        export ANDROID_DEVKIT=$TERMUX_STANDALONE_TOOLCHAIN
 
        if [ -n "$TERMUX_DEBUG" ]; then TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-debug-level=slowdebug"; fi
-}
+       BUILD_TRIPLE=$TERMUX_ARCH-linux-gnu
+       test "$TERMUX_ARCH" == "arm" && BUILD_TRIPLE+="eabi"
 
+       JVM_FEATURES="compiler1,compiler2,jvmti,fprof,vm-structs,jni-check,services,management,all-gcs,nmt,cds"
+       # enable features specific to some arches
+       if [ "$TERMUX_ARCH" == "aarch64" ] || [ "$TERMUX_ARCH" == "x86_64" ]; then JVM_FEATURES+=",jvmci,graal"; fi
+
+       # remove sa_proc support
+       rm $TERMUX_PKG_SRCDIR/hotspot/make/lib/Lib-jdk.hotspot.agent.gmk
+}
 termux_step_configure () {
+       ARM64=""
+       if [ $TERMUX_ARCH = aarch64 ]; then
+                   export  ARM64=" --with-cpu-port=arm64"
+       fi
+
        bash $TERMUX_PKG_SRCDIR/configure \
+               $ARM64 \
                --prefix=$TERMUX_PREFIX \
-               --openjdk-target=$TERMUX_HOST_PLATFORM \
+               --openjdk-target=$BUILD_TRIPLE \
                --libexecdir=$TERMUX_PREFIX/libexec \
                --with-devkit=$ANDROID_DEVKIT \
                --with-extra-cflags="$CPPFLAGS $CFLAGS" \
                --with-extra-cxxflags="$CPPFLAGS $CXXFLAGS" \
-               --with-extra-ldflags="$LDFLAGS" \
+               --with-extra-ldflags="-L$TERMUX_PKG_TMPDIR  $LDFLAGS -ldl" \
+               --with-jvm-features="$JVM_FEATURES" \
                $TERMUX_PKG_EXTRA_CONFIGURE_ARGS
 }
 
@@ -126,7 +140,7 @@ termux_step_post_make_install () {
                rm -f $TERMUX_PREFIX/bin/$binary
                echo "export JAVA_HOME=\$PREFIX/$_jvm_dir" > $TERMUX_PREFIX/bin/$binary
                echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$JAVA_HOME/lib:\$JAVA_HOME/lib/jli" >> $TERMUX_PREFIX/bin/$binary
-               echo "\$JAVA_HOME/bin/$binary \"\$@\"" >> $TERMUX_PREFIX/bin/$binary
+               echo "exec \$JAVA_HOME/bin/$binary \"\$@\"" >> $TERMUX_PREFIX/bin/$binary
                chmod u+x $TERMUX_PREFIX/bin/$binary
        done