LINUX.ORG.RU

не собирается linux-pam с musl

 ,


0

2

тулчейн свой

➜  Linux-PAM-1.3.0 i586-linux-musl-gcc -v
Используются внутренние спецификации.
COLLECT_GCC=i586-linux-musl-gcc
COLLECT_LTO_WRAPPER=/home/elmer/archaiotropus/output/libexec/gcc/i586-linux-musl/9.1.0/lto-wrapper
Целевая архитектура: i586-linux-musl
Параметры конфигурации: ../gcc-9.1.0/configure --prefix=/home/elmer/archaiotropus/output --target=i586-linux-musl --with-sysroot=/home/elmer/archaiotropus/output/i586-linux-musl --enable-nls --enable-languages=c,c++ --enable-c99 --enable-long-long --disable-libmudflap --disable-multilib --disable-libmpx --disable-libssp --disable-libsanitizer --with-arch=i586 --with-native-system-header-dir=/include --disable-bootstrap
Модель многопоточности: posix
gcc версия 9.1.0 (GCC) 

исходники проги беру тут, патчи для сборки с musl (1, 2, 3) украл у alpine linux

configure запускаю так

./configure --host=i586-linux-musl --disable-nis --disable-nls --disable-db

потом запускаю make и вылезает ошибка

libtool: link: i586-linux-musl-gcc -shared  -fPIC -DPIC  .libs/pam_rhosts.o   -Wl,-rpath -Wl,/home/elmer/workingcatalog/bootstrap/Linux-PAM-1.3.0/libpam/.libs ../../libpam/.libs/libpam.so -ldl  -O2 -Wl,--version-script=./../modules.map -Wl,--as-needed -Wl,--no-undefined -Wl,-O1   -Wl,-soname -Wl,pam_rhosts.so -o .libs/pam_rhosts.so
/home/elmer/archaiotropus/output/lib/gcc/i586-linux-musl/9.1.0/../../../../i586-linux-musl/bin/ld: .libs/pam_rhosts.o: in function `pam_sm_authenticate':
/home/elmer/workingcatalog/bootstrap/Linux-PAM-1.3.0/modules/pam_rhosts/pam_rhosts.c:116: undefined reference to `ruserok'
collect2: error: ld returned 1 exit status

в гугле по запросу «linux pam musl ruserok» выдает какие-то непонятные патчи и я не хочу их использовать

собственно вопрос: почему в alpine linux все компилится нормально с тремя патчами, а у меня не может найти какую-то хрень из glibc?


Linux-PAM-1.3.0/modules/pam_rhosts/pam_rhosts.c:116: undefined reference to ...

почему в alpine linux все компилится нормально

Просто заглянуть в https://git.alpinelinux.org/aports/tree/main/linux-pam/APKBUILD и обнаружить:

prepare() {
	cd "$builddir"
	default_prepare
	# disable insecure modules
	sed -e 's/pam_rhosts//g' -i modules/Makefile.am   # <-------
}

gag ★★★★★ ()