ich habe auf meine NAS.5.40 (Linux NAS540 3.2.54 #1 SMP Tue May 22 01:36:44 CST 2018 armv7l GNU/Linux) seit langer Zeit entware-ng und "FHEM" am Laufen. FHEM basiert auf Perl und verlangt nach jedem Perl Update, dass ich verschiedene Module compilieren muss. Hat bisher sehr gut funktioniert:
Beschreibung: https://github.com/Entware-ng/Entware-n ... ilation%29
wget -qO- http://pkg.entware.net/binaries/armv7/i ... ude.tar.gz | tar xvz -C /opt/include
source /opt/bin/gcc_env.sh
perl -MCPAN -e shell
Nach dem letzten Update habe ich allerdings Probleme beim Perl-Modul "Net::SSLeay". Dieses benötigt libssl. Diese lib ist seit dem letzten Update in unterschiedlicher Variante vorhanden:
/opt/lib/libssl.so.1.1
und
/usr/lib/libssl.so
/usr/lib/libssl.so.1.0.0
Beim Compilieren sehe ich, dass via -L/usr und -L/usr/lib die libssl.o von /usr genommen wird. Was wohl falsch ist.
Compiler Output:
Code: Select all
arm-openwrt-linux-gnueabi-gcc -c -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pipe -march=armv7-a -mtune=cortex-a9 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -I/media/ware3/Entware.2019.05/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/include -I/media/ware3/Entware.2019.05/staging_dir/toolchain-arm_cortex-a9_gcc-7.4.0_glibc-2.23_eabi/include -O2 -DVERSION=\"1.88\" -DXS_VERSION=\"1.88\" -fPIC "-I/opt/lib/perl5/5.28/CORE" SSLeay.c
rm -f blib/arch/auto/Net/SSLeay/SSLeay.so
LD_RUN_PATH="/usr/lib" arm-openwrt-linux-gnueabi-gcc -shared -L/usr -L/usr/lib -L/media/ware3/Entware.2019.05/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/lib SSLeay.o -o blib/arch/auto/Net/SSLeay/SSLeay.so \
-L/usr -L/usr/lib -lssl -lcrypto -lz \
chmod 755 blib/arch/auto/Net/SSLeay/SSLeay.so
CHRISN/Net-SSLeay-1.88.tar.gz
/opt/bin/make -- OK
Code: Select all
# Error: Can't load '/i-data/70be7240/root/.cpan/build/Net-SSLeay-1.88-10/blib/arch/auto/Net/SSLeay/SSLeay.so' for module Net::SSLeay: libssl.so.1.0.0: cannot open shared object file: No such file or directory at /opt/lib/perl5/5.28/DynaLoader.pm line 159.
Also geforscht und folgendes gefunden:
Code: Select all
OPENSSL_PREFIX=/opt perl -MCPAN -e shell
Code: Select all
arm-openwrt-linux-gnueabi-gcc -c -I"/opt/include" -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -pipe -march=armv7-a -mtune=cortex-a9 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -I/media/ware3/Entware.2019.05/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/include -I/media/ware3/Entware.2019.05/staging_dir/toolchain-arm_cortex-a9_gcc-7.4.0_glibc-2.23_eabi/include -O2 -DVERSION=\"1.88\" -DXS_VERSION=\"1.88\" -fPIC "-I/opt/lib/perl5/5.28/CORE" SSLeay.c
rm -f blib/arch/auto/Net/SSLeay/SSLeay.so
LD_RUN_PATH="/opt/lib" arm-openwrt-linux-gnueabi-gcc -shared -L/opt -L/opt/lib -L/media/ware3/Entware.2019.05/staging_dir/target-arm_cortex-a9_glibc-2.23_eabi/opt/lib SSLeay.o -o blib/arch/auto/Net/SSLeay/SSLeay.so \
-L/opt -L/opt/lib -lssl -lcrypto -lz \
chmod 755 blib/arch/auto/Net/SSLeay/SSLeay.so
CHRISN/Net-SSLeay-1.88.tar.gz
/opt/bin/make -- OK
*ABER*:
Code: Select all
PERL_DL_NONLAZY=1 "/opt/bin/perl5.28.1" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/local/*.t t/handle/local/*.t
t/handle/local/05_use.t ................ 1/1
# Failed test 'use Net::SSLeay::Handle;'
# at t/handle/local/05_use.t line 8.
# Tried to use 'Net::SSLeay::Handle'.
# Error: Can't load '/i-data/70be7240/root/.cpan/build/Net-SSLeay-1.88-16/blib/arch/auto/Net/SSLeay/SSLeay.so' for module Net::SSLeay: libssl.so.1.0.0: cannot open shared object file: No such file or directory at /opt/lib/perl5/5.28/DynaLoader.pm line 159.
Folgender Aufruf - wäre wahrscheinlich korrekt - führt zu einem weiteren Problem:
Code: Select all
LD_LIBRARY_PATH=/opt/lib LD_RUN_PATH=/opt/lib OPENSSL_PREFIX=/opt perl -MCPAN -e shell
/bin/pwd: error while loading shared libraries: /opt/lib/libm.so.6: internal error
Könnte ich evtl. ein Downgrade zu Perl-5.26 machen?
Danke und Grüße
Gerhard