On Fri, 15 Dec 2023 10:18:53 GMT, Joachim Kern <jk...@openjdk.org> wrote:

>> src/hotspot/os/aix/os_aix.cpp line 206:
>> 
>>> 204: constexpr int max_handletable = 1024;
>>> 205: static int g_handletable_used = 0;
>>> 206: static struct handletableentry g_handletable[max_handletable] = {{0, 
>>> 0, 0, 0}};
>> 
>> I would move all that new and clearly delineated dlopen stuff into an own 
>> file, e.g. dlopen_aix.cpp or porting_aix.cpp (in porting_aix.cpp, we already 
>> have wrappers for other functions). os_aix.cpp is already massive.
>
> I moved the static variable declarations and the functions `Aix_dlopen(), 
> search_file_in_LIBPATH(), rtv_linkedin_libpath()` and  `os::pd_dll_unload()` 
> to porting_aix.cpp. This links, but in my opinion `os::pd_dll_unload()` 
> should reside in os_aix.cpp, because it is member of the os class. But there 
> it will not compile anymore if the static variables are moved away.

No, what I meant was to provide a "libc-like" equivalent for dlopen, similar to 
what we do with dladdr (see 
https://github.com/openjdk/jdk/blob/b7676822886eac21f61ff361a32928a966d8fe31/src/hotspot/os/aix/porting_aix.cpp#L306).

But never mind; I am also fine with moving os::pd_dlopen into a different cpp 
file, e.g. "dlopen_aix.cpp". Just move it out of os_aix.cpp, since that is 
already massive and you add >300 lines of more code and more dependencies.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16920#discussion_r1427812795

Reply via email to