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

Reply via email to