Skip to contentSkip to conversation

layer.conf: stop OpenJDK-8(native) build dependencies from being installed

PATCH In review André Draszik 2 participants 14 messages Aug 20, 2018 – Aug 22, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/5 layer.conf: stop OpenJDK-8(native) build dependencies from being installed

From: André Draszik <[email protected]>

Avoid installation of all openjdk-8-native buildtime dependencies into a depending recipe's sysroot.
To execute openjdk-8-native as part of a depending recipe's build, we don't need the openjdk-8-native build time dependencies (like ant-native, or more importantly icedtea-7-native), just its runtime dependencies, unless of course that depending recipe's builds needs those tools itself. In that case, it needs to specify them explicitly, though (of course!).

Use SSTATE_EXCLUDEDEPS_SYSROOT to prevent openjdk-8-native build time dependencies from being copied in the sysroot unless explicitly requested.

---
 conf/layer.conf | 4 ++++
 1 file changed, 4 insertions(+)
conf/layer.conf +4 -0
index 3b00f61..8e8a300 100644
@@ -14,3 +14,7 @@ LICENSE_PATH += "${LAYERDIR}/licenses"
 SIGGEN_EXCLUDERECIPES_ABISAFE += "\
     ca-certificates-java \
 "
+
+SSTATE_EXCLUDEDEPS_SYSROOT += "\
+    openjdk-8-native->(ant-native|attr-native|coreutils-native|icedtea7-native|libxslt-native|make-native|openssl-native|zip-native|unzip-native) \
+"
Signature · 1 line
2.18.0
#1 lore raw

PATCH v2 2/5 openjdk-8: fix malformed patches

From: André Draszik <[email protected]>

git am complains:
Warning: commit message did not conform to UTF-8.
You may want to amend it after fixing the message, or set the config variable i18n.commitencoding to the encoding your project uses.

Not sure what happened there when they were applied to git, they certainly weren't sent like that to the mailing list.

---
 ...-hotspot-fix-compilation-with-security-flags-enabled.patch | 4 ++--
 .../0005-hotspot-use-correct-include-for-poll.patch           | 4 ++--
 .../0006-hotspot-don-t-rely-on-old-SysV-SIGCLD.patch          | 4 ++--
 .../0007-jdk-use-correct-include-for-poll.patch               | 4 ++--
 .../0008-jdk-use-correct-include-for-signal.patch             | 4 ++--
 .../0009-jdk-disable-backtrace-musl-build-fix.patch           | 4 ++--
 ...0010-build-fix-build-on-as-needed-toolchains-generic.patch | 4 ++--
 .../musl-0001-hotspot-stop-using-obsolete-isnanf.patch        | 4 ++--
 ...sl-0002-jdk-give-a-much-bigger-buffer-to-getmntent_r.patch | 4 ++--
 ...0003-jdk-fix-libjvm-load-on-musl-set-LD_LIBRARY_PATH.patch | 4 ++--
 ...musl-0004-jdk-remove-sysctl.h-include-musl-build-fix.patch | 4 ++--
 .../musl-0005-hotspot-disable-agent-build.patch               | 4 ++--
 ...musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch | 4 ++--
 ...hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch | 4 ++--
 ...jdk-musl-build-fix-use-SIGRTMAX-rather-than-__SIGRTM.patch | 4 ++--
 .../musl-0009-jdk-musl-has-gethostby_r.patch                  | 4 ++--
 16 files changed, 32 insertions(+), 32 deletions(-)
recipes-core/openjdk/patches-openjdk-8/0002-hotspot-fix-compilation-with-security-flags-enabled.patch +2 -2
index dcadea1..a94e90f 100644
@@ -1,5 +1,5 @@
 From bdea8cf299313388ec41ea20281deca6dc4f764d 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 14:41:06 +0000
 Subject: [PATCH 2/9] hotspot: fix compilation with security flags enabled
 MIME-Version: 1.0
@@ -18,7 +18,7 @@ Content-Transfer-Encoding: 8bit
 Backport a patch to fix this.
 
 Upstream-Status: Backport [http://hg.openjdk.java.net/jdk10/jdk10/hotspot/rev/eb11b3f0ae65]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  hotspot/src/share/vm/code/dependencies.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
recipes-core/openjdk/patches-openjdk-8/0005-hotspot-use-correct-include-for-poll.patch +2 -2
index 8b3420e..45573e4 100644
@@ -1,5 +1,5 @@
 From 79e35bd203b40979e1d241a04d6d9df373327bef 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 09:28:06 +0000
 Subject: [PATCH 5/9] hotspot: use correct include for poll
 MIME-Version: 1.0
@@ -20,7 +20,7 @@ the following command:
     done
 
 Upstream-Status: Pending
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  hotspot/src/os/aix/vm/os_aix.inline.hpp         | 2 +-
  hotspot/src/os/bsd/vm/os_bsd.inline.hpp         | 2 +-
recipes-core/openjdk/patches-openjdk-8/0006-hotspot-don-t-rely-on-old-SysV-SIGCLD.patch +2 -2
index 81dbebd..f6af83e 100644
@@ -1,5 +1,5 @@
 From 4ed4b58270dcd3d897adef605893c104944c4f3a 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 15:00:55 +0000
 Subject: [PATCH 6/9] hotspot: don't rely on old SysV SIGCLD
 MIME-Version: 1.0
@@ -17,7 +17,7 @@ leads to the following compilation error:
 Just make it conditional, so the code compiles everywhere.
 
 Upstream-Status: Pending
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  hotspot/src/os/linux/vm/jvm_linux.cpp | 2 ++
  1 file changed, 2 insertions(+)
recipes-core/openjdk/patches-openjdk-8/0007-jdk-use-correct-include-for-poll.patch +2 -2
index af4dde9..2efdbf5 100644
@@ -1,5 +1,5 @@
 From df9c5738c4a8a00ba65948503ff0c0cfa2f17e95 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 09:28:06 +0000
 Subject: [PATCH 7/9] jdk: use correct include for poll
 MIME-Version: 1.0
@@ -23,7 +23,7 @@ the following command:
     done
 
 Upstream-Status: Pending
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/aix/native/java/net/aix_close.c                 | 2 +-
  jdk/src/aix/native/sun/nio/ch/AixPollPort.c             | 2 +-
recipes-core/openjdk/patches-openjdk-8/0008-jdk-use-correct-include-for-signal.patch +2 -2
index 406de52..05f9558 100644
@@ -1,5 +1,5 @@
 From a063ee68bc0dd7dbf9737df4ee191e98796f2f6a 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 09:28:06 +0000
 Subject: [PATCH 8/9] jdk: use correct include for signal
 MIME-Version: 1.0
@@ -24,7 +24,7 @@ the following command:
     done
 
 Upstream-Status: Pending
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/aix/native/sun/nio/ch/AixNativeThread.c  | 2 +-
  jdk/src/macosx/javavm/export/jvm_md.h            | 2 +-
recipes-core/openjdk/patches-openjdk-8/0009-jdk-disable-backtrace-musl-build-fix.patch +2 -2
index 68f3d7a..43130b5 100644
@@ -1,5 +1,5 @@
 From 8ef989f82b29655e8d4532f14d5aa12a2999d850 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Fri, 2 Mar 2018 13:58:07 +0000
 Subject: [PATCH 10/10] jdk: disable backtrace() (musl build fix)
 MIME-Version: 1.0
@@ -13,7 +13,7 @@ Use appropriate #ifdef to disable their use on musl and thus
 to fix the build on musl.
 
 Upstream-Status: Pending
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/solaris/native/sun/xawt/XToolkit.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
recipes-core/openjdk/patches-openjdk-8/0010-build-fix-build-on-as-needed-toolchains-generic.patch +2 -2
index 7decd5e..2d02b7c 100644
@@ -1,5 +1,5 @@
 From 84bcdb9cdab0e0be9cdfededfb518d3cea9009e3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik at jci.com>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Mon, 12 Mar 2018 15:40:58 +0000
 Subject: [PATCH] build: fix build on --as-needed toolchains (generic)
 MIME-Version: 1.0
@@ -64,7 +64,7 @@ place the $EXPECTED_OBJS early in the command line, before
 any additional libraries, so as to fix this once and for
 all.
 
-Signed-off-by: André Draszik <andre.draszik at jci.com>
+Signed-off-by: André Draszik <[email protected]>
 ---
 Upstream-Status: Pending
  make/common/NativeCompilation.gmk | 5 ++---
recipes-core/openjdk/patches-openjdk-8/musl-0001-hotspot-stop-using-obsolete-isnanf.patch +2 -2
index e165170..ebe6547 100644
@@ -1,5 +1,5 @@
 From 1624e2dd3739fe208efa13b31abf4bc53ae2e5c1 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 11:24:44 +0000
 Subject: [PATCH 1/9] hotspot: stop using obsolete isnanf()
 MIME-Version: 1.0
@@ -19,7 +19,7 @@ replacing isnanf(), even on glibc.
 Do so.
 
 Upstream-Status: Pending
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
recipes-core/openjdk/patches-openjdk-8/musl-0002-jdk-give-a-much-bigger-buffer-to-getmntent_r.patch +2 -2
index 1874f87..06cdcaf 100644
@@ -1,5 +1,5 @@
 From 2ba0f3fae90f2d2c310663e4b39e90f969116241 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 15:59:09 +0000
 Subject: [PATCH 2/9] jdk: give a much bigger buffer to getmntent_r()
 MIME-Version: 1.0
@@ -9,7 +9,7 @@ Content-Transfer-Encoding: 8bit
 https://bugs.alpinelinux.org/issues/7093
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  .../native/sun/nio/fs/LinuxNativeDispatcher.c      | 29 +++++++++++++++-------
  1 file changed, 20 insertions(+), 9 deletions(-)
recipes-core/openjdk/patches-openjdk-8/musl-0003-jdk-fix-libjvm-load-on-musl-set-LD_LIBRARY_PATH.patch +2 -2
index 8ad000d..6990d55 100644
@@ -1,5 +1,5 @@
 From 4429d73853b3938a53a6058cc0dcaac08d191995 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 16:01:54 +0000
 Subject: [PATCH 3/9] jdk: fix libjvm load on musl (set LD_LIBRARY_PATH)
 MIME-Version: 1.0
@@ -14,7 +14,7 @@ Patch taken from Alpine Linux:
     https://git.alpinelinux.org/cgit/aports/tree/community/openjdk8/icedtea-jdk-fix-libjvm-load.patch?id=4d34f29dddd3934358df7a9607706d09ae0433c3
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/solaris/bin/java_md_solinux.c | 2 ++
  1 file changed, 2 insertions(+)
recipes-core/openjdk/patches-openjdk-8/musl-0004-jdk-remove-sysctl.h-include-musl-build-fix.patch +2 -2
index 086f669..0c20627 100644
@@ -1,5 +1,5 @@
 From 86945e6df4dc15d5c2402a656d1d9d1b25945fb2 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 09:28:06 +0000
 Subject: [PATCH 4/9] jdk: remove sysctl.h include (musl build fix)
 MIME-Version: 1.0
@@ -16,7 +16,7 @@ etc.
 Remove it, at things seem to work without as well.
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c   | 1 -
  jdk/src/solaris/native/java/net/PlainSocketImpl.c           | 1 -
recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build.patch +2 -2
index 913b318..24342b5 100644
@@ -1,5 +1,5 @@
 From 19b1d6b4dc64a1c44a8f90776a489eee5c76463d 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Tue, 27 Feb 2018 15:12:08 +0000
 Subject: [PATCH 5/9] hotspot: disable agent build
 MIME-Version: 1.0
@@ -9,7 +9,7 @@ Content-Transfer-Encoding: 8bit
 the agent needs thread_db, which doesn't exist in musl
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  common/autoconf/jdk-options.m4           | 2 +-
  hotspot/make/linux/makefiles/defs.make   | 4 ++++
recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch +2 -2
index f0696fc..4abd558 100644
@@ -1,5 +1,5 @@
 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Fri, 2 Mar 2018 10:11:51 +0000
 Subject: [PATCH 6/9] hotspot: os_linux: remove glibc dependencies
 MIME-Version: 1.0
@@ -21,7 +21,7 @@ Content-Transfer-Encoding: 8bit
     |              dlsym
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  hotspot/src/os/linux/vm/os_linux.cpp | 12 +++++++++++-
  1 file changed, 11 insertions(+), 1 deletion(-)
recipes-core/openjdk/patches-openjdk-8/musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch +2 -2
index 7dcb889..3328d25 100644
@@ -1,5 +1,5 @@
 From dc0217d20e3c96203c81acda1c02652755bfcefb 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Fri, 2 Mar 2018 10:24:11 +0000
 Subject: [PATCH 7/9] hotspot: os_linux_x86: remove glibc dependencies
  (fpu_control.h)
@@ -14,7 +14,7 @@ Patch adopted from Alpine linux:
     https://git.alpinelinux.org/cgit/aports/tree/community/openjdk8/icedtea-hotspot-musl.patch?id=4d34f29dddd3934358df7a9607706d09ae0433c3
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)
recipes-core/openjdk/patches-openjdk-8/musl-0008-jdk-musl-build-fix-use-SIGRTMAX-rather-than-__SIGRTM.patch +2 -2
index c15895f..1e4e500 100644
@@ -1,5 +1,5 @@
 From ec37e9e5663611e49c7c976d34450ea6b90d0f24 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Fri, 2 Mar 2018 13:37:20 +0000
 Subject: [PATCH 8/9] jdk: musl build fix (use SIGRTMAX rather than __SIGRTMAX)
 MIME-Version: 1.0
@@ -24,7 +24,7 @@ Patch taken from Alpine Linux:
     https://git.alpinelinux.org/cgit/aports/tree/community/openjdk8/icedtea-jdk-musl.patch?id=4d34f29dddd3934358df7a9607706d09ae0433c3
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/solaris/native/java/net/linux_close.c    | 3 ++-
  jdk/src/solaris/native/sun/nio/ch/NativeThread.c | 2 +-
recipes-core/openjdk/patches-openjdk-8/musl-0009-jdk-musl-has-gethostby_r.patch +2 -2
index c033b77..3f3387b 100644
@@ -1,5 +1,5 @@
 From 276fb5b2d57cf0257dc82e84d80213fe3eec6e34 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>>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Fri, 2 Mar 2018 13:57:22 +0000
 Subject: [PATCH 9/9] jdk: musl has gethostby_r()
 MIME-Version: 1.0
@@ -12,7 +12,7 @@ Patch taken from Alpine Linux:
     https://git.alpinelinux.org/cgit/aports/tree/community/openjdk8/icedtea-jdk-musl.patch?id=4d34f29dddd3934358df7a9607706d09ae0433c3
 
 Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Andr� Draszik <andre.draszik at jci.com <https://lists.yoctoproject.org/listinfo/yocto>>
+Signed-off-by: André Draszik <[email protected]>
 ---
  jdk/src/solaris/native/java/net/Inet4AddressImpl.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
Signature · 1 line
2.18.0
#2 lore raw

PATCH v2 3/5 openjdk-8: always apply some patches

In reply to André Draszik

From: André Draszik <[email protected]>

As a simplification for the upcoming aarch32 port.

---
 recipes-core/openjdk/openjdk-8-native.inc                | 2 --
 recipes-core/openjdk/openjdk-8-release-172b11-common.inc | 3 ++-
 2 files changed, 2 insertions(+), 3 deletions(-)
recipes-core/openjdk/openjdk-8-native.inc +0 -2
index e6f7933..6a01046 100644
@@ -7,8 +7,6 @@ DEPENDS = "\
     ca-certificates-native openssl-native coreutils-native \
 "
 
-SRC_URI_append += "file://handle_extra_output.patch"
-
 PACKAGECONFIG ??= "gif jpeg png zlib"
 PACKAGECONFIG[x11] = "--with-x,,libx11-native xorgproto-native libxt-native libxext-native libxrender-native"
 PACKAGECONFIG[cups] = "--with-cups,,cups"
recipes-core/openjdk/openjdk-8-release-172b11-common.inc +2 -1
index 4bcecef..8e94a4f 100644
@@ -18,6 +18,8 @@ PATCHES_URI = "\
     file://0010-build-fix-build-on-as-needed-toolchains-generic.patch \
     file://0011-hotspot-backport-patch-to-fix-misuses-of-strncpy-str.patch \
     ${HOTSPOT_UB_PATCH} \
+    ${LIBPNG_NEON_PATCH} \
+    file://handle_extra_output.patch \
 "
 HOTSPOT_UB_PATCH = "\
     file://0014-hotspot-zero-fix-undefined-behaviour-gcc-v8-fix.patch \
@@ -43,7 +45,6 @@ PATCHES_URI_append_class-target = "\
     file://openjdk8-fix-assembler-flag-handling-in-makefile.patch;striplevel=0 \
     file://openjdk8-fix-adlc-flags.patch;striplevel=0 \
     file://openjdk8-add-missing-linker-flags.patch;striplevel=0 \
-    ${LIBPNG_NEON_PATCH} \
 "
 PATCHES_URI_append_libc-musl = "\
     file://musl-0001-hotspot-stop-using-obsolete-isnanf.patch \
Signature · 1 line
2.18.0
#3 lore raw

PATCH v2 4/5 openjdk-8: allow to build client JVM via PACKAGECONFIG

In reply to André Draszik

From: André Draszik <[email protected]>

The aarch32 port will need to unconditionally enable this.

---
 recipes-core/openjdk/openjdk-8-cross.inc | 2 ++
 1 file changed, 2 insertions(+)
recipes-core/openjdk/openjdk-8-cross.inc +2 -0
index 939155b..d04b0d3 100644
@@ -32,7 +32,9 @@ PACKAGECONFIG[jpeg] = "--with-libjpeg=system,--with-libjpeg=bundled,jpeg,"
 PACKAGECONFIG[png] = "--with-libpng=system,--with-libpng=bundled,libpng,"
 PACKAGECONFIG[zlib] = "--with-zlib=system,--with-zlib=bundled,zlib,"
 
+# JVM variants
 export WANT_LLVM_RELEASE = "3.5.2"
+PACKAGECONFIG[client] = "--with-jvm-variants=client,,,"
 PACKAGECONFIG[zero] = "--with-jvm-variants=zero,,,"
 PACKAGECONFIG[shark] = "--with-jvm-variants=zeroshark,,llvm3.5,"
 
Signature · 1 line
2.18.0
#4 lore raw

PATCH v2 5/5 openjdk-8: add aarch32 port 8u172b11

In reply to André Draszik

From: André Draszik <[email protected]>

Similar to the aarch64 build, we import the specific aarch32 port when building for ARMv7. We also add all the necessary patches to:
* compile using gcc v8
* compile against musl

This was tested on:
* QEMU with cortex A7 emulation (using glibc)
* real hardware (using musl)

---
v2: add missing signed-off-by

---
 .../openjdk-8-release-172b11-aarch32.inc      | 58 +++++++++++++++++++
 .../openjdk-8-release-172b11-aarch64.inc      |  2 +
 .../openjdk-8-release-172b11-common.inc       | 34 +++++++++--
 .../openjdk/openjdk-8-release-172b11.inc      |  7 ++-
 recipes-core/openjdk/openjdk-8_172b11.bb      |  2 +
 recipes-core/openjdk/openjre-8_172b11.bb      |  2 +
 ...ot-aarch32-fix-missing-return-values.patch | 53 +++++++++++++++++
 ...-hotspot-disable-agent-build-common.patch} | 41 ++-----------
 ...spot-disable-agent-build-pt2-aarch32.patch | 51 ++++++++++++++++
 ...0005-hotspot-disable-agent-build-pt2.patch | 51 ++++++++++++++++
 ...ux-remove-glibc-dependencies-common.patch} | 19 +-----
 ...-remove-glibc-dependencies-pt2-aarch.patch | 36 ++++++++++++
 ..._linux-remove-glibc-dependencies-pt2.patch | 34 +++++++++++
 ... => openjdk8-fix-shark-build-common.patch} | 38 ------------
 ...openjdk8-fix-shark-build-pt2-aarch32.patch | 11 ++++
 .../openjdk8-fix-shark-build-pt2.patch        | 38 ++++++++++++
 16 files changed, 379 insertions(+), 98 deletions(-)
 create mode 100644 recipes-core/openjdk/openjdk-8-release-172b11-aarch32.inc
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/0001-hotspot-aarch32-fix-missing-return-values.patch
 rename recipes-core/openjdk/patches-openjdk-8/{musl-0005-hotspot-disable-agent-build.patch => musl-0005-hotspot-disable-agent-build-common.patch} (55%)
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build-pt2-aarch32.patch
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build-pt2.patch
 rename recipes-core/openjdk/patches-openjdk-8/{musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch => musl-0006-hotspot-os_linux-remove-glibc-dependencies-common.patch} (79%)
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2-aarch.patch
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2.patch
 rename recipes-core/openjdk/patches-openjdk-8/{openjdk8-fix-shark-build.patch => openjdk8-fix-shark-build-common.patch} (93%)
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build-pt2-aarch32.patch
 create mode 100644 recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build-pt2.patch
recipes-core/openjdk/openjdk-8-release-172b11-aarch32.inc new file +58 -0
new file mode 100644
index 0000000..9cc2083
@@ -0,0 +1,58 @@
+require openjdk-8-release-172b11-common.inc
+
+COMPATIBLE_HOST = "^$"
+COMPATIBLE_HOST_armv7a = "arm"
+COMPATIBLE_HOST_armv7ve = "arm"
+
+CORBA_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[corba.md5sum] = "557b94847d8fade14c048cb0a96ed035"
+SRC_URI[corba.sha256sum] = "366fa9aaf11d75f74e8c6bdf9cab9214cf66b0eac1ca40f2789b3ba442929708"
+
+HOTSPOT_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[hotspot.md5sum] = "37d796794234f38fa71339ba78368b80"
+SRC_URI[hotspot.sha256sum] = "5f89f8ba9a099a2d84b4ca6bd49553ce4efe1b29d55de9134809b7b59b6c9ce3"
+
+JAXP_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[jaxp.md5sum] = "2dc311a7c0d6483226cdc5e501b1f8d0"
+SRC_URI[jaxp.sha256sum] = "f62db09a41213b5b5d1886c1aeabe43def09235de1d60af518213b9acea4fdca"
+
+JAXWS_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[jaxws.md5sum] = "fbd81e288d1ee5df631f213c130f21bb"
+SRC_URI[jaxws.sha256sum] = "bac66e848ee48c6fef6130db4bb6879dbd64c550c1f42e4676ab6a2c3ee4fab8"
+
+JDK_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[jdk.md5sum] = "b8003e6f1714617461f3eb7ee8b1efee"
+SRC_URI[jdk.sha256sum] = "0a7eef6fef2b457bef3bd1d24031234bbb9d74a5fca2f65e1603278cd9d393a0"
+
+LANGTOOLS_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[langtools.md5sum] = "e38f50b0113b3a956ac4917720655e93"
+SRC_URI[langtools.sha256sum] = "9ca88fcfe5a07861de693ff3b38d03f063a7937576cd93116ea6b4a4bd7894d5"
+
+NASHORN_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[nashorn.md5sum] = "c191cc92996fcb271254fc0a4f3eb7c9"
+SRC_URI[nashorn.sha256sum] = "853bb3162fefa989fa0c31848cb990d8e5698ccd8a2a336dbf98bde35eb5241d"
+
+OPENJDK_CHANGESET_arm = "jdk8u172-b11-aarch32-180511"
+SRC_URI[openjdk.md5sum] = "25398ccf25633a878dca54a8d606e48e"
+SRC_URI[openjdk.sha256sum] = "8c8e515ebcceded4b90187b4bdaf129b63ae6e64ddfe4f05a60df0694235b9e7"
+
+PACKAGECONFIG_append_armv7a = " client"
+PACKAGECONFIG_append_armv7ve = " client"
+
+do_install_append() {
+    if [ -d ${D}${JDK_HOME} ] ; then
+        sed -e 's,^\(-server ERROR$\),# \1,' \
+            -e 's,^-client IGNORE,-client ERROR,' \
+            -e 's,ALIASED_TO -server,ALIASED_TO -client,' \
+            -i ${D}${JDK_HOME}/jre/lib/${JDK_ARCH}/jvm.cfg
+    fi
+    if [ -d ${D}${JRE_HOME} ] ; then
+        sed -e 's,^\(-server ERROR$\),# \1,' \
+            -e 's,^-client IGNORE,-client ERROR,' \
+            -e 's,ALIASED_TO -server,ALIASED_TO -client,' \
+            -i ${D}${JRE_HOME}/lib/${JDK_ARCH}/jvm.cfg
+    fi
+}
+
+JDK_ARCH_armv7a = "aarch32"
+JDK_ARCH_armv7ve = "aarch32"
recipes-core/openjdk/openjdk-8-release-172b11-aarch64.inc +2 -0
index dddae6a..f0f4655 100644
@@ -1,5 +1,7 @@
 require openjdk-8-release-172b11-common.inc
 
+COMPATIBLE_HOST = "aarch64"
+
 CORBA_CHANGESET_aarch64 = "3a04a7c080af"
 SRC_URI[corba.md5sum] = "758b29d6cf714fd894df8674afd78e17"
 SRC_URI[corba.sha256sum] = "564113dbeadc57ac5831ccc056e0b920adbd3b74558cf750aa899f5de25ceb5e"
recipes-core/openjdk/openjdk-8-release-172b11-common.inc +29 -5
index 8e94a4f..f736bd3 100644
@@ -33,30 +33,50 @@ HOTSPOT_UB_PATCH_prepend_aarch64 = "\
     file://0012-hotspot-aarch64-fix-undefined-behaviour-gcc-v8-fix.patch \
     file://0013-hotspot-aarch64-Fix-further-functions-with-a-missing.patch \
 "
+HOTSPOT_UB_PATCH_append_armv7a = " file://0001-hotspot-aarch32-fix-missing-return-values.patch"
+HOTSPOT_UB_PATCH_append_armv7ve = " file://0001-hotspot-aarch32-fix-missing-return-values.patch"
 # some patches extracted from http://cr.openjdk.java.net/~rkennke/shark-build-hotspot/webrev.01/hotspot.patch
 # reported via http://mail.openjdk.java.net/pipermail/build-dev/2015-January/013972.html
 # by Roman Kennke (rkennke at redhat.com)
 LIBPNG_NEON_PATCH = "file://openjdk8-fix-libpng-neon-build.patch;striplevel=0"
 LIBPNG_NEON_PATCH_aarch64 = ""
+
 PATCHES_URI_append_class-target = "\
     file://openjdk8-restrict-to-staging-dir.patch;striplevel=0 \
-    file://openjdk8-fix-shark-build.patch;striplevel=0 \
+    file://openjdk8-fix-shark-build-common.patch;striplevel=0 \
+    ${FIX_SHARK_BUILD_PT2_PATCH} \
     file://openjdk8-fix-shark-stdc++11.patch;striplevel=0 \
     file://openjdk8-fix-assembler-flag-handling-in-makefile.patch;striplevel=0 \
     file://openjdk8-fix-adlc-flags.patch;striplevel=0 \
     file://openjdk8-add-missing-linker-flags.patch;striplevel=0 \
 "
+FIX_SHARK_BUILD_PT2_PATCH = "file://openjdk8-fix-shark-build-pt2.patch;striplevel=0"
+FIX_SHARK_BUILD_PT2_PATCH_armv7a = "file://openjdk8-fix-shark-build-pt2-aarch32.patch;striplevel=0"
+FIX_SHARK_BUILD_PT2_PATCH_armv7ve = "file://openjdk8-fix-shark-build-pt2-aarch32.patch;striplevel=0"
+
 PATCHES_URI_append_libc-musl = "\
-    file://musl-0001-hotspot-stop-using-obsolete-isnanf.patch \
+    ${OBSOLETE_ISNANF_PATCH} \
     file://musl-0002-jdk-give-a-much-bigger-buffer-to-getmntent_r.patch \
     file://musl-0003-jdk-fix-libjvm-load-on-musl-set-LD_LIBRARY_PATH.patch \
     file://musl-0004-jdk-remove-sysctl.h-include-musl-build-fix.patch \
-    file://musl-0005-hotspot-disable-agent-build.patch \
-    file://musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch \
+    file://musl-0005-hotspot-disable-agent-build-common.patch \
+    ${DISABLE_AGENT_BUILD_PT2} \
+    file://musl-0006-hotspot-os_linux-remove-glibc-dependencies-common.patch \
+    ${REMOVE_GLIBC_DEPENDENCIES_PT2} \
     file://musl-0007-hotspot-os_linux_x86-remove-glibc-dependencies-fpu_c.patch \
     file://musl-0008-jdk-musl-build-fix-use-SIGRTMAX-rather-than-__SIGRTM.patch \
     file://musl-0009-jdk-musl-has-gethostby_r.patch \
 "
+OBSOLETE_ISNANF_PATCH = "file://musl-0001-hotspot-stop-using-obsolete-isnanf.patch"
+OBSOLETE_ISNANF_PATCH_armv7a = ""
+OBSOLETE_ISNANF_PATCH_armv7ve = ""
+DISABLE_AGENT_BUILD_PT2 = "file://musl-0005-hotspot-disable-agent-build-pt2.patch"
+DISABLE_AGENT_BUILD_PT2_armv7a = "file://musl-0005-hotspot-disable-agent-build-pt2-aarch32.patch"
+DISABLE_AGENT_BUILD_PT2_armv7ve = "file://musl-0005-hotspot-disable-agent-build-pt2-aarch32.patch"
+REMOVE_GLIBC_DEPENDENCIES_PT2 = "file://musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2.patch"
+REMOVE_GLIBC_DEPENDENCIES_PT2_armv7a = "file://musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2-aarch.patch"
+REMOVE_GLIBC_DEPENDENCIES_PT2_armv7ve = "file://musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2-aarch.patch"
+
 PATCHES_URI_append_libc-musl_aarch64 = " file://hotspot-remaining-musl-fixes-aarch64.patch"
 
 # Name of the directory containing the compiled output
@@ -72,10 +92,14 @@ BUILD_CFLAGS_append = " -Wno-error=deprecated-declarations"
 TARGET_CFLAGS_append = " -Wno-error=deprecated-declarations"
 
 # Enable zero mode for arm based builds, as normal hotspot fails to build
-PACKAGECONFIG_append_arm = " zero"
+PACKAGECONFIG_append_armv4 = " zero"
+PACKAGECONFIG_append_armv5 = " zero"
+PACKAGECONFIG_append_armv6 = " zero"
 
 OPENJDK_ARCH_PORT = "jdk8u"
 OPENJDK_ARCH_PORT_aarch64 = "aarch64-port"
+OPENJDK_ARCH_PORT_armv7a = "aarch32-port"
+OPENJDK_ARCH_PORT_armv7ve = "aarch32-port"
 OPENJDK_HG_U = "jdk8u"
 OPENJDK_HG_URL = "http://hg.openjdk.java.net/${OPENJDK_ARCH_PORT}/${OPENJDK_HG_U}"
 
recipes-core/openjdk/openjdk-8-release-172b11.inc +5 -2
index fdf7b39..b308e50 100644
@@ -1,7 +1,10 @@
 require openjdk-8-release-172b11-common.inc
 
-# We do not yet work for aarch64.
-COMPATIBLE_HOST = "^(?!aarch64).*"
+# We do not yet work for aarch64, and we make sure
+# to use the aarch32 port for ARMv7.
+COMPATIBLE_HOST = "^(?!(aarch64)).*$"
+COMPATIBLE_HOST_armv7a = "^$"
+COMPATIBLE_HOST_armv7ve = "^$"
 
 CORBA_CHANGESET = "875a75c440cd"
 SRC_URI[corba.md5sum] = "66242dd6e749f39a5ef6add34f5ecb2f"
recipes-core/openjdk/openjdk-8_172b11.bb +2 -0
index 9c2a7a1..c1c6e1e 100644
@@ -1,5 +1,7 @@
 INC_FILE_SUFFIX = ""
 INC_FILE_SUFFIX_aarch64 = "-aarch64"
+INC_FILE_SUFFIX_armv7a = "-aarch32"
+INC_FILE_SUFFIX_armv7ve = "-aarch32"
 require openjdk-8-release-${PV}${INC_FILE_SUFFIX}.inc
 require openjdk-8-cross.inc
 
recipes-core/openjdk/openjre-8_172b11.bb +2 -0
index 220dc01..dd29691 100644
@@ -1,5 +1,7 @@
 INC_FILE_SUFFIX = ""
 INC_FILE_SUFFIX_aarch64 = "-aarch64"
+INC_FILE_SUFFIX_armv7a = "-aarch32"
+INC_FILE_SUFFIX_armv7ve = "-aarch32"
 require openjdk-8-release-${PV}${INC_FILE_SUFFIX}.inc
 require openjdk-8-cross.inc
 
recipes-core/openjdk/patches-openjdk-8/0001-hotspot-aarch32-fix-missing-return-values.patch new file +53 -0

53 lines not on this page · raw message

recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build-common.patch renamed from recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build.patch +4 -37

60 lines not on this page · raw message

recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build-pt2-aarch32.patch new file +51 -0

51 lines not on this page · raw message

recipes-core/openjdk/patches-openjdk-8/musl-0005-hotspot-disable-agent-build-pt2.patch new file +51 -0

51 lines not on this page · raw message

recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies-common.patch renamed from recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch +3 -16
similarity index 79%
rename from recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies.patch
rename to recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies-common.patch
index 4abd558..74cd422 100644
@@ -1,16 +1,11 @@
 From a02a9fbc3f1fed181504bdb5b0a16863247f92fc Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
 Date: Fri, 2 Mar 2018 10:11:51 +0000
-Subject: [PATCH 6/9] hotspot: os_linux: remove glibc dependencies
+Subject: [PATCH] hotspot: os_linux: remove glibc dependencies (common)
 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");
@@ -23,21 +18,13 @@ Content-Transfer-Encoding: 8bit
 Upstream-Status: Inappropriate [musl specific]
 Signed-off-by: André Draszik <[email protected]>
 ---
- hotspot/src/os/linux/vm/os_linux.cpp | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
+ hotspot/src/os/linux/vm/os_linux.cpp | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
 
 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
  
recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2-aarch.patch new file +36 -0
new file mode 100644
index 0000000..512af52
@@ -0,0 +1,36 @@
+From 2915f7f56b99fa130942acb4289c9b5310075adc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
+Date: Fri, 2 Mar 2018 10:11:51 +0000
+Subject: [PATCH] hotspot: os_linux: remove glibc dependencies (pt2: aarch32)
+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>
+    |            ^~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: André Draszik <[email protected]>
+---
+ hotspot/src/os/linux/vm/os_linux.cpp | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
+index 8656357d..555b3a15 100644
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -94,9 +94,6 @@
+ # include <string.h>
+ # include <syscall.h>
+ # include <sys/sysinfo.h>
+-#ifndef __UCLIBC__
+-# include <gnu/libc-version.h>
+-#endif
+ # include <sys/ipc.h>
+ # include <sys/shm.h>
+ # include <link.h>
+-- 
+2.18.0
+
recipes-core/openjdk/patches-openjdk-8/musl-0006-hotspot-os_linux-remove-glibc-dependencies-pt2.patch new file +34 -0
new file mode 100644
index 0000000..91a653c
@@ -0,0 +1,34 @@
+From a02a9fbc3f1fed181504bdb5b0a16863247f92fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <[email protected]>
+Date: Fri, 2 Mar 2018 10:11:51 +0000
+Subject: [PATCH] hotspot: os_linux: remove glibc dependencies (common)
+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>
+    |            ^~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: André Draszik <[email protected]>
+---
+ hotspot/src/os/linux/vm/os_linux.cpp | 1 -
+ 1 file changed, 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>
+-- 
+2.16.2
+
recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build-common.patch renamed from recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build.patch +0 -38
similarity index 93%
rename from recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build.patch
rename to recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build-common.patch
index f241361..ece7f14 100644
@@ -92,19 +92,6 @@
      _thread->metadata_handles()->push((Metadata*)_value);              \
    } else {                                                             \
      _thread = NULL;                                                    \
---- hotspot/src/cpu/zero/vm/entry_zero.hpp.orig
-+++ hotspot/src/cpu/zero/vm/entry_zero.hpp
-@@ -26,6 +26,10 @@
- #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
- #define CPU_ZERO_VM_ENTRY_ZERO_HPP
- 
-+#include "utilities/globalDefinitions.hpp"
-+#include "utilities/exceptions.hpp"
-+#include "interpreter/cppInterpreter.hpp"
-+
- class ZeroEntry {
-  public:
-   ZeroEntry() {
 --- hotspot/src/share/vm/shark/sharkEntry.hpp.orig
 +++ hotspot/src/share/vm/shark/sharkEntry.hpp
 @@ -27,6 +27,7 @@
@@ -115,31 +102,6 @@
  
  class SharkContext;
  
---- hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp.orig
-+++ hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
-@@ -30,6 +30,10 @@
- 
- #ifdef CC_INTERP
- 
-+#ifdef TARGET_ARCH_zero
-+#include "entry_zero.hpp"
-+#endif
-+
- class CppInterpreterGenerator: public AbstractInterpreterGenerator {
-   protected:
-   // shared code sequences
---- hotspot/src/cpu/zero/vm/nativeInst_zero.cpp.orig
-+++ hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
-@@ -26,6 +26,9 @@
- #include "precompiled.hpp"
- #include "assembler_zero.inline.hpp"
- #include "memory/resourceArea.hpp"
-+#ifdef CC_INTERP
-+#include "entry_zero.hpp"
-+#endif
- #include "nativeInst_zero.hpp"
- #include "oops/oop.inline.hpp"
- #include "runtime/handles.hpp"
 --- hotspot/src/share/vm/shark/llvmHeaders.hpp.orig
 +++ hotspot/src/share/vm/shark/llvmHeaders.hpp
 @@ -35,7 +35,11 @@
recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build-pt2-aarch32.patch new file +11 -0
new file mode 100644
index 0000000..b09745c
@@ -0,0 +1,11 @@
+--- hotspot/src/cpu/zero/vm/entry_zero.hpp
++++ hotspot/src/cpu/zero/vm/entry_zero.hpp
+@@ -26,6 +26,8 @@
+ #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
+ #define CPU_ZERO_VM_ENTRY_ZERO_HPP
+ 
++#include "utilities/globalDefinitions.hpp"
++#include "utilities/exceptions.hpp"
+ #include "interpreter/cppInterpreter.hpp"
+ 
+ class ZeroEntry {
recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-shark-build-pt2.patch new file +38 -0
new file mode 100644
index 0000000..018640b
@@ -0,0 +1,38 @@
+--- hotspot/src/cpu/zero/vm/entry_zero.hpp.orig
++++ hotspot/src/cpu/zero/vm/entry_zero.hpp
+@@ -26,6 +26,10 @@
+ #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
+ #define CPU_ZERO_VM_ENTRY_ZERO_HPP
+ 
++#include "utilities/globalDefinitions.hpp"
++#include "utilities/exceptions.hpp"
++#include "interpreter/cppInterpreter.hpp"
++
+ class ZeroEntry {
+  public:
+   ZeroEntry() {
+--- hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp.orig
++++ hotspot/src/share/vm/interpreter/cppInterpreterGenerator.hpp
+@@ -30,6 +30,10 @@
+ 
+ #ifdef CC_INTERP
+ 
++#ifdef TARGET_ARCH_zero
++#include "entry_zero.hpp"
++#endif
++
+ class CppInterpreterGenerator: public AbstractInterpreterGenerator {
+   protected:
+   // shared code sequences
+--- hotspot/src/cpu/zero/vm/nativeInst_zero.cpp.orig
++++ hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
+@@ -26,6 +26,9 @@
+ #include "precompiled.hpp"
+ #include "assembler_zero.inline.hpp"
+ #include "memory/resourceArea.hpp"
++#ifdef CC_INTERP
++#include "entry_zero.hpp"
++#endif
+ #include "nativeInst_zero.hpp"
+ #include "oops/oop.inline.hpp"
+ #include "runtime/handles.hpp"
Signature · 1 line
2.18.0
#5 lore raw

Re: [meta-java][PATCH v2 5/5] openjdk-8: add aarch32 port 8u172b11

Hi André,
thank you for your patches!

Just one little question on your tests: did you run the oeqa test for your qemu cortex A7 target? Did you enable the compiled mode test?

Quoted 7 lines · André Draszik

From: André Draszik <[email protected]>

Similar to the aarch64 build, we import the specific aarch32 port when building for ARMv7. We also add all the necessary patches to:
* compile using gcc v8
* compile against musl

Quoted 6 lines

This was tested on:
* QEMU with cortex A7 emulation (using glibc)
* real hardware (using musl)

regards;Richard.L

#6 lore raw

Re: [meta-java][PATCH v2 5/5] openjdk-8: add aarch32 port 8u172b11

Quoted 5 lines · Richard Leitner

Hi André,
thank you for your patches!

Just one little question on your tests: did you run the oeqa test for your qemu cortex A7 target? Did you enable the compiled mode test?

I ran the all java (not javac) tests from oeqa manually, as the qemu machine I hacked together has the issue that oeqa just times out waiting for the login prompt for a reason I didn't figure out quickly enough for my liking... It'd be good to have an 'official', working cortex a7 qemu machine somewhere in yocto, though.

But yes, oeqa would also need updating to not skip the compile mode on armv7.

Cheers,
Andre'

Quoted 17 lines · André Draszik
Quoted 7 lines

From: André Draszik <[email protected]>

Similar to the aarch64 build, we import the specific aarch32 port when building for ARMv7. We also add all the necessary patches to:
* compile using gcc v8
* compile against musl

Quoted 6 lines

This was tested on:
* QEMU with cortex A7 emulation (using glibc)
* real hardware (using musl)

regards;Richard.L

#7 lore raw

Re: [meta-java][PATCH v2 5/5] openjdk-8: add aarch32 port 8u172b11

Quoted 4 lines · André Draszik
Quoted 3 lines · Richard Leitner

Hi André,
thank you for your patches!

Quoted 8 lines
Quoted 2 lines

Just one little question on your tests: did you run the oeqa test for your qemu cortex A7 target? Did you enable the compiled mode test?

I ran the all java (not javac) tests from oeqa manually, as the qemu machine I hacked together has the issue that oeqa just times out waiting for the login prompt for a reason I didn't figure out quickly enough for my liking... It'd be good to have an 'official', working cortex a7 qemu machine somewhere in yocto, though.

Ok. Thanks.
I was also trying to set up a working cortexa7 qemu machine some months ago, but apparently failed too ;-)

Yeah, it would be great to have one in oe-core (or at least meta-java) to fully automate our tests.

Quoted 3 lines

But yes, oeqa would also need updating to not skip the compile mode on armv7.

I'll send a patch for that.

Another question: have you checked if the aarch32 port works for ARMv6? I'm just curious because openjdk.java.net/projects/aarch32-port/ says:

The port will be fully compatible with ARMv7 and may support ARMv6 depending on community interest.

Quoted 20 lines

Cheers,
Andre'

Quoted 15 lines · André Draszik
Quoted 13 lines

From: André Draszik <[email protected]>

Similar to the aarch64 build, we import the specific aarch32 port when building for ARMv7. We also add all the necessary patches to:
* compile using gcc v8
* compile against musl

This was tested on:
* QEMU with cortex A7 emulation (using glibc)
* real hardware (using musl)

regards;Richard.L

#8 lore raw

Re: [meta-java][PATCH v2 5/5] openjdk-8: add aarch32 port 8u172b11

Quoted 22 lines · Richard Leitner
Quoted 8 lines · André Draszik
Quoted 6 lines · Richard Leitner

Hi André,
thank you for your patches!

Just one little question on your tests: did you run the oeqa test for your
qemu cortex A7 target? Did you enable the compiled mode test?

Quoted 7 lines

I ran the all java (not javac) tests from oeqa manually, as the qemu machine
I hacked together has the issue that oeqa just times out waiting for the login prompt for a reason I didn't figure out quickly enough for my liking... It'd be good to have an 'official', working cortex a7 qemu machine
somewhere in yocto, though.

Ok. Thanks.
I was also trying to set up a working cortexa7 qemu machine some months ago,
but apparently failed too ;-)

Quoted 8 lines

Yeah, it would be great to have one in oe-core (or at least meta-java) to fully automate our tests.

Quoted 3 lines

But yes, oeqa would also need updating to not skip the compile mode on armv7.

I'll send a patch for that.

Thanks :-)

Quoted 5 lines

Another question: have you checked if the aarch32 port works for ARMv6? I'm just curious because openjdk.java.net/projects/aarch32-port/ says:

The port will be fully compatible with ARMv7 and may support ARMv6 depending on community interest.

I didn't as I read it as: "If people contribute patches, it can be made to work. But nobody has done so so far". Also, Debian only enables this for ARMv7 (although they have no specific ARMv6 port), and I know for sure that it doesn't work on ARMv5.

Cheers,
Andre'

#9 lore raw
In reply to André Draszik

Hi,
this is a note to let you know that I've just added this series to the master-next branch of the meta-java repository at
git://git.yoctoproject.org/meta-java

As soon as it has gone through some more testing it will likely be merged to the master branch.

If you have any questions, please let me know.

regards;Richard.L

Quoted 31 lines · André Draszik

From: André Draszik <[email protected]>

Avoid installation of all openjdk-8-native buildtime dependencies into a depending recipe's sysroot.
To execute openjdk-8-native as part of a depending recipe's build, we don't need the openjdk-8-native build time dependencies (like ant-native, or more importantly icedtea-7-native), just its runtime dependencies, unless of course that depending recipe's builds needs those tools itself. In that case, it needs to specify them explicitly, though (of course!).

Use SSTATE_EXCLUDEDEPS_SYSROOT to prevent openjdk-8-native build time dependencies from being copied in the sysroot unless explicitly requested.

---
 conf/layer.conf | 4 ++++
 1 file changed, 4 insertions(+)
conf/layer.conf +4 -0
index 3b00f61..8e8a300 100644
@@ -14,3 +14,7 @@ LICENSE_PATH += "${LAYERDIR}/licenses"
 SIGGEN_EXCLUDERECIPES_ABISAFE += "\
     ca-certificates-java \
 "
+
+SSTATE_EXCLUDEDEPS_SYSROOT += "\
+    openjdk-8-native->(ant-native|attr-native|coreutils-native|icedtea7-native|libxslt-native|make-native|openssl-native|zip-native|unzip-native) \
+"
#10 lore raw

Hi Richard,

I've noticed that I had one more uncommitted but necessary patch lying around to make the aarch32 port work with musl.

Hope it's not too late for v3, but I can send a follow-up instead if you prefer.

Cheers,
Andre'

Quoted 49 lines · Richard Leitner

Hi,
this is a note to let you know that I've just added this series to the master-next branch of the meta-java repository at
git://git.yoctoproject.org/meta-java

As soon as it has gone through some more testing it will likely be merged to the master branch.

If you have any questions, please let me know.

regards;Richard.L

Quoted 36 lines · André Draszik

From: André Draszik <[email protected]>

Avoid installation of all openjdk-8-native buildtime dependencies into a depending recipe's sysroot.
To execute openjdk-8-native as part of a depending recipe's build, we don't need the openjdk-8-native build time dependencies (like ant- native,
or more importantly icedtea-7-native), just its runtime dependencies, unless of course that depending recipe's builds needs those tools itself.
In that case, it needs to specify them explicitly, though (of course!).

Use SSTATE_EXCLUDEDEPS_SYSROOT to prevent openjdk-8-native build time dependencies from being copied in the sysroot unless explicitly requested.

---
 conf/layer.conf | 4 ++++
 1 file changed, 4 insertions(+)
conf/layer.conf +3 -0
index 3b00f61..8e8a300 100644
@@ -14,3 +14,7 @@ LICENSE_PATH += "${LAYERDIR}/licenses"
 SIGGEN_EXCLUDERECIPES_ABISAFE += "\
     ca-certificates-java \
 "
+
+SSTATE_EXCLUDEDEPS_SYSROOT += "\
+    openjdk-8-native->(ant-native|attr-native|coreutils-

native|icedtea7-native|libxslt-native|make-native|openssl-native|zip- native|unzip-native) \
+"

#11 lore raw

Hi André,

Quoted 4 lines · André Draszik

Hi Richard,

I've noticed that I had one more uncommitted but necessary patch lying around to make the aarch32 port work with musl.

Thank you for noticing!

We should definitely add qemu test-images with musl. So similar issues pop up during my automated tests ;-)

Do you have a qemu musl setup which could be integrated in our oeqa?

Quoted 3 lines

Hope it's not too late for v3, but I can send a follow-up instead if you prefer.

It's fine. I'll do a force-push to master-next after a short test.

regards;Richard.L

Quoted 55 lines

Cheers,
Andre'

Quoted 49 lines · Richard Leitner

Hi,
this is a note to let you know that I've just added this series to the master-next branch of the meta-java repository at
git://git.yoctoproject.org/meta-java

As soon as it has gone through some more testing it will likely be merged to the master branch.

If you have any questions, please let me know.

regards;Richard.L

Quoted 36 lines · André Draszik

From: André Draszik <[email protected]>

Avoid installation of all openjdk-8-native buildtime dependencies into a depending recipe's sysroot.
To execute openjdk-8-native as part of a depending recipe's build, we don't need the openjdk-8-native build time dependencies (like ant- native,
or more importantly icedtea-7-native), just its runtime dependencies, unless of course that depending recipe's builds needs those tools itself.
In that case, it needs to specify them explicitly, though (of course!).

Use SSTATE_EXCLUDEDEPS_SYSROOT to prevent openjdk-8-native build time dependencies from being copied in the sysroot unless explicitly requested.

---
 conf/layer.conf | 4 ++++
 1 file changed, 4 insertions(+)
conf/layer.conf +3 -0
index 3b00f61..8e8a300 100644
@@ -14,3 +14,7 @@ LICENSE_PATH += "${LAYERDIR}/licenses"
 SIGGEN_EXCLUDERECIPES_ABISAFE += "\
     ca-certificates-java \
 "
+
+SSTATE_EXCLUDEDEPS_SYSROOT += "\
+    openjdk-8-native->(ant-native|attr-native|coreutils-

native|icedtea7-native|libxslt-native|make-native|openssl-native|zip- native|unzip-native) \
+"

#12 lore raw
Quoted 8 lines · Richard Leitner

Hi André,

Quoted 4 lines · André Draszik

Hi Richard,

I've noticed that I had one more uncommitted but necessary patch lying around to make the aarch32 port work with musl.

Quoted 6 lines

Thank you for noticing!

We should definitely add qemu test-images with musl. So similar issues pop up during my automated tests ;-)

Do you have a qemu musl setup which could be integrated in our oeqa?

Well, I have my hacked qemu cortex a7 machine that doesn't work with oeqa. For musl, I have my own distro, but not sure how the rest of the Yocto project does the automated musl testing - there might be something more standard...

Because of the different hotspot versions, it would really need to test all three ports, default, aarch64, aarch32 and each with glibc and musl.

BTW, I just today saw that meta-ivi has a qemu cortex a9 here
http://git.yoctoproject.org/cgit/cgit.cgi/meta-ivi/tree/meta-ivi-bsp
maybe that works better with oeqa?

Cheers,
Andre'

#13 lore raw
Quoted 16 lines · André Draszik
Quoted 8 lines · Richard Leitner

Hi André,

Quoted 4 lines · André Draszik

Hi Richard,

I've noticed that I had one more uncommitted but necessary patch lying around to make the aarch32 port work with musl.

Quoted 6 lines

Thank you for noticing!

We should definitely add qemu test-images with musl. So similar issues pop up during my automated tests ;-)

Do you have a qemu musl setup which could be integrated in our oeqa?

Quoted 7 lines

Well, I have my hacked qemu cortex a7 machine that doesn't work with oeqa. For musl, I have my own distro, but not sure how the rest of the Yocto project does the automated musl testing - there might be something more standard...

Because of the different hotspot versions, it would really need to test all three ports, default, aarch64, aarch32 and each with glibc and musl.

ACK.
Plus OpenJDK-7... And in the future hopefully 9 or 10 ;-)

Quoted 4 lines

BTW, I just today saw that meta-ivi has a qemu cortex a9 here
http://git.yoctoproject.org/cgit/cgit.cgi/meta-ivi/tree/meta-ivi-bsp
maybe that works better with oeqa?

Thanks for that pointer...

I hacked together a similar machine based on some staled patches from oe-core [1] and meta-qemuarma9 [2] which works for oeqa.

I'll try to get the best out of the three and create a patch for oe-core.

regards;Richard.L

Quoted 6 lines

Cheers,
Andre'

[1] https://patchwork.openembedded.org/project/oe-core/patches/?q=qemuarma9
[2] https://github.com/WindRiver-Labs/meta-qemuarma9