RFR: 8348663: [AIX] clang pollutes the burned-in library search paths of the generated executables

Joachim Kern jkern at openjdk.org
Wed Jan 29 09:50:58 UTC 2025


The clang compiler which we use since jdk21 pollutes the burned-in library search paths of the generated executables.
e.g. a dump -X64 -H ... /jdk-23.0.1+11-jre/lib/libnio.so

amongst others produces the following lines

                        ***Import File Strings***
INDEX PATH BASE MEMBER
0 /opt/IBM/openxlC/17.1.1/../../../../usr/lpp/xlC/lib:/opt/IBM/openxlC/17.1.1/lib:/opt/IBM/openxlC/17.1.1/bin/../../../../../usr/lpp/xlC/lib:/usr/opt/zlibNX/lib:/opt/freeware/lib/pthread:/opt/freeware/lib:/usr/lib

The long string is the burned in library search path which will be used after searching with LIBPATH envvar.
You see there are some compiler paths which customers will not have; also /opt/freeware is unwanted.
A proper executable should only have the burned in default search path
/usr/lib:lib

To ensure this we want to call the linker with the flag
-fuse-ld=our-wrapper-script-cleaning-LIBPATH- and-calling-original-ld-afterwards
This script we want to deliver in make/scripts/aix/ld.sh
just containing
#!/bin/bash
unset LIBPATH
exec /usr/bin/ld "$@"
return $?

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

Commit messages:
 - check in script without x-Bit but copy it to build directory with x-Bit
 - JDK-8348663

Changes: https://git.openjdk.org/jdk/pull/23313/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23313&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8348663
  Stats: 7 lines in 2 files changed: 6 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/23313.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23313/head:pull/23313

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


More information about the build-dev mailing list