[foreign-memaccess+abi] Integrated: 8266814: Improve library loading with SymbolLookup abstraction

Maurizio Cimadamore mcimadamore at openjdk.java.net
Tue May 11 10:24:36 UTC 2021


On Mon, 10 May 2021 13:55:44 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

> This patch implements the library loading abstraction described in:
> 
> https://mail.openjdk.java.net/pipermail/panama-dev/2021-May/013684.html
> 
> That is, a functional interface called `SymbolLookup`, and a couple of factories to get a lookup for a given classloader, and to get a *system* lookup, useful to lookup C symbols.
> 
> To implement the system lookup, we load `msvcrt.dll` on Windows, while we build and load an empty library (which depends on libc) on Mac/Linux. This approach is better than relying on RTLD_DEFAULT (which can sometimes leak symbols from libraries loaded independently). Also, doing this bypasses the problem of figuring out the location of libc, which, on Linux system is particularly gnarly, because of the multi-arch support.

This pull request has now been integrated.

Changeset: 9d22e434
Author:    Maurizio Cimadamore <mcimadamore at openjdk.org>
URL:       https://git.openjdk.java.net/panama-foreign/commit/9d22e4349cc38cdfdaeb21c259114316e81ec0f7
Stats:     728 lines in 30 files changed: 374 ins; 293 del; 61 mod

8266814: Improve library loading with SymbolLookup abstraction

Reviewed-by: jvernee, sundar

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

PR: https://git.openjdk.java.net/panama-foreign/pull/531


More information about the panama-dev mailing list