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.

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

Commit messages:
 - JDK-8352064

Changes: https://git.openjdk.org/jdk/pull/24062/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24062&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8352064
  Stats: 66 lines in 5 files changed: 60 ins; 3 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/24062.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24062/head:pull/24062

PR: https://git.openjdk.org/jdk/pull/24062

Reply via email to