build-environment and pathlength

Sven Roederer devel-sven at geroedel.de
Wed May 26 14:09:34 PDT 2021


Hi,

since some time I carry a patch along to fix running mkimage with a long 
pathname for $TOPDIR.
Recently 5a9608102b3c4 was added to work around a similar issue in 
kernel2minor (also addressed by [1]) and I just found another when building 
uclibc++ .

Based on this it might be required to add a check for the length of $TOPDIR to 
avoid buildfailures just as of such upstream-limitations. At least the uclibc+
+ is easy to identify, but kernel2minor and mkimage took some effort and 
upstream fixing. But there are more like this waiting for sure. 

Adding such test will be quite straight forward, but 2 questions come up 
instantly:
* Do we want such check / restriction?
* What will be the best limit for the pathlength?

Sven


uclibc++ build-log

make[5]: Entering directory '/mnt/hosts/strike/develop/sven/openwrt/freifunk/
loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong-
path/freifunk-berlin/openwrt/build_dir/target-mipsel_24kc_musl/uClibc++-0.2.5'
make[5]: stat: src/abi/
libsupc/._mnt_hosts_strike_develop_sven_openwrt_freifunk_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong-
path_freifunk-berlin_openwrt_staging_dir_toolchain-
mipsel_24kc_gcc-8.4.0_musl_lib_gcc_mipsel-openwrt-linux-
musl_8.4.0_.._.._.._.._mipsel-openwrt-linux-musl_lib_libsupc++.a.dep: File 
name too long
/bin/sh: 1: cannot create src/abi/
libsupc/._mnt_hosts_strike_develop_sven_openwrt_freifunk_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong-
path_freifunk-berlin_openwrt_staging_dir_toolchain-
mipsel_24kc_gcc-8.4.0_musl_lib_gcc_mipsel-openwrt-linux-
musl_8.4.0_.._.._.._.._mipsel-openwrt-linux-musl_lib_libsupc++.a.dep: File 
name too long
  AR cr src/libuClibc++.a
/mnt/hosts/strike/develop/sven/openwrt/freifunk/
loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong-
path/freifunk-berlin/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/
lib/gcc/mipsel-openwrt-linux-musl/8.4.0/../../../../mipsel-openwrt-linux-musl/
bin/ar: array_type_info.o: No such file or directory
src/Makefile.in:44: recipe for target 'src/libuClibc++.a' failed
make[5]: *** [src/libuClibc++.a] Error 1

mkimage failure:

/mnt/hosts/strike/develop/sven/openwrt/freifunk/second_builddir/openwrt/
scripts/mkits-qsdk-ipq-image.sh /mnt/hosts/strike/develop/sven/openwrt/
freifunk/second_builddir/openwrt/build_dir/target-arm_cortex-a7+neon-
vfpv4_musl_eabi/linux-ipq40xx_generic/tmp/freifunk-berlin-sam0815-
master-08aa269af-ipq40xx-generic-alfa-network_ap120c-ac-squashfs-nand-
factory.bin.its ubi /mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/
linux-ipq40xx_generic/tmp/freifunk-berlin-sam0815-master-08aa269af-ipq40xx-
generic-alfa-network_ap120c-ac-squashfs-nand-factory.bin
PATH=/mnt/hosts/strike/develop/sven/openwrt/freifunk/second_builddir/openwrt/
build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/
linux-5.4.119/scripts/dtc:/mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-
vfpv4_gcc-8.4.0_musl_eabi/bin:/mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-
vfpv4_gcc-8.4.0_musl_eabi/bin:/mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-
vfpv4_gcc-8.4.0_musl_eabi/bin:/mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/staging_dir/toolchain-arm_cortex-a7+neon-
vfpv4_gcc-8.4.0_musl_eabi/bin:/mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/staging_dir/host/bin:/mnt/hosts/strike/develop/sven/
openwrt/freifunk/second_builddir/openwrt/staging_dir/toolchain-arm_cortex-
a7+neon-vfpv4_gcc-8.4.0_musl_eabi/bin:/mnt/hosts/strike/develop/sven/openwrt/
freifunk/second_builddir/openwrt/staging_dir/host/bin:/mnt/hosts/strike/
develop/sven/openwrt/freifunk/second_builddir/openwrt/staging_dir/host/bin:/
usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/
local/games:/snap/bin mkimage -f /mnt/hosts/strike/develop/sven/openwrt/
freifunk/second_builddir/openwrt/build_dir/target-arm_cortex-a7+neon-
vfpv4_musl_eabi/linux-ipq40xx_generic/tmp/freifunk-berlin-sam0815-
master-08aa269af-ipq40xx-generic-alfa-network_ap120c-ac-squashfs-nand-
factory.bin.its /mnt/hosts/strike/develop/sven/openwrt/freifunk/
second_builddir/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/
linux-ipq40xx_generic/tmp/freifunk-berlin-sam0815-master-08aa269af-ipq40xx-
generic-alfa-network_ap120c-ac-squashfs-nand-factory.bin.new
/mnt/hosts/strike/develop/sven/openwrt/freifunk/second_builddir/openwrt/
build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/tmp/
freifunk-berlin-sam0815-master-08aa269af-ipq40xx-generic-alfa-network_ap120c-
ac-squashfs-nand-factory.bin.new: Image file name (mkimage) too long, can't 
create tmpfile
Makefile:18: recipe for target '/mnt/hosts/strike/develop/sven/openwrt/
freifunk/second_builddir/openwrt/build_dir/target-arm_cortex-a7+neon-
vfpv4_musl_eabi/linux-ipq40xx_generic/tmp/freifunk-berlin-sam0815-
master-08aa269af-ipq40xx-generic-alfa-network_ap120c-ac-squashfs-nand-
factory.bin' failed
make[6]: *** [/mnt/hosts/strike/develop/sven/openwrt/freifunk/second_builddir/
openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-
ipq40xx_generic/tmp/freifunk-berlin-sam0815-master-08aa269af-ipq40xx-generic-
alfa-network_ap120c-ac-squashfs-nand-factory.bin] Error 1


1 - https://github.com/openwrt/openwrt/pull/3262





More information about the openwrt-devel mailing list