Error compiling from source

On a clean build it shows that libressl cannot be compiled.

franco@pc:/media/franco/6B5E898F3D543B48/openwrt$ time make -j4
 make[1] world
 make[2] tools/compile
 make[2] package/cleanup
 make[3] -C tools/flock compile
 make[3] -C tools/xz compile
 make[3] -C tools/sed compile
 make[3] -C tools/patch compile
 make[3] -C tools/tar compile
 make[3] -C tools/m4 compile
 make[3] -C tools/ninja compile
 make[3] -C tools/autoconf-archive compile
 make[3] -C tools/cpio compile
 make[3] -C tools/lzma compile
 make[3] -C tools/mtools compile
 make[3] -C tools/patch-image compile
 make[3] -C tools/sstrip compile
 make[3] -C tools/xxd compile
 make[3] -C tools/zip compile
 make[3] -C tools/expat compile
 make[3] -C tools/meson compile
 make[3] -C tools/pkgconf compile
 make[3] -C tools/libressl compile
 make[3] -C tools/autoconf compile
 make[3] -C tools/automake compile
 make[3] -C tools/missing-macros compile
 make[3] -C tools/libtool compile
 make[3] -C tools/dosfstools compile
    ERROR: tools/libressl failed to build.
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/media/franco/6B5E898F3D543B48/openwrt/include/toplevel.mk:230: world] Error 1

real    7m55,074s
user    9m3,291s
sys     2m19,474s

Do what it tells you to.

1 Like

I did not know whether to publish everything, so I copy the last lines.

ln -sf "get_rfc3526_prime_8192.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/get_rfc3526_prime_4096.3"
ln -sf "get_rfc3526_prime_8192.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/get_rfc3526_prime_6144.3"
ln -sf "lh_new.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/DECLARE_LHASH_OF.3"
ln -sf "lh_new.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/LHASH_COMP_FN_TYPE.3"
ln -sf "lh_new.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/LHASH_DOALL_ARG_FN_TYPE.3"
ln -sf "lh_new.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/LHASH_DOALL_FN_TYPE.3"
ln -sf "lh_new.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/LHASH_HASH_FN_TYPE.3"
ln -sf "lh_new.3" "/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/lh_<type>_delete.3"
ln: failed to create symbolic link '/media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/share/man/man3/lh_<type>_delete.3': Invalid argument
make[7]: *** [Makefile:3441: install-data-hook] Error 1
make[7]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt/build_dir/host/libressl-3.3.4/man'
make[6]: *** [Makefile:854: install-data-am] Error 2
make[6]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt/build_dir/host/libressl-3.3.4/man'
make[5]: *** [Makefile:806: install-am] Error 2
make[5]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt/build_dir/host/libressl-3.3.4/man'
make[4]: *** [Makefile:461: install-recursive] Error 1
make[4]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt/build_dir/host/libressl-3.3.4'
make[3]: *** [Makefile:34: /media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/stamp/.libressl_installed] Error 2
make[3]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt/tools/libressl'
time: tools/libressl/compile#86.25#26.96#168.78
    ERROR: tools/libressl failed to build.
make[2]: *** [tools/Makefile:159: tools/libressl/compile] Error 1
make[2]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt'
make[1]: *** [tools/Makefile:155: /media/franco/6B5E898F3D543B48/openwrt/staging_dir/host/stamp/.tools_compile_yyynyynnyyyynyyyyyynyynnyyyyyyyyyyyyyyyyyyyyynynyyyyyyyyy] Error 2
make[1]: Leaving directory '/media/franco/6B5E898F3D543B48/openwrt'
make: *** [/media/franco/6B5E898F3D543B48/openwrt/include/toplevel.mk:230: world] Error 2

real    5m32,856s
user    2m40,340s
sys     0m48,862s

Sounds like a substitution error. Curious why.

edit: current master has 3.4.0. Is this the 21.02 branch?

There are basically two (major) reasons why creating symlinks may fail:

  • disk full
  • the filesystem in use does not support symlinks

Looking at ln -sf "get_rfc3526_prime_8192.3" "/media/franco/6B5E898F3D543B48/ kind of suggests the later, as "6B5E898F3D543B48" looks quite a lot like a filesystem UUID - and a suspiciously short one at that, which would suggest you're building on a FAT32 filesystem, whch indeed does not support symlinks.

Building OpenWrt requires a POSIX compliant and case-sensitive filesystem, neither of which are possible om FAT32 (or NTFS, well, NTFS technically could be, but not really).

3 Likes

Apparently it was because of the disk format, because there is enough space (2 TB). Now I am using ext4. Before it was on NTFS. Still, now the disk is called "3efff9e6-250e-484e-8eac-39902e236edc".

Need to wait for latest kernel to get released with native NTFS support.

Even with v5.15+ and ntfs3, I wouldn't quite expect ntfs to be 'POSIX enough' for tasks like building filesystem images with a wide variety of specialties (like building OpenWrt images), although it claims to bring major improvements.

1 Like

Not the disk format, the file system. So I was right. Bad idea to use non-native file systems, BTW. If you were to use WSL (preferably WSL2), I suppose it has workarounds in place for that or its own virtual FS.

Yes. The file system.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.