Package: openjdk-18-jre-headless Version: 18.0.1+10-1 Severity: normal Tags: upstream
Dear Maintainer, OpenJDK 18 and later provide a shared library libjsvml.so of optimised vector math routines on amd64. However the source for this library is only provided as machine-generated output from the Intel C compiler. Here's an example: https://sources.debian.org/src/openjdk-18/18.0.1%2B10-1/src/jdk.incubator.vector/linux/native/libjsvml/jsvml_s_acos_linux_x86.S/ Although there is a GPL header on the file it's clearly not in a form that a human could readily understand or modify and therefore doesn't seem to qualify as free software. # -- Machine type EM64t .file "svml_s_acos.c" .text ..TXTST0: .L_2__routine_start___jsvml_acosf16_ha_z0_0: The C file "svml_s_acos.c" mentioned here is presumably the "preferred form of modification" but it isn't distributed, and presumably can't be. The GitHub PR where this code was originally imported has some details on the provenance: https://github.com/openjdk/jdk/pull/3638#issuecomment-844574382 > The library is written using Intel C Compiler extensions. > The generated code is the only way we could bring it in. The library is loaded with dlopen and if that fails it falls back to generic versions of the routines. So it's quite simple to just skip building it: diff --git a/make/modules/jdk.incubator.vector/Lib.gmk b/make/modules/jdk.incubator.vector/Lib.gmk index bab2c9fe8a59..156225b539bf 100644 --- a/make/modules/jdk.incubator.vector/Lib.gmk +++ b/make/modules/jdk.incubator.vector/Lib.gmk @@ -27,16 +27,16 @@ include LibCommon.gmk ################################################################################ -ifeq ($(call isTargetOs, linux windows)+$(call isTargetCpu, x86_64)+$(INCLUDE_COMPILER2), true+true+true) - $(eval $(call SetupJdkLibrary, BUILD_LIBJSVML, \ - NAME := jsvml, \ - CFLAGS := $(CFLAGS_JDKLIB), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_windows := -defaultlib:msvcrt, \ - )) +# ifeq ($(call isTargetOs, linux windows)+$(call isTargetCpu, x86_64)+$(INCLUDE_COMPILER2), true+true+true) +# $(eval $(call SetupJdkLibrary, BUILD_LIBJSVML, \ +# NAME := jsvml, \ +# CFLAGS := $(CFLAGS_JDKLIB), \ +# LDFLAGS := $(LDFLAGS_JDKLIB) \ +# $(call SET_SHARED_LIBRARY_ORIGIN), \ +# LDFLAGS_windows := -defaultlib:msvcrt, \ +# )) - TARGETS += $(BUILD_LIBJSVML) -endif +# TARGETS += $(BUILD_LIBJSVML) +# endif ################################################################################ -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (650, 'testing'), (600, 'unstable'), (500, 'testing-debug') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.18.0-2-amd64 (SMP w/12 CPU threads; PREEMPT) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages openjdk-18-jre-headless depends on: ii ca-certificates-java 20190909 ii java-common 0.72 ii libasound2 1.2.7.1-1 ii libc6 2.33-7 ii libcups2 2.4.2-1 ii libfontconfig1 2.13.1-4.4 ii libfreetype6 2.12.1+dfsg-3 ii libgcc-s1 12.1.0-5 ii libharfbuzz0b 2.7.4-1+b1 ii libjpeg62-turbo 1:2.1.2-1 ii liblcms2-2 2.12~rc1-2 ii libnss3 2:3.79-1 ii libpcsclite1 1.9.8-1 ii libstdc++6 12.1.0-5 ii util-linux 2.38-4 ii zlib1g 1:1.2.11.dfsg-4 openjdk-18-jre-headless recommends no packages. Versions of packages openjdk-18-jre-headless suggests: ii fonts-dejavu-extra 2.37-2 pn fonts-indic <none> pn fonts-ipafont-gothic <none> pn fonts-ipafont-mincho <none> pn fonts-wqy-microhei | fonts-wqy-zenhei <none> ii libnss-mdns 0.15.1-1 -- no debconf information