RFR: 8328680: Introduce JDK_LIB, and clean up module native compilation [v2]

Julian Waters jwaters at openjdk.org
Fri Mar 22 10:47:24 UTC 2024


On Fri, 22 Mar 2024 10:16:44 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> This is the first step of several, in which I will clean up the native compilation code as used by modules. In this first step `java.base`, `java.deskop`, `jdk.accessibility` and `jdk.jpackage` are left out, since they require more work. The changes in the remaining modules are trivial by comparison.
>> 
>> The changes done here are:
>> 
>> 1) A new argument `JDK_LIB` has been introduced, that is used for linking with other libraries produced by the JDK build. As a follow-up, this will be further cleaned up and generalized, but the goal for this change is just to separate them out from external libraries.
>> 
>> 2) The list of libraries given to `LIB` and `JDK_LIB` has been sorted in alphabetical order. Note that this change will affect the resulting binaries (since the order libraries are given are stored in the binary), but this change should only be superficial. (If we have symbol clashes between libraries, then we have problems on a whole other level...).
>> 
>> 3) The code has been checked for inconsistencies and style guide errors, and a common programming style has been applied to all `Lib.gmk` and `Launcher.gmk` files, making sure that all parts follow best practices.
>> 
>> This PR will be followed up by invidual PRs for the modules requiring not jsut trivial cleanup (`java.base`, `java.deskop`, `jdk.accessibility` and `jdk.jpackage`), and a PR which will unify `JDK_LIB` handling across platforms, and automatically apply proper dependencies.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix indentation

I had doubts about introducing JDK_LIB until I saw there were plans to further improve upon it, so I guess my uncertainty is now answered

make/autoconf/libraries.m4 line 174:

> 172: 
> 173:   JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
> 174:   JDKEXE_LIBS=""

This is passed to LauncherCommon while JDKLIB_LIBS is manually passed to every individual library it's used for. Why not unify them and pass JDKLIB_LIBS to LibCommon instead? Other than that seems good

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

Marked as reviewed by jwaters (Committer).

PR Review: https://git.openjdk.org/jdk/pull/18430#pullrequestreview-1954491578
PR Review Comment: https://git.openjdk.org/jdk/pull/18430#discussion_r1535387243


More information about the build-dev mailing list