On Thu, 1 May 2025 18:27:24 GMT, Vladimir Ivanov <vliva...@openjdk.org> wrote:
> I want to understand the issue with missing entries in vector math native > libraries first before making a decision how to proceed. > > > I don't think it's a build issue, the jdk vendor can choose to support it > > or not, it's just the way passing the information ( whether it's supported > > or not) are different. > > Sorry, I don't get it. How does it affect the contents of the native library? > JDK vendors do have an option to bundle the library or drop it from their > distribution. But when SLEEF-based and SVML math libraries are built by JDK > there's no distinction between entries being included in the library. If a > vendor modifies make files or native library code, it's up to them to adjust > JDK accordingly. Upstream JDK doesn't have to take such scenarios into > account. Sorry for confusing you. No, what I mean is vendors can choose their build environment (e.g. with/without support of compiler, I discuss this a bit below), and different environment will lead to whether sleef is supported or not (i.e. whether there are entries in the libsleef.so). > > I looked through SVML and SLEEF-based vector math code and noticed there are > some capability check [1] [2] [3] guarding library code. It means that if > some library entry is missing, then the whole library is empty. Can you > confirm it's the case you see? > > [1] > https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/linux/native/libjsvml/globals_vectorApiSupport_linux.S.inc#L35 > [2] > https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/windows/native/libjsvml/globals_vectorApiSupport_windows.S.inc#L28 > [3] > https://github.com/openjdk/jdk/blob/master/src/jdk.incubator.vector/unix/native/libsleef/lib/vector_math_rvv.c#L36 In riscv sleef case, yes, it checks native compiler version and a flat, this is required because only these versions (or higher) support vector intrinsics which are used in sleef header files. ( I think arm is the same case, but in a bit simpler way only with a flag). ------------- PR Comment: https://git.openjdk.org/jdk/pull/24914#issuecomment-2846731509