RFR: 8268129: LibraryLookup::ofDefault leaks symbols from loaded libraries

Maurizio Cimadamore mcimadamore at openjdk.java.net
Fri Oct 8 21:32:12 UTC 2021


On Fri, 8 Oct 2021 04:43:08 GMT, Cheng Jin <github.com+18036229+ChengJin01 at openjdk.org> wrote:

> So I am wondering what happened to the system lookup in such case given there should be no fundamental difference in leveraging `NativeLibraries` (I assume the library loading in OpenJDK16 & 17 is the same at this point) unless there is something else new in OpenJDK17 I am unaware of (e.g. the changes in `Lib.gmk` or `lib-std.m4`, or a custom system lookup is required on AIX, etc). Thanks.

In 17, SystemLookup loads a specific library that is generated at build time - which contains all the c stdlib symbols. That's what the Lib.gmk changes are for. What I suspect is that the library is not generated at all, or not correctly on AIX, which then causes the system lookup to misbehave.

I would start by double checking that you have a file like this:

<JDK_ROOT>/lib/libsyslookup.so

And then, if the library exists, check that it has the right dependency; on my linux it's an empty library, but which depends on libc, libm and libdl:


ldd lib/libsyslookup.so  
	linux-vdso.so.1 (0x00007fff2bdf7000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f35f1def000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f35f1ca0000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f35f1c9a000)

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

PR: https://git.openjdk.java.net/jdk/pull/4316



More information about the build-dev mailing list