diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2015-10-07 14:02:48 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2015-10-07 14:03:23 +0000 |
commit | 58a5aac536c752d7c0a69250dfeeebf5d9bceade (patch) | |
tree | e5f62e6abe645ce302f6088e076b7b78a2a8d3dc /community | |
parent | f9916072fe1c7a0e0e4526431839aa9032fe1a8f (diff) | |
download | aports-58a5aac536c752d7c0a69250dfeeebf5d9bceade.tar.bz2 aports-58a5aac536c752d7c0a69250dfeeebf5d9bceade.tar.xz |
community/openjdk8: moved from testing
Diffstat (limited to 'community')
-rw-r--r-- | community/openjdk8/APKBUILD | 255 | ||||
-rw-r--r-- | community/openjdk8/build-demo-ldflags.patch | 21 | ||||
-rw-r--r-- | community/openjdk8/fix-libjvm-load.patch | 14 | ||||
-rw-r--r-- | community/openjdk8/icedtea-hotspot-musl.patch | 55 | ||||
-rw-r--r-- | community/openjdk8/icedtea-hotspot-noagent-musl.patch | 51 | ||||
-rw-r--r-- | community/openjdk8/icedtea-hotspot-uclibc-fixes.patch | 93 | ||||
-rw-r--r-- | community/openjdk8/icedtea-jdk-execinfo.patch | 20 | ||||
-rw-r--r-- | community/openjdk8/icedtea-jdk-fix-ipv6-init.patch | 42 | ||||
-rw-r--r-- | community/openjdk8/icedtea-jdk-includes.patch | 154 | ||||
-rw-r--r-- | community/openjdk8/icedtea-jdk-musl.patch | 107 |
10 files changed, 812 insertions, 0 deletions
diff --git a/community/openjdk8/APKBUILD b/community/openjdk8/APKBUILD new file mode 100644 index 0000000000..d7400dbb9a --- /dev/null +++ b/community/openjdk8/APKBUILD @@ -0,0 +1,255 @@ +# Contributor: Timo Teras <timo.teras@iki.fi> +# Maintainer: Timo Teras <timo.teras@iki.fi> +pkgname=openjdk8 +_java_ver=8 +_jdk_update=66 +_jdk_build=02 +pkgver=$_java_ver.$_jdk_update.$_jdk_build +pkgrel=1 +pkgdesc="Sun OpenJDK 8" +url="http://openjdk.java.net" +arch="x86_64 x86" +license="custom" +depends="$pkgname-jre" +options="sover-namecheck" +makedepends="bash findutils tar zip file paxmark gawk util-linux libxslt + autoconf automake linux-headers sed + openjdk7 ca-certificates + nss-dev cups-dev jpeg-dev giflib-dev libpng-dev libxt-dev + lcms2-dev libxp-dev libxtst-dev libxinerama-dev zlib-dev + libxrender-dev alsa-lib-dev freetype-dev fontconfig-dev + gtk+2.0-dev krb5-dev attr-dev pcsc-lite-dev lksctp-tools-dev" +install="" + +case $CARCH in +x86) _jarch=i386;; +x86_64) _jarch=amd64;; +arm*) _jarch=arm;; +esac + +INSTALL_BASE=/usr/lib/jvm/java-1.8-openjdk +BOOTSTRAP_JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk +_jrelib="$INSTALL_BASE/jre/lib/$_jarch" + +# exclude xawt from ldpath to avoid duplicate provides for libmawt.so +# (also in headless). in future this should be a virtual provides. +ldpath="$_jrelib:$_jrelib/native_threads:$_jrelib/headless:$_jrelib/server:$_jrelib/jli" +sonameprefix="$pkgname:" + +subpackages="$pkgname-jre-lib:jrelib $pkgname-jre $pkgname-jre-base:jrebase + $pkgname-doc:doc" + +_dropsurl=http://hg.openjdk.java.net/jdk8u/jdk8u +_dropsver=jdk${_java_ver}u${_jdk_update}-b${_jdk_build} + +source="saveas-$_dropsurl/archive/${_dropsver}.tar.bz2/jdk8u-$_dropsver.tar.bz2 + saveas-$_dropsurl/corba/archive/${_dropsver}.tar.bz2/corba-$_dropsver.tar.bz2 + saveas-$_dropsurl/jaxp/archive/${_dropsver}.tar.bz2/jaxp-$_dropsver.tar.bz2 + saveas-$_dropsurl/jaxws/archive/${_dropsver}.tar.bz2/jaxws-$_dropsver.tar.bz2 + saveas-$_dropsurl/jdk/archive/${_dropsver}.tar.bz2/jdk-$_dropsver.tar.bz2 + saveas-$_dropsurl/langtools/archive/${_dropsver}.tar.bz2/langtools-$_dropsver.tar.bz2 + saveas-$_dropsurl/nashorn/archive/${_dropsver}.tar.bz2/nashorn-$_dropsver.tar.bz2 + saveas-$_dropsurl/hotspot/archive/${_dropsver}.tar.bz2/hotspot-$_dropsver.tar.bz2 + + icedtea-hotspot-musl.patch + icedtea-hotspot-noagent-musl.patch + icedtea-hotspot-uclibc-fixes.patch + icedtea-jdk-execinfo.patch + icedtea-jdk-fix-ipv6-init.patch + icedtea-jdk-musl.patch + icedtea-jdk-includes.patch + fix-libjvm-load.patch + build-demo-ldflags.patch + " + +_builddir="$srcdir/jdk8u-$_dropsver" + +prepare() { + cd "$_builddir" + update_config_sub || return 1 + + local module + for module in corba hotspot jdk jaxws jaxp langtools nashorn; do + ln -s ../${module}-${_dropsver} ${module} + done + + for patch in $source; do + case $patch in + *.patch) + msg "Applying patch $patch" + busybox patch -p1 < "$srcdir"/$patch || return 1 + ;; + esac + done +} + +build() { + cd "$_builddir" + unset JAVA_HOME + export MAKEFLAGS=${MAKEFLAGS/-j*} + sh ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --target=$CTARGET \ + --prefix=$INSTALL_BASE \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + --with-update-version="${_jdk_update}" \ + --with-build-number="b${_jdk_build}" \ + --with-user-release-suffix="alpine-r${pkgrel}" \ + --enable-unlimited-crypto \ + --with-zlib=system \ + --with-giflib=system \ + --with-extra-cflags="$CFLAGS" \ + --with-extra-cxxflags="$CXXFLAGS" \ + --with-extra-ldflags="$LDFLAGS" \ + --disable-freetype-bundling \ + --with-boot-jdk="$BOOTSTRAP_JAVA_HOME" \ + || return 1 + + make DEBUG_BINARIES=true || return 1 + make docs || return 1 + + # agent was patched off; make empty sa-jdi.jar to make image builder happy + local build + for build in build/* ; do + touch $build/jdk/lib/sa-jdi.jar + done + make images || return 1 +} + +list_paxables() { + file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//' +} + +pax_mark_vm() { + local paxflags="-mp" + [ "$CARCH" = "x86" ] && paxflags="-msp" + + for paxable in $(list_paxables "${1}"/bin/* "${1}"/jre/bin/*); do + echo "PaX mark $paxflags ${paxable}" + paxmark $paxflags "${paxable}" + done +} + +package() { + mkdir -p "$pkgdir"/$INSTALL_BASE + cp -a "$_builddir"/build/*/images/j2sdk-image/* "$pkgdir"/$INSTALL_BASE + rm "$pkgdir"/$INSTALL_BASE/src.zipa + + find "$pkgdir"/$INSTALL_BASE -iname "*.diz" -delete + find "$pkgdir"/$INSTALL_BASE -iname "*.debuginfo" -delete + find "$pkgdir"/$INSTALL_BASE -name "*.jar" \! -perm +006 \ + | xargs chmod go+r + + pax_mark_vm "$pkgdir"/$INSTALL_BASE +} + +jrelib() { + pkgdesc="OpenJDK 8 Java Runtime (class libraries)" + arch="noarch" + depends="" + + for A in jre/lib/images jre/lib/*.jar jre/lib/security \ + jre/lib/ext/*.jar jre/lib/cmm jre/ASSEMBLY_EXCEPTION \ + jre/THIRD_PARTY_README jre/LICENSE ; do + dirname=${A%/*} + mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname + mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname + done +} + +jrebase() { + pkgdesc="OpenJDK 8 Java Runtime (no GUI support)" + depends="$pkgname-jre-lib java-common" + + mkdir -p "$subpkgdir"/$INSTALL_BASE/bin + + for A in java orbd rmid servertool unpack200 keytool \ + pack200 rmiregistry tnameserv ; do + mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin + done + + # rest of the jre subdir (which were not taken by -jre subpkg) + mv "$pkgdir"/$INSTALL_BASE/jre "$subpkgdir"/$INSTALL_BASE + + pax_mark_vm "$subpkgdir"/$INSTALL_BASE +} + +jre() { + pkgdesc="OpenJDK 8 Java Runtime" + + mkdir -p "$subpkgdir" + for A in jre/bin/policytool \ + bin/appletviewer \ + bin/policytool \ + jre/lib/$_jarch/libawt_xawt.so \ + jre/lib/$_jarch/libsplashscreen.so ; do + dirname=${A%/*} + mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname + mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname + done + + pax_mark_vm "$subpkgdir"/$INSTALL_BASE +} + +doc() { + default_doc + + mkdir -p "$subpkgdir"/$INSTALL_BASE/ + mv "$pkgdir"/$INSTALL_BASE/man "$subpkgdir"/$INSTALL_BASE/ +} + +md5sums="1d115662e175470270e89a4da8e0fce2 jdk8u-jdk8u66-b02.tar.bz2 +e14d8f51b9ca30d798094a2867f3f5d0 corba-jdk8u66-b02.tar.bz2 +6bd5ae187272a209439d1a95ac6c9025 jaxp-jdk8u66-b02.tar.bz2 +15e6a93009bdc73194e7118988d5ab8d jaxws-jdk8u66-b02.tar.bz2 +74f2cf3815659b83993c4187e7fc4f6b jdk-jdk8u66-b02.tar.bz2 +de5c9b5fdbcd75028b71ed667d4b99d2 langtools-jdk8u66-b02.tar.bz2 +7da4e88349cfc45ee9726eaa4386be03 nashorn-jdk8u66-b02.tar.bz2 +b49a7b7f2db5b07306b7b5739e87ccc0 hotspot-jdk8u66-b02.tar.bz2 +f87dd2c4c3c97fc3ac33080a65ca9e14 icedtea-hotspot-musl.patch +a5841507a216890bd8419d496bb118c3 icedtea-hotspot-noagent-musl.patch +43023861c5f6efc3139a834aa3ec0476 icedtea-hotspot-uclibc-fixes.patch +bdea7060a067faf1c2de5f4eb6e8525d icedtea-jdk-execinfo.patch +250b0807b59762670954b132e8f8dfba icedtea-jdk-fix-ipv6-init.patch +fc1dc983dc562eda399c9d7eabd3b299 icedtea-jdk-musl.patch +fc7d3cc1f5a5615574fd1e416144a042 icedtea-jdk-includes.patch +9b95183ae088ac2520ac66ae587619e4 fix-libjvm-load.patch +ea23c28032d50816a243d15afb2d8fb6 build-demo-ldflags.patch" +sha256sums="f4dbc2d8f184d60b2caee56c86e29a3fae6025ee6606079e9e8a607402b631f9 jdk8u-jdk8u66-b02.tar.bz2 +7cd14a32a00f9051a7c37d2c263626b97463ef7874df34175a8807bc15d2ac60 corba-jdk8u66-b02.tar.bz2 +c9b1c7f21d5bc335b4bedb327267b68ea5b90bef2ed3938c9de08d5f5ca3de43 jaxp-jdk8u66-b02.tar.bz2 +e46c6ad5b1f7661913953acb140affc25d281bcee61b50c6a79f6c4b189c4d88 jaxws-jdk8u66-b02.tar.bz2 +dc7f945fa7f428583ca6423b5a3f70f24016cb2f5c56e3f3b24647b4f6af9e15 jdk-jdk8u66-b02.tar.bz2 +853ba30f863cafd0556ca8056bf6eab16f7a63960c0e205efc729f727849a7b5 langtools-jdk8u66-b02.tar.bz2 +ab76632148a1ecba96e96e2e0409a41f7301396c8bfd863e55b883848923fdf2 nashorn-jdk8u66-b02.tar.bz2 +3950387e65b38cf599ee890a07ba28a5d1f6f1a861902dae7bd26379df7e334e hotspot-jdk8u66-b02.tar.bz2 +a7922430cb767c8a4baae232c8b2e5f377aeb7cfde0c9901cd7774f078e7f92e icedtea-hotspot-musl.patch +9223d4a1ae20b51bcb901ace115a2cd5f15b05655ea076c05f4c7f2c66f341e5 icedtea-hotspot-noagent-musl.patch +0ef7592b8f2c954eda0a6cf4dc4a4010942f35ea426f44e34412be6c9a949745 icedtea-hotspot-uclibc-fixes.patch +a35d40f24098747cdb73d9c3742cfb4aecafa0f72c9dfdfe2cb460f9706ff665 icedtea-jdk-execinfo.patch +632683ec88a6fb250ef043aae9cace605d0c669b7058f8c47b62b09b03ecc6c5 icedtea-jdk-fix-ipv6-init.patch +d3fcf4779a23181178e722a93290921f5c61ed7220d3a431953a53c24f89e562 icedtea-jdk-musl.patch +38590e411b7bf9b99f5168709b975e1c432ef600915800c709a6617504e2c13a icedtea-jdk-includes.patch +47028d87c9a65df8d0103b39bf54b2b22de7db7c52a5de1058f88f4c5ea24f0d fix-libjvm-load.patch +eebfb2613ae342587e8477a1022703ac986ed59e941ec1e96b2a3264c67c587b build-demo-ldflags.patch" +sha512sums="ddbae784fbae51b49f3308eeb3995458fb43d563a8699ef8cb3d7d3775ed58a60c1cf11339ab520bdb6300709236f28444059b2f3f5bf551faac6748a02e6779 jdk8u-jdk8u66-b02.tar.bz2 +fbaa4207a24e90f55aa3e0584598b7f4cf3baa7d565fb04699abb47fc8ff720c1c6a956b1e0296076f988517e13f3ca446aca8c60e0351a4ea25f108f954aaa1 corba-jdk8u66-b02.tar.bz2 +b258f72216202844ac25415bb5c14caf34efb110e7684d7d392b30fca1df19d064e91c3bef35e16acd1d0be6ed1dc36158cb7922cad191408883f9e241b075a5 jaxp-jdk8u66-b02.tar.bz2 +50d1a2243cea941e25a0de16010cb51db8333386b1ae9d97e8a88f9e15fcdb6fc42fc88232b632b7f56747dcb451e51decb84b4b6021a65b712f2523b64ea623 jaxws-jdk8u66-b02.tar.bz2 +1a73ca36c69e96843e3f57d8bfe0e52eee5f4c325188da6f7272e074c0b70044105ed3cad252af456b58a8c3c6f15afb41149b813ad9d5deaf098e2977688ec7 jdk-jdk8u66-b02.tar.bz2 +983df030b486f08101992a6a2c8b923e6bf445e347b96be4825f0149776fafcf536b8758db7c15034d81d10d63b7df8ac4f2be5ec8b03863cc9e6236080ec7d0 langtools-jdk8u66-b02.tar.bz2 +72173e970526e680fa4ee9e972f27c5d04e8bb0c64240914c670723fe89efbc94d80f196085968f8975ca74ce9b6fe02633224454465a5d51a2e4082306b4677 nashorn-jdk8u66-b02.tar.bz2 +e8fbbf79272ef2153a7bb4e49ada886d0505ccd3964d9ab0c6290e2b88ffde10af2be68e3b7a48a205968c5261167729db3468fad73ea2df71a51ad8ccd6727d hotspot-jdk8u66-b02.tar.bz2 +994e8a79a0a23f26d633bf2ce9dad62198c699892f6e7729cc6e509481330399bb2ba736514b516fd2b3dd125fd6c74a127ae7f16d643c3f6a69776737cdb933 icedtea-hotspot-musl.patch +d930edbb830957729031228196720fa2d50747655a9289097103d36f852ab11b7198e18805bd89c6a438c3ccf224be48cda5f994b193ab1f81a72aada0df2b16 icedtea-hotspot-noagent-musl.patch +822eee0dc4d3ba677a289dfeb3668b536d2d626708390a9d9702fb4144a481fd443a215a0d2041c6026113837aafa4ba0b5e9ead8589d2da6717a238bbc95a5a icedtea-hotspot-uclibc-fixes.patch +f6365cfafafa008bd6c1bf0ccec01a63f8a39bd1a8bc87baa492a27234d47793ba02d455e5667a873ef50148df3baaf6a8421e2da0b15faac675867da714dd5f icedtea-jdk-execinfo.patch +48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch +2fd75bb52e7c9e3b56a383b72ee519d395413b000aef94ad00b106a692a199de34967bac1120164cebce5f71d302413742922a55cc6479b2d33258aaf7d03c1b icedtea-jdk-musl.patch +7df0db85039da8cbde49093ec3299f6804370f4134554a9c26c130a4e9e0b35409a3be833f3e90764ed16718683daffb6447261db8e5988f2e0519f649aedbc6 icedtea-jdk-includes.patch +978539ba0b1f1694cda6a3a1542a4373861cbfb4dc414a3b796cd8841ecf6e12248c746b5efe2c031c85a3b0684101b29e8a5f4ff70e77c1a3f3cd7f5cb148ce fix-libjvm-load.patch +bcf9af85907b4f49f1aa470d21917280fcf9fc8892f089fe8c284ec3f2eccd57f799c7f06ce2ce641421d50396fa192cb71ccbb7a077958aacf57b8dadc80bc1 build-demo-ldflags.patch" diff --git a/community/openjdk8/build-demo-ldflags.patch b/community/openjdk8/build-demo-ldflags.patch new file mode 100644 index 0000000000..ded0f11c8b --- /dev/null +++ b/community/openjdk8/build-demo-ldflags.patch @@ -0,0 +1,21 @@ +our LDFLAGS has -Wl,-z,relro but the commas are expanded too early in makefile. + +--- ./jdk/make/CompileDemos.gmk.orig ++++ ./jdk/make/CompileDemos.gmk +@@ -245,13 +245,15 @@ + BUILD_DEMO_JVMTI_$1_CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_DEBUG_SYMBOLS) \ + -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 + ++ BUILD_DEMO_JVMTI_$1_LDFLAGS := $(filter-out -incremental:no -opt:ref,$(LDFLAGS_JDKLIB)) ++ + # Remove the -incremental:no setting to get .ilk-files like in the old build. + $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1, \ + SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \ + LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \ + OPTIMIZATION := LOW, \ + CXXFLAGS := $$($1_CXXFLAGS), \ +- LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \ ++ LDFLAGS := $$(BUILD_DEMO_JVMTI_$1_LDFLAGS), \ + LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \ + LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \ + LDFLAGS_SUFFIX_posix := $5, \ diff --git a/community/openjdk8/fix-libjvm-load.patch b/community/openjdk8/fix-libjvm-load.patch new file mode 100644 index 0000000000..22faa50b3a --- /dev/null +++ b/community/openjdk8/fix-libjvm-load.patch @@ -0,0 +1,14 @@ +musl needs LD_LIBRARY_PATH set because when .so is opened with dlopen(/abs/path) +it does not qualify for providing symbols for NEEDED dependency. + +--- src/jdk/src/solaris/bin/java_md_solinux.c.orig ++++ src/jdk/src/solaris/bin/java_md_solinux.c +@@ -291,6 +291,8 @@ + char *dmllp = NULL; + char *p; /* a utility pointer */ + ++ return JNI_TRUE; ++ + #ifdef AIX + /* We always have to set the LIBPATH on AIX because ld doesn't support $ORIGIN. */ + return JNI_TRUE; diff --git a/community/openjdk8/icedtea-hotspot-musl.patch b/community/openjdk8/icedtea-hotspot-musl.patch new file mode 100644 index 0000000000..41072defe2 --- /dev/null +++ b/community/openjdk8/icedtea-hotspot-musl.patch @@ -0,0 +1,55 @@ +--- openjdk.orig/hotspot/src/os/linux/vm/jvm_linux.cpp ++++ openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp +@@ -154,7 +154,9 @@ + #ifdef SIGSTKFLT + "STKFLT", SIGSTKFLT, /* Stack fault. */ + #endif ++#ifdef SIGCLD + "CLD", SIGCLD, /* Same as SIGCHLD (System V). */ ++#endif + "CHLD", SIGCHLD, /* Child status has changed (POSIX). */ + "CONT", SIGCONT, /* Continue (POSIX). */ + "STOP", SIGSTOP, /* Stop, unblockable (POSIX). */ +--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.inline.hpp ++++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp +@@ -52,7 +52,7 @@ + + #include <unistd.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <netdb.h> + + inline void* os::thread_local_storage_at(int index) { +--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp ++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +@@ -73,7 +73,6 @@ + # include <pwd.h> + # include <poll.h> + # include <ucontext.h> +-# include <fpu_control.h> + + #ifdef AMD64 + #define REG_SP REG_RSP +@@ -532,6 +531,9 @@ + + ShouldNotReachHere(); + } ++ ++#define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw)) ++#define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)) + + void os::Linux::init_thread_fpu_state(void) { + #ifndef AMD64 +--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp ++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp +@@ -32,7 +32,9 @@ + // map stack pointer to thread pointer - see notes in threadLS_linux_x86.cpp + #define SP_BITLENGTH 32 + #define PAGE_SHIFT 12 ++ #ifndef PAGE_SIZE + #define PAGE_SIZE (1UL << PAGE_SHIFT) ++ #endif + static Thread* _sp_map[1UL << (SP_BITLENGTH - PAGE_SHIFT)]; + + public: diff --git a/community/openjdk8/icedtea-hotspot-noagent-musl.patch b/community/openjdk8/icedtea-hotspot-noagent-musl.patch new file mode 100644 index 0000000000..aa6c14ef05 --- /dev/null +++ b/community/openjdk8/icedtea-hotspot-noagent-musl.patch @@ -0,0 +1,51 @@ +--- src/hotspot.orig/make/linux/makefiles/defs.make ++++ src/hotspot/make/linux/makefiles/defs.make +@@ -292,6 +292,9 @@ + + # Serviceability Binaries + # No SA Support for PPC, IA64, ARM or zero ++# or if thread_db.h missing (musl) ++ ++ifneq ($(wildcard /usr/include/thread_db.h),) + ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ + $(EXPORT_LIB_DIR)/sa-jdi.jar + ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ +@@ -304,6 +307,10 @@ + ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo + ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo + endif ++endif ++else ++ADD_SA_BINARIES/x86 = ++ADD_SA_BINARIES/sparc = + endif + ADD_SA_BINARIES/ppc = + ADD_SA_BINARIES/ia64 = +--- src/hotspot.orig/make/linux/makefiles/sa.make ++++ src/hotspot/make/linux/makefiles/sa.make +@@ -61,7 +61,8 @@ + # also, we don't build SA on Itanium or zero. + + all: +- if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \ ++ if [ -d $(AGENT_DIR) -a -f /usr/include/thread_db.h \ ++ -a "$(SRCARCH)" != "ia64" \ + -a "$(SRCARCH)" != "zero" ] ; then \ + $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \ + fi +--- src/hotspot.orig/make/linux/makefiles/saproc.make ++++ src/hotspot/make/linux/makefiles/saproc.make +@@ -61,10 +61,13 @@ + + # if $(AGENT_DIR) does not exist, we don't build SA + # also, we don't build SA on Itanium or zero. ++# check for thread_db.h too (musl does not have it). + ++ifneq ($(wildcard /usr/include/thread_db.h),) + ifneq ($(wildcard $(AGENT_DIR)),) + ifneq ($(filter-out ia64 zero,$(SRCARCH)),) + BUILDLIBSAPROC = $(LIBSAPROC) ++endif + endif + endif + diff --git a/community/openjdk8/icedtea-hotspot-uclibc-fixes.patch b/community/openjdk8/icedtea-hotspot-uclibc-fixes.patch new file mode 100644 index 0000000000..1c1d822760 --- /dev/null +++ b/community/openjdk8/icedtea-hotspot-uclibc-fixes.patch @@ -0,0 +1,93 @@ +--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp +@@ -112,7 +112,6 @@ + # include <string.h> + # include <syscall.h> + # include <sys/sysinfo.h> +-# include <gnu/libc-version.h> + # include <sys/ipc.h> + # include <sys/shm.h> + # include <link.h> +@@ -632,6 +631,13 @@ + // detecting pthread library + + void os::Linux::libpthread_init() { ++#if 1 ++ // Hard code Alpine Linux supported uclibc/musl compatible settings ++ os::Linux::set_glibc_version("glibc 2.9"); ++ os::Linux::set_libpthread_version("NPTL"); ++ os::Linux::set_is_NPTL(); ++ os::Linux::set_is_floating_stack(); ++#else + // Save glibc and pthread version strings. Note that _CS_GNU_LIBC_VERSION + // and _CS_GNU_LIBPTHREAD_VERSION are supported in glibc >= 2.3.2. Use a + // generic name for earlier versions. +@@ -690,6 +696,7 @@ + if (os::Linux::is_NPTL() || os::Linux::supports_variable_stack_size()) { + os::Linux::set_is_floating_stack(); + } ++#endif + } + + ///////////////////////////////////////////////////////////////////////////// +@@ -2951,11 +2958,7 @@ + // If we are running with earlier version, which did not have symbol versions, + // we should use the base version. + void* os::Linux::libnuma_dlsym(void* handle, const char *name) { +- void *f = dlvsym(handle, name, "libnuma_1.1"); +- if (f == NULL) { +- f = dlsym(handle, name); +- } +- return f; ++ return dlsym(handle, name); + } + + bool os::Linux::libnuma_init() { +@@ -5312,7 +5315,25 @@ + // Linux doesn't yet have a (official) notion of processor sets, + // so just return the system wide load average. + int os::loadavg(double loadavg[], int nelem) { ++#ifdef __UCLIBC__ ++ FILE *LOADAVG; ++ double avg[3] = { 0.0, 0.0, 0.0 }; ++ int i, res = -1;; ++ ++ if ((LOADAVG = fopen("/proc/loadavg", "r"))) { ++ fscanf(LOADAVG, "%lf %lf %lf", &avg[0], &avg[1], &avg[2]); ++ res = 0; ++ fclose(LOADAVG); ++ } ++ ++ for (i = 0; (i < nelem) && (i < 3); i++) { ++ loadavg[i] = avg[i]; ++ } ++ ++ return res; ++#else + return ::getloadavg(loadavg, nelem); ++#endif + } + + void os::pause() { +--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp ++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +@@ -253,7 +253,7 @@ + #elif defined(__APPLE__) + inline int g_isnan(double f) { return isnan(f); } + #elif defined(LINUX) || defined(_ALLBSD_SOURCE) +-inline int g_isnan(float f) { return isnanf(f); } ++inline int g_isnan(float f) { return isnan(f); } + inline int g_isnan(double f) { return isnan(f); } + #else + #error "missing platform-specific definition here" +@@ -267,8 +267,8 @@ + + // Checking for finiteness + +-inline int g_isfinite(jfloat f) { return finite(f); } +-inline int g_isfinite(jdouble f) { return finite(f); } ++inline int g_isfinite(jfloat f) { return isfinite(f); } ++inline int g_isfinite(jdouble f) { return isfinite(f); } + + + // Wide characters diff --git a/community/openjdk8/icedtea-jdk-execinfo.patch b/community/openjdk8/icedtea-jdk-execinfo.patch new file mode 100644 index 0000000000..e4ae562c57 --- /dev/null +++ b/community/openjdk8/icedtea-jdk-execinfo.patch @@ -0,0 +1,20 @@ +--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c ++++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c +@@ -27,7 +27,7 @@ + #include <X11/Xutil.h> + #include <X11/Xos.h> + #include <X11/Xatom.h> +-#ifdef __linux__ ++#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__) + #include <execinfo.h> + #endif + +@@ -689,7 +689,7 @@ + return ret; + } + +-#ifdef __linux__ ++#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__) + void print_stack(void) + { + void *array[10]; diff --git a/community/openjdk8/icedtea-jdk-fix-ipv6-init.patch b/community/openjdk8/icedtea-jdk-fix-ipv6-init.patch new file mode 100644 index 0000000000..11f3bf6dd6 --- /dev/null +++ b/community/openjdk8/icedtea-jdk-fix-ipv6-init.patch @@ -0,0 +1,42 @@ +--- openjdk/jdk/src/solaris/native/java/net/net_util_md.c.orig ++++ openjdk/jdk/src/solaris/native/java/net/net_util_md.c +@@ -561,7 +561,7 @@ + + static struct localinterface *localifs = 0; + static int localifsSize = 0; /* size of array */ +-static int nifs = 0; /* number of entries used in array */ ++static int nifs = -1; /* number of entries used in array */ + + /* not thread safe: make sure called once from one thread */ + +@@ -573,6 +573,10 @@ + int index, x1, x2, x3; + unsigned int u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,ua,ub,uc,ud,ue,uf; + ++ if (nifs >= 0) ++ return ; ++ nifs = 0; ++ + if ((f = fopen("/proc/net/if_inet6", "r")) == NULL) { + return ; + } +@@ -601,7 +605,7 @@ + localifs = (struct localinterface *) realloc ( + localifs, sizeof (struct localinterface)* (localifsSize+5)); + if (localifs == 0) { +- nifs = 0; ++ nifs = -1; + fclose (f); + return; + } +@@ -624,9 +628,7 @@ + static int getLocalScopeID (char *addr) { + struct localinterface *lif; + int i; +- if (localifs == 0) { +- initLocalIfs(); +- } ++ initLocalIfs(); + for (i=0, lif=localifs; i<nifs; i++, lif++) { + if (memcmp (addr, lif->localaddr, 16) == 0) { + return lif->index; diff --git a/community/openjdk8/icedtea-jdk-includes.patch b/community/openjdk8/icedtea-jdk-includes.patch new file mode 100644 index 0000000000..e4962e7d37 --- /dev/null +++ b/community/openjdk8/icedtea-jdk-includes.patch @@ -0,0 +1,154 @@ +--- src/jdk.orig/src/aix/native/java/net/aix_close.c ++++ src/jdk/src/aix/native/java/net/aix_close.c +@@ -50,7 +50,7 @@ + #include <unistd.h> + #include <errno.h> + +-#include <sys/poll.h> ++#include <poll.h> + + /* + * Stack allocated by thread when doing blocking operation +--- src/jdk.orig/src/aix/native/sun/nio/ch/AixNativeThread.c ++++ src/jdk/src/aix/native/sun/nio/ch/AixNativeThread.c +@@ -32,7 +32,7 @@ + #include "sun_nio_ch_NativeThread.h" + + #include <pthread.h> +-#include <sys/signal.h> ++#include <signal.h> + + /* Also defined in src/aix/native/java/net/aix_close.c */ + #define INTERRUPT_SIGNAL (SIGRTMAX - 1) +--- src/jdk.orig/src/aix/native/sun/nio/ch/AixPollPort.c ++++ src/jdk/src/aix/native/sun/nio/ch/AixPollPort.c +@@ -34,7 +34,7 @@ + #include <unistd.h> + #include <sys/types.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/pollset.h> + #include <fcntl.h> + #include <stddef.h> +--- src/jdk.orig/src/macosx/javavm/export/jvm_md.h ++++ src/jdk/src/macosx/javavm/export/jvm_md.h +@@ -60,7 +60,7 @@ + #include <sys/stat.h> + #include <fcntl.h> + #include <errno.h> +-#include <sys/signal.h> ++#include <signal.h> + + /* O Flags */ + +--- src/jdk.orig/src/solaris/javavm/export/jvm_md.h ++++ src/jdk/src/solaris/javavm/export/jvm_md.h +@@ -65,7 +65,7 @@ + #include <sys/stat.h> + #include <fcntl.h> + #include <errno.h> +-#include <sys/signal.h> ++#include <signal.h> + + /* O Flags */ + +--- src/jdk.orig/src/solaris/native/java/net/PlainSocketImpl.c ++++ src/jdk/src/solaris/native/java/net/PlainSocketImpl.c +@@ -28,7 +28,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #if defined(__linux__) && !defined(USE_SELECT) +-#include <sys/poll.h> ++#include <poll.h> + #endif + #include <netinet/tcp.h> /* Defines TCP_NODELAY, needed for 2.6 */ + #include <netinet/in.h> +--- src/jdk.orig/src/solaris/native/java/net/bsd_close.c ++++ src/jdk/src/solaris/native/java/net/bsd_close.c +@@ -36,7 +36,7 @@ + #include <sys/uio.h> + #include <unistd.h> + #include <errno.h> +-#include <sys/poll.h> ++#include <poll.h> + + /* + * Stack allocated by thread when doing blocking operation +--- src/jdk.orig/src/solaris/native/java/net/linux_close.c ++++ src/jdk/src/solaris/native/java/net/linux_close.c +@@ -34,7 +34,7 @@ + #include <sys/uio.h> + #include <unistd.h> + #include <errno.h> +-#include <sys/poll.h> ++#include <poll.h> + + /* + * Stack allocated by thread when doing blocking operation +--- src/jdk.orig/src/solaris/native/java/net/net_util_md.h ++++ src/jdk/src/solaris/native/java/net/net_util_md.h +@@ -33,7 +33,7 @@ + #include <unistd.h> + + #ifndef USE_SELECT +-#include <sys/poll.h> ++#include <poll.h> + #endif + + +--- src/jdk.orig/src/solaris/native/sun/nio/ch/DevPollArrayWrapper.c ++++ src/jdk/src/solaris/native/sun/nio/ch/DevPollArrayWrapper.c +@@ -28,7 +28,7 @@ + #include "jvm.h" + #include "jlong.h" + #include "sun_nio_ch_DevPollArrayWrapper.h" +-#include <sys/poll.h> ++#include <poll.h> + #include <unistd.h> + #include <sys/time.h> + +--- src/jdk.orig/src/solaris/native/sun/nio/ch/NativeThread.c ++++ src/jdk/src/solaris/native/sun/nio/ch/NativeThread.c +@@ -34,7 +34,7 @@ + + #ifdef __linux__ + #include <pthread.h> +- #include <sys/signal.h> ++ #include <signal.h> + /* Also defined in net/linux_close.c */ + #define INTERRUPT_SIGNAL (SIGRTMAX - 2) + #elif __solaris__ +--- src/jdk.orig/src/solaris/native/sun/nio/ch/Net.c ++++ src/jdk/src/solaris/native/sun/nio/ch/Net.c +@@ -23,7 +23,7 @@ + * questions. + */ + +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/types.h> + #include <sys/socket.h> + #include <string.h> +--- src/jdk.orig/src/solaris/native/sun/nio/fs/LinuxWatchService.c ++++ src/jdk/src/solaris/native/sun/nio/fs/LinuxWatchService.c +@@ -32,7 +32,7 @@ + #include <dlfcn.h> + #include <sys/types.h> + #include <sys/socket.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/inotify.h> + + #include "sun_nio_fs_LinuxWatchService.h" +--- src/jdk.orig/src/solaris/transport/socket/socket_md.c ++++ src/jdk/src/solaris/transport/socket/socket_md.c +@@ -37,7 +37,7 @@ + #include <thread.h> + #else + #include <pthread.h> +-#include <sys/poll.h> ++#include <poll.h> + #endif + + #include "socket_md.h" diff --git a/community/openjdk8/icedtea-jdk-musl.patch b/community/openjdk8/icedtea-jdk-musl.patch new file mode 100644 index 0000000000..49a88d93fe --- /dev/null +++ b/community/openjdk8/icedtea-jdk-musl.patch @@ -0,0 +1,107 @@ +--- src/jdk.orig/src/share/native/com/sun/java/util/jar/pack/zip.cpp ++++ src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp +@@ -46,6 +46,8 @@ + + #include "zip.h" + ++#define uchar unsigned char ++ + #ifdef NO_ZLIB + + inline bool jar::deflate_bytes(bytes& head, bytes& tail) { +--- src/jdk.orig/src/share/native/com/sun/java/util/jar/pack/zip.h ++++ src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h +@@ -23,9 +23,7 @@ + * questions. + */ + +-#define ushort unsigned short +-#define uint unsigned int +-#define uchar unsigned char ++#include <sys/types.h> + + struct unpacker; + +--- src/jdk.orig/src/share/native/sun/awt/medialib/mlib_types.h ++++ src/jdk/src/share/native/sun/awt/medialib/mlib_types.h +@@ -27,6 +27,7 @@ + #ifndef MLIB_TYPES_H + #define MLIB_TYPES_H + ++#include <stddef.h> /* for NULL */ + #include <limits.h> + #if defined(_MSC_VER) + #include <float.h> /* for FLT_MAX and DBL_MAX */ +--- src/jdk.orig/src/solaris/native/java/net/Inet4AddressImpl.c ++++ src/jdk/src/solaris/native/java/net/Inet4AddressImpl.c +@@ -47,7 +47,7 @@ + + #include "java_net_Inet4AddressImpl.h" + +-#if defined(__GLIBC__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 601104)) ++#if defined(__linux__) || (defined(__FreeBSD__) && (__FreeBSD_version >= 601104)) + #define HAS_GLIBC_GETHOSTBY_R 1 + #endif + +--- src/jdk.orig/src/solaris/native/java/net/NetworkInterface.c ++++ src/jdk/src/solaris/native/java/net/NetworkInterface.c +@@ -47,7 +47,6 @@ + + #ifdef __linux__ + #include <sys/ioctl.h> +-#include <bits/ioctls.h> + #include <sys/utsname.h> + #include <stdio.h> + #endif +--- src/jdk.orig/src/solaris/native/java/net/PlainDatagramSocketImpl.c ++++ src/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c +@@ -35,7 +35,6 @@ + #endif + #ifdef __linux__ + #include <unistd.h> +-#include <sys/sysctl.h> + #include <sys/utsname.h> + #include <netinet/ip.h> + +--- src/jdk.orig/src/solaris/native/java/net/PlainSocketImpl.c ++++ src/jdk/src/solaris/native/java/net/PlainSocketImpl.c +@@ -43,7 +43,6 @@ + #endif + #ifdef __linux__ + #include <unistd.h> +-#include <sys/sysctl.h> + #endif + + #include "jvm.h" +--- src/jdk.orig/src/solaris/native/java/net/linux_close.c ++++ src/jdk/src/solaris/native/java/net/linux_close.c +@@ -56,7 +56,7 @@ + /* + * Signal to unblock thread + */ +-static int sigWakeup = (__SIGRTMAX - 2); ++static int sigWakeup; + + /* + * The fd table and the number of file descriptors +@@ -95,6 +95,9 @@ + /* + * Setup the signal handler + */ ++#ifndef __AIX ++ sigWakeup = SIGRTMAX - 2; ++#endif + sa.sa_handler = sig_wakeup; + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); +--- src/jdk.orig/src/solaris/native/sun/nio/ch/NativeThread.c ++++ src/jdk/src/solaris/native/sun/nio/ch/NativeThread.c +@@ -36,7 +36,7 @@ + #include <pthread.h> + #include <sys/signal.h> + /* Also defined in net/linux_close.c */ +- #define INTERRUPT_SIGNAL (__SIGRTMAX - 2) ++ #define INTERRUPT_SIGNAL (SIGRTMAX - 2) + #elif __solaris__ + #include <thread.h> + #include <signal.h> |