hanwckf / immortalwrt-mt798x

Other
1.05k stars 571 forks source link

编译插件提示musl缺失 #306

Closed aizaimosaou closed 2 weeks ago

aizaimosaou commented 2 months ago

Describe the bug

[[我使用ubuntu系统对这个项目插件:sirpdboy/luci-app-partexp(https://github.com/sirpdboy/luci-app-partexp)进行了编译,但总提示错误musl/lib/ld-musl-*.so*']

希望得到回复

ImmortalWrt version

r0-e1b4487

ImmortalWrt target/subtarget

mediatek/mt7981

Device

CMCC RAX3000M emmc

Image kind

Official downloaded image

Steps to reproduce

如下为完整运行过程: root@tao:/immortalwrt-mt798x# make package/custom/luci-app-partexp/compile V=s make[2]: Entering directory '/immortalwrt-mt798x/scripts/config' cc -O2 -c -o conf.o conf.c cc conf.o confdata.o expr.o lexer.lex.o parser.tab.o preprocess.o symbol.o util.o -o conf make[2]: Leaving directory '/immortalwrt-mt798x/scripts/config' time: target/linux/prereq#0.17#0.10#0.26 make[1]: Entering directory '/immortalwrt-mt798x' make[2]: Entering directory '/immortalwrt-mt798x/feeds/luci/modules/luci-base' touch /immortalwrt-mt798x/build_dir/hostpkg/luci-base/.prepared2c116b40da338eab533c8ec09bd44ec1_6664517399ebbbc92a37c5bb081b5c53 touch /immortalwrt-mt798x/build_dir/hostpkg/luci-base/.configured make -C src/ clean po2lmo jsmin make[3]: Entering directory '/immortalwrt-mt798x/feeds/luci/modules/luci-base/src' rm -f contrib/lemon po2lmo parser.so version.lua plural_formula.c plural_formula.h .o cc -DNDEBUG -c -o po2lmo.o po2lmo.c cc -o contrib/lemon contrib/lemon.c ./contrib/lemon -q plural_formula.y cc -DNDEBUG -c -o template_lmo.o template_lmo.c cc -DNDEBUG -c -o plural_formula.o plural_formula.c cc -o po2lmo po2lmo.o template_lmo.o plural_formula.o cc -DNDEBUG -c -o jsmin.o jsmin.c cc -o jsmin jsmin.o make[3]: Leaving directory '/immortalwrt-mt798x/feeds/luci/modules/luci-base/src' touch /immortalwrt-mt798x/build_dir/hostpkg/luci-base/.built install -d -m0755 /immortalwrt-mt798x/staging_dir/hostpkg/bin install -m0755 src/po2lmo /immortalwrt-mt798x/staging_dir/hostpkg/bin/po2lmo install -m0755 src/jsmin /immortalwrt-mt798x/staging_dir/hostpkg/bin/jsmin mkdir -p /immortalwrt-mt798x/staging_dir/hostpkg/stamp touch /immortalwrt-mt798x/build_dir/hostpkg/luci-base/.built touch /immortalwrt-mt798x/staging_dir/hostpkg/stamp/.luci-base_installed make[2]: Leaving directory '/immortalwrt-mt798x/feeds/luci/modules/luci-base' time: package/feeds/luci/luci-base/host-compile#1.73#0.63#2.30 make[2]: Entering directory '/immortalwrt-mt798x/package/libs/toolchain' touch /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.prepared_4cd9af12f64b43040389d3c8815c7fe9_6664517399ebbbc92a37c5bb081b5c53_check mkdir -p /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain touch /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.prepared_4cd9af12f64b43040389d3c8815c7fe9_6664517399ebbbc92a37c5bb081b5c53 rm -f /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53musl/toolchain/.configured rm -f /immortalwrt-mt798x/staging_dir/target-aarch64_cortex-a53_musl/stamp/.toolchain_installed (cd /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/./; if [ -x ./configure ]; then find /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/ -name config.guess | xargs -r chmod u+w; find /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/ -name config.guess | xargs -r -n1 cp --remove-destination /immortalwrt-mt798x/scripts/config.guess; find /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/ -name config.sub | xargs -r chmod u+w; find /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/ -name config.sub | xargs -r -n1 cp --remove-destination /immortalwrt-mt798x/scripts/config.sub; AR="aarch64-openwrt-linux-musl-gcc-ar" AS="aarch64-openwrt-linux-musl-gcc -c -Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain=toolchain -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" LD=aarch64-openwrt-linux-musl-ld NM="aarch64-openwrt-linux-musl-gcc-nm" CC="aarch64-openwrt-linux-musl-gcc" GCC="aarch64-openwrt-linux-musl-gcc" CXX="aarch64-openwrt-linux-musl-g++" RANLIB="aarch64-openwrt-linux-musl-gcc-ranlib" STRIP=aarch64-openwrt-linux-musl-strip OBJCOPY=aarch64-openwrt-linux-musl-objcopy OBJDUMP=aarch64-openwrt-linux-musl-objdump SIZE=aarch64-openwrt-linux-musl-size CFLAGS="-Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain=toolchain -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro " CXXFLAGS="-Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -fmacro-prefix-map=/immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain=toolchain -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro " CPPFLAGS="-I/immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/usr/include -I/immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/include/fortify -I/immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/include " LDFLAGS="-L/immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/usr/lib -L/immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/lib -znow -zrelro " ./configure --target=aarch64-openwrt-linux --host=aarch64-openwrt-linux --build=x86_64-pc-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; ) touch /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.configured_68b329da9893e34099c7d8ad5cb9c940 rm -f /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.built touch /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.built_check touch /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.built rm -rf /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc.installed /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc mkdir -p /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc install -d -m0755 /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc/lib /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc/usr/bin cp -fpR /immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/lib/ld-musl-.so /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc/lib/ cp: cannot stat '/immortalwrt-mt798x/staging_dir/toolchain-aarch64_cortex-a53_gcc-8.4.0_musl/lib/ld-musl-.so': No such file or directory make[2]: [Makefile:728: /immortalwrt-mt798x/build_dir/target-aarch64_cortex-a53_musl/toolchain/.pkgdir/libc.installed] Error 1 make[2]: Leaving directory '/immortalwrt-mt798x/package/libs/toolchain' time: package/libs/toolchain/compile#0.16#0.09#0.23 ERROR: package/libs/toolchain failed to build. make[1]: [package/Makefile:120: package/libs/toolchain/compile] Error 1 make[1]: Leaving directory '/immortalwrt-mt798x' make: *** [/immortalwrt-mt798x/include/toplevel.mk:230: package/custom/luci-app-partexp/compile] Error 2

Actual behaviour

1,安装了对应的支持库 sudo apt-get update sudo apt-get install git-core build-essential libncurses5-dev zlib1g-dev gawk flex quilt xsltproc libssl-dev

2,mmortalwrt-mt798x项目存放于根目录,mmortalwrt-mt798x/package中克隆了对应了插件

该进行的feeds安装也都进行了

我怀疑是musl没装好,或者说是make menuconfig的时候什么设置没有设置

Expected behaviour

希望可以通过编译这个插件,让arm架构的immortalwrt-mt798x rax3000m emmc可以得到对应的ipk文件。期待得到回复

Additional info

No response

Diffconfig

No response

Terms

hanwckf commented 2 weeks ago

在编译插件前,首先需要运行一次make把工具链等都编译好