New package: mandrel-21.1.0.0

This commit is contained in:
Leah Neukirchen 2021-07-06 11:10:59 +02:00
parent ea95ec605b
commit 87cd368a65
3 changed files with 115 additions and 0 deletions

View file

@ -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

View file

@ -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<String> 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<OptionKey<?>, 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);
}

51
srcpkgs/mandrel/template Normal file
View file

@ -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 <leah@vuxu.org>"
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
}