RFR: JDK-8317799 : AIX PPC64: FFI symbol lookup doesn't find symbols
David Holmes
dholmes at openjdk.org
Tue Nov 14 05:01:29 UTC 2023
On Mon, 13 Nov 2023 07:46:37 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
>>> For some context: `java.lang.foreign.Linker.nativeLinker().defaultLookup()` returns a `SymbolLookup` that can be used to find symbols from the standard library.
>>>
>>> We use a shim library that re-exports symbols from the standard library in order to make them accessible through `dlsym`, since on e.g. Linux the standard library .so files might actually be linker scripts which we don't want to mess with. On Windows we use ucrtbase.dll + an auxiliary library that contains the expansions of several 'inline' functions such as `printf`. I'm not surprised to see that another platform like AIX requires more to make this work as well.
>>>
>>> That said, I think we should limit the exported symbols to only those found in the standard C library header files: https://en.cppreference.com/w/c/header
>>
>> Currently the symbols are restricted to some parts of libc and the entire math library libm.
>> Are you suggesting we restrict the list to common math functions such as
>> https://en.cppreference.com/w/c/numeric/math ?
>
>> > That said, I think we should limit the exported symbols to only those found in the standard C library header files: https://en.cppreference.com/w/c/header
>>
>> Currently the symbols are restricted to some parts of libc and the entire math library libm. Are you suggesting we restrict the list to common math functions such as https://en.cppreference.com/w/c/numeric/math ?
>
> I'm suggesting to include things that are defined by the C standard, plus some platform specific extensions. i.e. limit this to what is considered part of the public/supported API of the standard library on AIX.
@JornVernee when I googled for "dlsym equivalent for static libraries it turned up BFD:
https://stackoverflow.com/questions/10279693/dlsym-like-behaviour-for-static-linked-libraries
https://ftp.gnu.org/old-gnu/Manuals/bfd-2.9.1/html_chapter/bfd_1.html
but it seems ancient.
Maybe AIX, given it seems to like/prefer static linking, also provides some tools in this area?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/16414#issuecomment-1809550596
More information about the build-dev
mailing list