On Mon, Nov 23, 2020 at 10:39 AM Georgi Valkov <gval...@abv.bg> wrote: > > Dear Rosen, > > Thanks to your help I discovered the feeds/packages repository, however I was > not able to resolve the race condition during build and discover why Errno.pm > is not built when multiple workers are used e.g.: make > package/feeds/packages/perl/host/{clean,compile} -j 12 > > The good news is that if we move to perl 5.30.0 or newer, the race condition > is resolved. That's very good.
> We also need to add a few flags to files/base.config: > d_attribute_always_inline=‘define' > d_setlocale_accepts_any_locale_name=‘undef' > d_sockaddr_storage=‘undef’ > d_towlower=‘undef' > d_towupper=‘undef' > d_wcrtomb=‘undef' > i_wctype=‘define’ > > Then we can compile perl/host 5.30.0 up to 5.32.0. However building perl for > the target fails the install phase: > > error: > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: > input file: > /Volumes/test/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.30.0/ipkg-install/usr/bin/perl5.30.0 > is not a Mach-O file > Cannot update > /Volumes/test/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.30.0/ipkg-install/usr/bin/perl5.30.0 > dependency paths > make[3]: *** [makefile:445: install-all] Error 1 > make[3]: Leaving directory > '/Volumes/test/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.30.0' > make[2]: *** [Makefile:152: > /Volumes/test/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.30.0/.built] > Error 2 > > Another symptom I see, is that with 5.30.0 > build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/perl/perl-5.30.0/ipkg-install/usr/bin > contains only perl5.30.0, while with the original 5.28.1 it contains many > executables. > > Can you please update perl to 5.30.0 or 5.32.0? Just make sure it compiles > correctly on Linux or whatever environment you are using, and I will test it > on macOS 11. I seem to be missing something, and it might take me a very long > time to learn my way through, because I lack experience. I don't maintain perl. That's https://github.com/pprindeville . CC'ed > > > Thank you again for any help! > Georgi Valkov > > > > On 2020-11-18, at 10:32 AM, Georgi Valkov <gval...@abv.bg> wrote: > > > > > > > >> On 2020-11-18, at 4:24 AM, Rosen Penev <ros...@gmail.com> wrote: > >> > >> On Tue, Nov 17, 2020 at 3:16 PM Georgi Valkov <gval...@abv.bg> wrote: > >>> > >>> Dear OpenWRT team, > >>> > >>> I just updated my laptop to macOS 11 Big Sur. Presently only the perl > >>> hostpkg package fails during the build. Once I get past perl, everything > >>> else compiles correctly. Below is a patch, workaround, and details from > >>> my research. My target is Marvell EBU Armada, Linksys WRT3200ACM. > >>> > >>> Before applying the patch, make package/feeds/packages/perl/host/compile > >>> V=sc fails with the following error: > >>> Which of these apply, if any? [darwin] > >>> > >>> *** Unexpected product version 11.0. > >>> *** > >>> *** Try running sw_vers and see what its ProductVersion says. > >>> > >>> After the patch, make package/feeds/packages/perl/host/compile succeeds, > >>> however when multiple workers are used: make > >>> package/feeds/packages/perl/host/compile -j 12 V=sc, the build fails: > >>> Writing Makefile for CPAN > >>> make[4]: Entering directory > >>> '/Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/Archive-Tar' > >>> make[4]: Entering directory > >>> '/Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/CPAN' > >>> Generating a Unix-style Makefile > >>> Writing Makefile for Errno > >>> make[4]: Entering directory > >>> '/Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/ext/Errno' > >>> "../../miniperl" "-I../../lib" Errno_pm.PL Errno.pm > >>> Can't locate Errno.pm in @INC (you may need to install the Errno module) > >>> (@INC contains: > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/AutoLoader/lib > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/Carp/lib > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/PathTools > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/PathTools/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/ExtUtils-Install/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/ExtUtils-MakeMaker/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/ExtUtils-Manifest/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/File-Path/lib > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/ext/re > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/Term-ReadLine/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/Exporter/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/ext/File-Find/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/Text-Tabs/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/constant/lib > >>> > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/cpan/version/lib > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/lib .) at > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/dist/PathTools/Cwd.pm > >>> line 444. > >>> Unsuccessful Makefile.PL(cpan/ExtUtils-MakeMaker): code=512 at > >>> make_ext.pl line 518. > >>> make[3]: *** [GNUmakefile:599: cpan/ExtUtils-MakeMaker/pm_to_blib] Error 2 > >>> > >>> I have also seen errors where the build is trying to use /miniperl > >>> instead of ./miniperl, as well as > >>> /build_dir/hostpkg/perl/perl-5.28.1/perl instead of > >>> /Volumes/test/openwrt/build_dir/hostpkg/perl/perl-5.28.1/perl. The will > >>> occur if we try to build perl without host/clean and clean. Seems like a > >>> race condition due to dependency misconfiguration. > >>> > >>> Here is the list of all commands in order to compile OpenWRT starting > >>> from a clean build root: > >>> make -j 12 > >>> make package/feeds/packages/perl/host/clean > >>> make package/feeds/packages/perl/clean > >>> make package/feeds/packages/perl/compile > >>> make -j 12 > >>> > >>> The first make fails, then we perform host-clean and clean for perl, next > >>> compile will also do host-compile - we have to use a single worker here. > >>> Finally we can complete the rest of the build process. I should note that > >>> Languages, Perl, perl is not selected in menuconfig. I can understand if > >>> the hostpkg/perl is required during the build process, however > >>> perl/host{clean,compile} is not enough, I also need to perform > >>> perl/{clean,compile}. > >>> > >>> Here is the quick patch I made in order to verify if there are any other > >>> broken packages: no. Only perl fails to compile. I am also not sure how > >>> to handle patches and pull-requests for feeds, so I thought I should > >>> rather share my research here and ask for help. > >>> > >>> feeds/packages/lang/perl/patches/302-macos_11_support.patch > >>> Index: perl-5.28.1/hints/darwin.sh > >>> =================================================================== > >>> --- perl-5.28.1.orig/hints/darwin.sh > >>> +++ perl-5.28.1/hints/darwin.sh > >>> @@ -327,7 +327,7 @@ EOM > >>> # "ProductVersion: 10.11" "10.11" > >>> prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. > >>> '{print $1"."$2}'` > >>> case "$prodvers" in > >>> - 10.*) > >>> + 10.*|11.*) > >>> add_macosx_version_min ccflags $prodvers > >>> add_macosx_version_min ldflags $prodvers > >>> ;; > >>> > >> This patch is for https://github.com/openwrt/packages > >> > >> Please submit a PR there. > >> > >> Speaking of perl, it could probably use an update. > > > > I would only make a pull-request when I’m certain I have corrected all > > issues and tested thoroughly. > > Indeed the perl package must be updated. I’m not sure if I am allowed to > > create patches for /feeds, because > > /feeds and /package/feeds are in .gitignore, so I shouldn't force changes > > inside these directories. > > At least I’m not aware of a proper way to do so. > > > >>> > >>> Thank you for any help! > >>> Georgi Valkov > >>> > >>> https://bugs.openwrt.org/index.php?do=details&task_id=3458 > >>> > >>> > >>> _______________________________________________ > >>> openwrt-devel mailing list > >>> openwrt-devel@lists.openwrt.org > >>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel