RFR: JDK-8317799 : AIX PPC64: FFI symbol lookup doesn't find symbols
Jorn Vernee
jvernee at openjdk.org
Sat Nov 18 11:11:32 UTC 2023
On Mon, 30 Oct 2023 10:54:48 GMT, suchismith1993 <duke at 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
More information about the build-dev
mailing list