Building on macos with perl dependency fails

Building latest firmware on mac os (10.13.6) would fail with the following error:

/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/hostpkg/usr/bin/perl5.28.0 files/perlconfig.pl -Dowrt:target_cc='arm-openwrt-linux-muslgnueabi-gcc' -Dowrt:gccversion="7.3.0" -Dowrt:target_cross='arm-openwrt-linux-muslgnueabi-' -Dowrt:cflags='-O2 -pipe -mcpu=cortex-a9 -mfpu=vfp3 -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -I/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include -I/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/include -I/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.3.0_musl_eabi/usr/include -I/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.3.0_musl_eabi/include/fortify -I/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.3.0_musl_eabi/include' -Dowrt:ldflags='-L/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/lib -L/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/lib -L/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.3.0_musl_eabi/usr/lib -L/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-7.3.0_musl_eabi/lib -znow -zrelro' -Dowrt:libc="musl" -Dowrt:ipv6=undef -Dowrt:threads=no -Dowrt:staging_dir='/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi' -Dowrt:host_perl_prefix='/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/hostpkg/usr' files/version.config files/base.config files/arm.config files/architecture.config files/signal.config files/threads.config files/libc.config files/misc.config > /Volumes/OpenWrt/NETGEAR_R7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/perl/perl-5.28.0/config.sh
Can't load module List::Util, dynamic loading not available in this perl.
  (You may need to build a new perl executable which either supports
  dynamic loading or has the List::Util module statically linked into it.)
 at files/perlconfig.pl line 229.
Compilation failed in require at files/perlconfig.pl line 229.
BEGIN failed--compilation aborted at files/perlconfig.pl line 229.
make[3]: *** [/Volumes/OpenWrt/NETGEAR_R7800/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/perl/perl-5.28.0/.configured_68b329da9893e34099c7d8ad5cb9c940] Error 255
make[3]: Leaving directory `/Volumes/OpenWrt/NETGEAR_R7800/feeds/packages/lang/perl'
time: package/feeds/packages/perl/compile#0.25#0.13#0.66
make[2]: *** [package/feeds/packages/perl/compile] Error 2
make[2]: Leaving directory `/Volumes/OpenWrt/NETGEAR_R7800'
make[1]: *** [/Volumes/OpenWrt/NETGEAR_R7800/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory `/Volumes/OpenWrt/NETGEAR_R7800'
make: *** [world] Error 2

Looks like unresolved perl dependency of some sort. I posted a bug report at https://bugs.openwrt.org/index.php?do=details&task_id=1922, but the priority was set very low, so I am hoping maybe someone here has a quick workaround/solution?

Thanks,
Andrejs

1 Like

Hi,

I'm facing the same issue.
Did you end up finding a solution while compiling in mac OS?

Thank you!

Hi Adam. No, I installed Ubuntu Linux on a VPS and ever since compile OpenWrt there.

1 Like

Thank you for the reply.

After several attempts (trying to build OpenWrt with a mix clang with gcc, using different versions of perl, etc.), I ended up following a similar strategy.
I've ran a Ubuntu Server VM in VirtualBox in 'bridged' networking mode, accessing it via SSH. OpenWrt compiled just fine.

Also, a tip for others trying a similar route: if you want to edit files on the 'remote' (or 'guest') machine using a SublimeText installation on your 'local' (or 'host') machine, you can use rsub, as explained here.