On Fri, 14 Mar 2025 15:41:56 GMT, Joachim Kern <jk...@openjdk.org> wrote:
> After "JDK-8339480: Build static-jdk image with a statically linked launcher" > AIX was not able to build the new target. Therefore with "JDK-8345590 AIX > 'make all' fails after JDK-8339480" the new target was disabled again. > > Now with this change we can enable the statically linked launcher target > again. > There are 3 things to do. > 1. Modify `dladdr()`. Because this API does not exist on AIX it is > implemented based on the `loadquery()` API. Unfortunately, this API does only > return the name of the executable, but not its path. Beforehand this was no > problem, because we asked for a loaded library, for which the API provides > the path. But now we are asking for the executable itself. > 2. `dladdr()` is differently implemented three times in the openjdk code. > In the static case I supressed now the usage of the additional modules > containing version two and three. I know this shouldn't be the final version. > Magnus mentioned that they have discussed from time to time to have a "basic > JDK utility lib" that can be shared between hotspot and the JDK libraries. I > think this is a good idea for the future, but far beyond the scope of this > PR. The second best thing Magnus proposed is to only have the `dladdr()` > functionality in Hotspot and then export it. Let's see how the community > decides. > 3. Because we lack a linker flag like `whole-archive`, I had to force the > export of all symbols by creating export files containing all symbols of the > static libs. I introduced the new rule for the export file generation as > "raw" make recipes. Magnus claimed to use the `SetupExecute`. Unfortunately I > was not able to make it function. So I still have my "raw" solution in place, > but my last try with `SetupExecute` as comment beneath. Help is welcome. I applied all of magnus proposals, but I still get `gmake[3]: *** No rule to make target '/static_libs/jdk/build/aix-ppc64-server-fastdebug/support/native/java.base/libverify/static/libverify.a.exp', needed by '/static_libs/jdk/build/aix-ppc64-server-fastdebug/support/static-native/launcher/java'. Stop.` ------------- PR Comment: https://git.openjdk.org/jdk/pull/24062#issuecomment-2733873645