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

Reply via email to