From 87cd368a65cac464ded5c9e5d92e0ad7d490310c Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 6 Jul 2021 11:10:59 +0200 Subject: [PATCH] New package: mandrel-21.1.0.0 --- common/shlibs | 6 ++++ srcpkgs/mandrel/files/musl.patch | 58 ++++++++++++++++++++++++++++++++ srcpkgs/mandrel/template | 51 ++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 srcpkgs/mandrel/files/musl.patch create mode 100644 srcpkgs/mandrel/template diff --git a/common/shlibs b/common/shlibs index 64885062395..77c205b376d 100644 --- a/common/shlibs +++ b/common/shlibs @@ -1837,6 +1837,12 @@ libawt_xawt.so openjdk10-bootstrap-10.0.2p13_1 libjava.so openjdk10-bootstrap-10.0.2p13_1 libjli.so openjdk10-bootstrap-10.0.2p13_1 libjvm.so openjdk10-bootstrap-10.0.2p13_1 +libjawt.so mandrel-21.1.0.0_1 +libawt.so mandrel-21.1.0.0_1 +libawt_xawt.so mandrel-21.1.0.0_1 +libjava.so mandrel-21.1.0.0_1 +libjli.so mandrel-21.1.0.0_1 +libjvm.so mandrel-21.1.0.0_1 libucl.so.5 libucl-0.8.1_6 libhandle.so.1 xfsprogs-3.2.1_1 libnfnetlink.so.0 libnfnetlink-1.0.1_1 diff --git a/srcpkgs/mandrel/files/musl.patch b/srcpkgs/mandrel/files/musl.patch new file mode 100644 index 00000000000..50e58332d03 --- /dev/null +++ b/srcpkgs/mandrel/files/musl.patch @@ -0,0 +1,58 @@ +Make musl a native libc. + +--- substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/linux/libc/MuslLibC.java.orig ++++ substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/linux/libc/MuslLibC.java +@@ -43,13 +43,12 @@ + + @Override + public List getAdditionalQueryCodeCompilerOptions() { +- /* Avoid the dependency to muslc for builds cross compiling to muslc. */ +- return Collections.singletonList("--static"); ++ return Collections.emptyList(); + } + + @Override + public String getTargetCompiler() { +- return "musl-gcc"; ++ return "gcc"; + } + + @Override +@@ -59,14 +58,11 @@ + + @Override + public boolean requiresLibCSpecificStaticJDKLibraries() { +- return true; ++ return false; + } + + @Override + public void checkIfLibCSupported() { +- if (!SubstrateOptions.StaticExecutable.getValue()) { +- throw UserError.abort("Musl can only be used for statically linked executables."); +- } + if (JavaVersionUtil.JAVA_SPEC != 11) { + throw UserError.abort("Musl can only be used with labsjdk 11."); + } +--- substratevm/src/com.oracle.svm.native.jvm.posix/src/JvmFuncs.c.orig ++++ substratevm/src/com.oracle.svm.native.jvm.posix/src/JvmFuncs.c +@@ -128,7 +128,7 @@ + return listen(fd, count); + } + +-JNIEXPORT int JNICALL JVM_Send(int fd, char* buf, size_t nBytes, uint flags) { ++JNIEXPORT int JNICALL JVM_Send(int fd, char* buf, size_t nBytes, unsigned int flags) { + RESTARTABLE_RETURN_INT(send(fd, buf, nBytes, flags)); + } + +--- substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/linux/libc/LibCFeature.java.orig ++++ substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/linux/libc/LibCFeature.java +@@ -55,7 +55,7 @@ + @Override + public String getValueOrDefault(UnmodifiableEconomicMap, Object> values) { + if (!values.containsKey(this)) { +- return Platform.includedIn(Platform.ANDROID.class) ? "bionic" : "glibc"; ++ return Platform.includedIn(Platform.ANDROID.class) ? "bionic" : "musl"; + } + return (String) values.get(this); + } diff --git a/srcpkgs/mandrel/template b/srcpkgs/mandrel/template new file mode 100644 index 00000000000..d5d41332a0d --- /dev/null +++ b/srcpkgs/mandrel/template @@ -0,0 +1,51 @@ +# Template file for 'mandrel' +pkgname=mandrel +version=21.1.0.0 +revision=1 +_java_ver=11 +_mx_ver=5.304.3 +archs="aarch64* x86_64*" # upstream supported archs +wrksrc="mandrel-${version}" +create_wrksrc=yes +hostmakedepends="openjdk${_java_ver} openjdk${_java_ver}-src + openjdk${_java_ver}-static-libs python3" +makedepends="zlib-devel" +short_desc="Downstream distribution of the GraalVM community edition" +maintainer="Leah Neukirchen " +license="GPL-2.0-only, Classpath-exception-2.0" +homepage="https://github.com/graalvm/mandrel" +distfiles="https://github.com/graalvm/mandrel-packaging/archive/refs/tags/mandrel-${version}-Final.tar.gz>packaging-${version}.tar.gz + https://github.com/graalvm/mandrel/archive/refs/tags/mandrel-${version}-Final.tar.gz + https://github.com/graalvm/mx/archive/refs/tags/${_mx_ver}.tar.gz" +checksum="3f99ec20491cf79f8be19dfabb8fea6a82ea673bf450f2701f293db44fba4c95 + 670dd01e196d51aac0e5e3a4aa9b92e6b3953e16efbc7b7f6bb9dc39f3d1f9a7 + b5d15a3ed5c4ab1a3d84055a84375acac67a344c91a3c8076c429ecff8062e9d" +shlib_provides="libawt.so libawt_xawt.so libjava.so libjli.so libjvm.so libjawt.so" +nocross=yes + +post_patch() { + if [ "$XBPS_TARGET_LIBC" = musl ]; then + # XXX: only static builds with native-image work + # (else TEXTREL issues) + patch -d mandrel-mandrel-* -p0 < ${FILESDIR}/musl.patch + fi +} + +do_build() { + cd mandrel-packaging-* + export JAVA_HOME=/usr/lib/jvm/openjdk${_java_ver} + $JAVA_HOME/bin/java -ea build.java \ + --mx-home $PWD/../mx-* \ + --mandrel-repo $PWD/../mandrel-mandrel-* \ + --verbose +} + +do_install() { + cd mandrel-packaging*/mandrel-java* + + vmkdir usr/lib/jvm/mandrel${_java_ver} + vcopy . usr/lib/jvm/mandrel${_java_ver} + + vlicense LICENSE + vlicense THIRD_PARTY_LICENSE.txt +}