Nowa aplikacja QPKG w sklepie Qnapclub Store: MUSL ToolChain/Framework
Add MUSL Cross tools & Framework to have a compatible MUSL ELF on your NAS
install on your NAS the MUSL Cross toolchain built with crosstool-ng
it allow to compile directly on your NAS with GCC 9.3 .. other compilaton tools are also embedded (make, autoconf, bison, libtool...)
because musl run under another ELF this package needs to be installed on NAS to execute the cross compiled application
on x86_64 NAS, it modify .profile of your /root (admin session in SSH) and export necessary FLAG to compile
HOST=x86_64-QNAP_-linux-musl
export HOST
TOOLCHAIN_PATH=/root/x-tools/x86_64-QNAP_-linux-musl
export TOOLCHAIN_PATH
PATH=$PATH:$HOME/bin:${TOOLCHAIN_PATH}/bin:${TOOLCHAIN_PATH}/x86_64-QNAP_-linux-musl/bin
export PATH
call $HOST in your autoconf source will call all necessary toolcahin artefacts
exemple for openssl $PREFIX location should be exported first (location where source will compiled)
wget -c https://www.openssl.org/source/openssl-1.1.1j.tar.gz
tar -xvf openssl-1.1.1j.tar.gz
cd openssl-1.1.1j
PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" \
CFLAGS="-O2 -I${PREFIX}/include" \
CXXFLAGS="-O2 -I${PREFIX}/include" \
LDFLAGS="-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib -Wl,-rpath,/root/x-tools/x86_64-QNAP_-linux-musl/lib -Wl,-rpath,/root/x-tools/x86_64-QNAP_-linux-musl/x86_64-QNAP_-linux-musl/lib64 -Wl,--dynamic-linker=/root/x-tools/x86_64-QNAP_-linux-musl/x86_64-QNAP_-linux-musl/sysroot/lib/ld-musl-x86_64.so.1" \
CPPLFAGS="-O2 -I${PREFIX}/include" \
FFLAGS="-O2 -I${PREFIX}/include" \
./Configure "-L${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib -Wl,-rpath,${PREFIX}/lib -Wl,-rpath,/root/x-tools/x86_64-QNAP_-linux-musl/lib -Wl,-rpath,/root/x-tools/x86_64-QNAP_-linux-musl/x86_64-QNAP_-linux-musl/lib64 -Wl,--dynamic-linker=/root/x-tools/x86_64-QNAP_-linux-musl/x86_64-QNAP_-linux-musl/sysroot/lib/ld-musl-x86_64.so.1" "-I${PREFIX}/include" --prefix=${PREFIX} --openssldir=/etc/ssl --cross-compile-prefix=${HOST}- enable-tls1_3 shared no-zlib linux-x86_64
make -j$(nproc) && make install
here i added a dynamic linker to be sure source will go pick the right ld location...
not sure Compiled on NAS directly is right solution, (should miss many thing) but you can download my MUSL ToolChains on an Ubuntu and extract it in side /root
https://mega.nz/file/hgBjFAhZ#zU3zg-dRk1UesRwzQw2PlpWZh9djZcVrSWz2_e-F9m4
next create in root a .bash_profile with inside
HOST=x86_64-QNAP_-linux-musl
export HOST
TOOLCHAIN_PATH=/root/x-tools/x86_64-QNAP_-linux-musl
export TOOLCHAIN_PATH
PATH=$PATH:$HOME/bin:${TOOLCHAIN_PATH}/bin:${TOOLCHAIN_PATH}/x86_64-QNAP_-linux-musl/bin
export PATH
and restart your SSH to make change apply to the current session
Modele: TS-NASX86 64bits
Kontynuuj czytanie...