Ключ для компиляции в AIX использует переменную LIBPATH , эквивалентную LD_LIBRARY_PATH для Linux.
В этом случае, в частности, переменная blibpath была установите также, как это используется в сценариях конфигурации, чтобы передать настраиваемые пути к библиотекам в качестве параметров компилятору и задать эти пути как пути поиска библиотек в двоичных файлах.
Чтобы быть уверенным, что двоичные двоичные файлы используются в компиляция следующих переменных, которые установлены перед командой configure:
OPENSSH_PATH="/soft/openssh-8.1"
export PATH="/soft/perl-5.16.3/bin:$OPENSSH_PATH/bin:$PATH"
# Library path in linking time
export blibpath="$OPENSSH_PATH/lib:/opt/freeware/lib64:/usr/lib:/lib"
# Library path in run time
export LIBPATH="$OPENSSH_PATH/lib:/opt/freeware/lib64:/opt/freeware/lib:/opt/lib64:/opt/64/lib:/opt/lib:/usr/lib64:/usr/lib:/lib:/usr/ccs/lib/"
export CFLAGS="-g -O2"
export CC="gcc -maix64"
export OBJECT_MODE=64
export NM="nm -X64"
export AR="ar -X64"
Как уже говорилось, две основные переменные для установки: blibpath , используемые на этапе компиляции, и LIBPATH используется при запуске двоичных файлов.
В двоичных файлах результатов правильно установлены библиотеки: -)
$ ldd /soft/openssh-8.1/bin/sshd
/soft/openssh-8.1/bin/sshd needs:
/usr/lib/libc.a(shr_64.o)
/soft/openssh-8.1/lib/libcrypto.a(libcrypto64.so.1.1)
/soft/openssh-8.1/lib/libssl.a(libssl64.so.1.1)
/usr/lib/libz.a(libz.so.1)
/usr/lib/libpam.a(shr_64.o)
/unix
/usr/lib/libcrypt.a(shr_64.o)
/opt/freeware/lib64/libz.so
/usr/lib/libpthreads.a(shr_xpg5_64.o)
/usr/lib/libmls.a(shr_64.o)
/usr/lib/libmlsenc.a(shr_64.o)
/usr/lib/libodm.a(shr_64.o)
$ dump -X64 -Hv /soft/openssh-8.1/bin/sshd
/soft/openssh-8.1/bin/sshd:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x00000247 0x00000734 0x000000aa
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000006 0x0000aa20 0x0000238a 0x0000aaca
***Import File Strings***
INDEX PATH BASE MEMBER
0 /soft/openssh-8.1/lib:/opt/freeware/lib64:/usr/lib:/lib
1 libc.a shr_64.o
2 libcrypto.a libcrypto64.so.1.1
3 libssl.a libssl64.so.1.1
4 libz.a libz.so.1
5 libpam.a shr_64.o
$ ldd /soft/openssh-8.1/libexec/sftp-server
/soft/openssh-8.1/libexec/sftp-server needs:
/usr/lib/libc.a(shr_64.o)
/soft/openssh-8.1/lib/libcrypto.a(libcrypto64.so.1.1)
/unix
/usr/lib/libcrypt.a(shr_64.o)
/opt/freeware/lib64/libz.so
/usr/lib/libpthreads.a(shr_xpg5_64.o)
$ dump -X64 -Hv /soft/openssh-8.1/libexec/sftp-server
/soft/openssh-8.1/libexec/sftp-server:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x00000081 0x0000016b 0x0000006b
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000003 0x00002300 0x00000552 0x0000236b
***Import File Strings***
INDEX PATH BASE MEMBER
0 /soft/openssh-8.1/lib:/opt/freeware/lib64:/usr/lib:/lib
1 libc.a shr_64.o
2 libcrypto.a libcrypto64.so.1.1
Команда ldd
сообщает, какие библиотеки используются, а dump -X64 -Hv
говорит, по каким путям будут использоваться эти библиотеки.