On Mon, 28 Apr 2025 10:34:49 GMT, Hamlin Li <m...@openjdk.org> wrote:
> Hi, > Can you help to review this patch? > > Before [JDK-8353786](https://bugs.openjdk.org/browse/JDK-8353786), when a > released jdk not supportting sleef (for any reason, e.g. low gcc version, > intrinsic not supported, rvv not supported, and so on) runs on machine > support vector operation (e.g. on riscv, it supports rvv), it can not call > into sleef, but will not fail either, it falls back to java scalar version > implementation. > But after [JDK-8353786](https://bugs.openjdk.org/browse/JDK-8353786), it will > cause an exception thrown at runtime. > > This change the behaviour of existing jdk, and it should not throw exception > anyway. > > @iwanowww @RealFYang > > Thanks! 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. 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 ------------- PR Comment: https://git.openjdk.org/jdk/pull/24914#issuecomment-2845433084