aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch
diff options
context:
space:
mode:
authorAndré Draszik <andre.draszik@jci.com>2018-03-06 11:01:53 +0200
committerMaxin B. John <maxin.john@intel.com>2018-03-06 11:03:09 +0200
commit3668ba76f44bc778ba4446236088c22948a644d0 (patch)
treecc3291774f0e41350f22a1e5e0196e08f14500a3 /recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch
parentf8be3065f7c5dbd73516394c0bcd2c7ba1777abf (diff)
downloadmeta-java-3668ba76f44bc778ba4446236088c22948a644d0.tar.gz
meta-java-3668ba76f44bc778ba4446236088c22948a644d0.tar.bz2
meta-java-3668ba76f44bc778ba4446236088c22948a644d0.zip
openjdk-8: fix musl build
Add various patches to make it work in musl. Some of them are generic enough to be applied for all builds, some need to be specific to musl. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
Diffstat (limited to 'recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch')
-rw-r--r--recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch b/recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch
new file mode 100644
index 0000000..f0696fc
--- /dev/null
+++ b/recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch
@@ -0,0 +1,75 @@
+From a02a9fbc3f1fed181504bdb5b0a16863247f92fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Date: Fri, 2 Mar 2018 10:11:51 +0000
+Subject: [PATCH 6/9] hotspot: os_linux: remove glibc dependencies
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* gnu/libc-version.h doesn't exist in musl
+ | hotspot/src/os/linux/vm/os_linux.cpp:97:11: fatal error: gnu/libc-version.h: No such file or directory
+ | # include <gnu/libc-version.h>
+ | ^~~~~~~~~~~~~~~~~~~~
+
+* dlvsym() is a GNU extension and doesn't exist in musl
+ | hotspot/src/os/linux/vm/os_linux.cpp:2846:13: error: 'dlvsym' was not declared in this scope
+ | void *f = dlvsym(handle, name, "libnuma_1.1");
+ | ^~~~~~
+ | hotspot/src/os/linux/vm/os_linux.cpp:2846:13: note: suggested alternative: 'dlsym'
+ | void *f = dlvsym(handle, name, "libnuma_1.1");
+ | ^~~~~~
+ | dlsym
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: André Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+---
+ hotspot/src/os/linux/vm/os_linux.cpp | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
+index 044a70a6..3137796a 100644
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -94,7 +94,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>
+@@ -530,6 +529,13 @@ void os::Linux::hotspot_sigmask(Thread* thread) {
+ // detecting pthread library
+
+ void os::Linux::libpthread_init() {
++#if 1
++ // Hard code supported musl compatible settings (taken from alpine linux)
++ 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.
+@@ -588,6 +594,7 @@ void os::Linux::libpthread_init() {
+ if (os::Linux::is_NPTL() || os::Linux::supports_variable_stack_size()) {
+ os::Linux::set_is_floating_stack();
+ }
++#endif
+ }
+
+ /////////////////////////////////////////////////////////////////////////////
+@@ -2814,6 +2821,9 @@ int os::Linux::sched_getcpu_syscall(void) {
+ return (retval == -1) ? retval : cpu;
+ }
+
++// musl doesn't have dlvsym()
++#define dlvsym(h,s,v) dlsym(h,s)
++
+ // Something to do with the numa-aware allocator needs these symbols
+ extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
+ extern "C" JNIEXPORT void numa_error(char *where) { }
+--
+2.16.2
+