Buid package uclibc++ failed by using openwrt-sdk

It is very easy to reproduce.

  1. download the sdk https://archive.openwrt.org/releases/19.07.2/targets/mediatek/mt7623/openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64.tar.xz
  2. extract the package
  3. update and install feeds. (/scrips/feeds update -a; ./scripts/feeds install -a)
  4. build uclibc++ (make V=s package/uclibc++/compile -j1)

then will get error:

make[3]: Entering directory '/home/sdn/openwrt/arm/tmp/openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/uClibc++-0.2.5'
make[3]: stat: src/abi/libsupc/._home_sdn_openwrt_arm_tmp_openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64_staging_dir_toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi_bin_.._lib_gcc_arm-openwrt-linux-muslgnueabi_7.5.0_.._.._.._.._arm-openwrt-linux-muslgnueabi_lib_libsupc++.a.dep: File name too long
rm -f ./src/abi/libsupc/.*dep ./src/abi/libsupc/*.o
(cd ./src/abi/libsupc/ && arm-openwrt-linux-muslgnueabi-gcc-ar x /home/sdn/openwrt/arm/tmp/openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/7.5.0/../../../../arm-openwrt-linux-muslgnueabi/lib/libsupc++.a && rm -f del_op.o del_ops.o del_opnt.o del_opv.o del_opvs.o del_opvnt.o eh_alloc.o eh_globals.o new_handler.o new_op.o new_opnt.o new_opv.o new_opvnt.o new_opa.o new_opant.o new_opva.o new_opvant.o del_opa.o del_opant.o del_opsa.o del_opva.o del_opvant.o del_opvsa.o pure.o)
echo "libsupc-y := \$(addprefix \$(LIBSUPC_OUT),array_type_info.o atexit_arm.o atexit_thread.o bad_alloc.o bad_array_length.o bad_array_new.o bad_cast.o bad_typeid.o class_type_info.o dyncast.o eh_arm.o eh_aux_runtime.o eh_call.o eh_catch.o eh_exception.o eh_personality.o eh_ptr.o eh_term_handler.o eh_terminate.o eh_tm.o eh_throw.o eh_type.o eh_unex_handler.o enum_type_info.o function_type_info.o fundamental_type_info.o guard.o guard_error.o hash_bytes.o nested_exception.o pbase_type_info.o pmem_type_info.o pointer_type_info.o si_class_type_info.o tinfo.o tinfo2.o vec.o vmi_class_type_info.o vterminate.o cp-demangle.o)" > src/abi/libsupc/._home_sdn_openwrt_arm_tmp_openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64_staging_dir_toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi_bin_.._lib_gcc_arm-openwrt-linux-muslgnueabi_7.5.0_.._.._.._.._arm-openwrt-linux-muslgnueabi_lib_libsupc++.a.dep
/bin/sh: 1: cannot create src/abi/libsupc/._home_sdn_openwrt_arm_tmp_openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64_staging_dir_toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi_bin_.._lib_gcc_arm-openwrt-linux-muslgnueabi_7.5.0_.._.._.._.._arm-openwrt-linux-muslgnueabi_lib_libsupc++.a.dep: File name too long
rm -f src/libuClibc++.a
arm-openwrt-linux-muslgnueabi-gcc-ar cr src/libuClibc++.a src/algorithm.o src/iomanip.o src/numeric.o src/map.o src/eh_alloc.o src/limits.o src/string.o src/char_traits.o src/stack.o src/new_opvnt.o src/new_op.o src/deque.o src/stdexcept.o src/queue.o src/valarray.o src/streambuf.o src/complex.o src/utility.o src/del_opv.o src/bitset.o src/vector.o src/del_opvnt.o src/del_opnt.o src/locale.o src/set.o src/new_opv.o src/iostream.o src/associative_base.o src/del_opvs.o src/new_handler.o src/func_exception.o src/new_opnt.o src/fstream.o src/exception.o src/ostream.o src/list.o src/ios.o src/del_ops.o src/del_op.o src/eh_globals.o src/sstream.o src/iterator.o src/istream.o src/abi/abi.o array_type_info.o atexit_arm.o atexit_thread.o bad_alloc.o bad_array_length.o bad_array_new.o bad_cast.o bad_typeid.o class_type_info.o dyncast.o eh_arm.o eh_aux_runtime.o eh_call.o eh_catch.o eh_exception.o eh_personality.o eh_ptr.o eh_term_handler.o eh_terminate.o eh_tm.o eh_throw.o eh_type.o eh_unex_handler.o enum_type_info.o function_type_info.o fundamental_type_info.o guard.o guard_error.o hash_bytes.o nested_exception.o pbase_type_info.o pmem_type_info.o pointer_type_info.o si_class_type_info.o tinfo.o tinfo2.o vec.o vmi_class_type_info.o vterminate.o cp-demangle.o
/home/sdn/openwrt/arm/tmp/openwrt-sdk-19.07.2-mediatek-mt7623_gcc-7.5.0_musl_eabi.Linux-x86_64/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-7.5.0_musl_eabi/bin/../lib/gcc/arm-openwrt-linux-muslgnueabi/7.5.0/../../../../arm-openwrt-linux-muslgnueabi/bin/ar: array_type_info.o: No such file or directory
make[3]: *** [src/Makefile.in:45: src/libuClibc++.a] Error 1

it is weird that gets string "lib_gcc_arm-openwrt-linux-muslgnueabi_7.5.0......_.._arm-openwrt-linux-muslgnueabi_lib"

I also encountered this problem, and finally found that the directory path was too long... Then I cd /tmp directory to compile and no error was reported
我也遇到了这个问题,最后发现是目录路径过长导致的...然后我cd /tmp 目录再进行编译就没有报错了。仅作记录,太坑爹了

请问cd /tmp 后make出现了错误no rule to make target , 怎么解决呢?我是新手😂,万分感谢