On Wed, 29 Jan 2025 11:43:28 GMT, Joachim Kern <jk...@openjdk.org> wrote:
>> 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 $? > > Joachim Kern has updated the pull request incrementally with one additional > commit since the last revision: > > following Magnus proposals I followed all of Magnus proposals: I used `$OUTPUTDIR` instead of `${TOPDIR}/build/${CONF_NAME}`. I replaced `cp` and `chmod` by `$CP` and `$CMHOD`. I moved the copy and mode bit change from `flags-ldflags.m4` to `BASIC_POST_CONFIG_OUTPUT` in `basic.m4` . I removed the useless `return $?` from my script. ------------- PR Comment: https://git.openjdk.org/jdk/pull/23313#issuecomment-2621420948