On Mon, 30 Oct 2023 10:54:48 GMT, suchismith1993 <d...@openjdk.org> wrote:

> The math library in AIX specifically, is a static archive. Doing a -lm wont 
> suffice, because when the symbols are looked up using dlsym or accessing 
> native code through Java, it will lead to failures.
> Hence we had to come up with a list of symbols to allow math library symbols 
> to be accesible.
> Also, there are parts of libc library that are static too, and hence those 
> symbols also are present in this list.
> Without this change, the StdLibTest and multiple other tests which make 
> native function calls using FFI, fail with NoSuchElementException.
> 
> 
> 1. Adding required compiler flags.
> 2. Adding required symbols.
> 
> 
> JBS-ISSUE : [JDK-8317799](https://bugs.openjdk.org/browse/JDK-8317799)

In the Windows syslookup.c file we declare a global array of `void*` that we 
fill with function pointers of the relevant functions [1]. That array itself is 
exported using __declspec (which I think is not required on AIX?)

> The only way to avoid an external list is to actually call the functions in 
> the lookup file

What about taking the address of the functions and storing them in an array? 
That should work as well I'd think.

[1]: 
https://github.com/openjdk/jdk/blob/master/src/java.base/windows/native/libsyslookup/syslookup.c

-------------

PR Comment: https://git.openjdk.org/jdk/pull/16414#issuecomment-1817478447

Reply via email to