On Tue, Nov 24, 2020 at 12:08 PM Georgi Valkov <gval...@abv.bg> wrote: > > Thank you, Philip! > Here it is the patch: Please post this on https://github.com/openwrt/packages/pulls . This patch does not apply locally. > > > From a5c62c0dd2b4dabf72571239f08266b348dad5a2 Mon Sep 17 00:00:00 2001 > From: Georgi Valkov <gval...@abv.bg> > Date: Tue, 24 Nov 2020 22:02:30 +0200 > Subject: [PATCH] perl: switch to 5.30.0 > > perl: switch to 5.30.0 > > Signed-off-by: Georgi Valkov <gval...@abv.bg> > --- > feeds/packages/lang/perl/Makefile | 4 +- > feeds/packages/lang/perl/files/base.config | 4 + > feeds/packages/lang/perl/files/version.config | 6 +- > .../patches/020-storables-stacksize.patch | 66 --- > .../perl/patches/302-macos_11_support.patch | 6 +- > .../lang/perl/patches/900-use-rm-force.patch | 285 ------------- > .../patches/910-miniperl-needs-inc-dot.patch | 22 +- > .../lang/perl/patches/920-fix-no-locale.patch | 383 ------------------ > .../perl/patches/998-Errno_errno.h_path.patch | 11 - > ...999-fix-build-failure-against-gcc-10.patch | 103 ----- > feeds/packages/lang/perl/perlver.mk | 5 +- > 11 files changed, 28 insertions(+), 867 deletions(-) > delete mode 100644 > feeds/packages/lang/perl/patches/020-storables-stacksize.patch > delete mode 100644 feeds/packages/lang/perl/patches/900-use-rm-force.patch > delete mode 100644 feeds/packages/lang/perl/patches/920-fix-no-locale.patch > delete mode 100644 > feeds/packages/lang/perl/patches/998-Errno_errno.h_path.patch > delete mode 100644 > feeds/packages/lang/perl/patches/999-fix-build-failure-against-gcc-10.patch > > diff --git a/feeds/packages/lang/perl/Makefile > b/feeds/packages/lang/perl/Makefile > index 84d256d..5e5ded2 100644 > --- a/feeds/packages/lang/perl/Makefile > +++ b/feeds/packages/lang/perl/Makefile > @@ -11,7 +11,7 @@ include perlver.mk > > PKG_NAME:=perl > PKG_VERSION:=$(PERL_VERSION) > -PKG_RELEASE:=4 > +PKG_RELEASE:=1 > > PKG_SOURCE_URL:=\ > https://cpan.metacpan.org/src/5.0 \ > @@ -21,7 +21,7 @@ PKG_SOURCE_URL:=\ > https://mirrors.sonic.net/cpan/src/5.0 \ > https://www.cpan.org/src/5.0 > PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz > -PKG_HASH:=fea7162d4cca940a387f0587b93f6737d884bf74d8a9d7cfd978bc12cd0b202d > +PKG_HASH:=ac501cad4af904d33370a9ea39dbb7a8ad4cb19bc7bc8a9c17d8dc3e81ef6306 > > PKG_LICENSE:=GPL-1.0-or-later Artistic-1.0-Perl > PKG_LICENSE_FILES:=Copying Artistic README > diff --git a/feeds/packages/lang/perl/files/base.config > b/feeds/packages/lang/perl/files/base.config > index f2d18f5..5551588 100644 > --- a/feeds/packages/lang/perl/files/base.config > +++ b/feeds/packages/lang/perl/files/base.config > @@ -436,6 +436,7 @@ d_sethostent_r='undef' > d_setitimer='define' > d_setlinebuf='define' > d_setlocale='define' > +d_setlocale_accepts_any_locale_name='undef' > d_setlocale_r='undef' > d_setnent='define' > d_setnetent_r='undef' > @@ -543,6 +544,8 @@ d_timegm='define' > d_times='define' > d_tm_tm_gmtoff='define' > d_tm_tm_zone='define' > +d_towlower='undef' > +d_towupper='undef' > d_trunc='define' > d_truncate='define' > d_truncl='define' > @@ -737,6 +740,7 @@ i_varargs='undef' > i_varhdr='stdarg.h' > i_vfork='undef' > i_wchar='define' > +i_wctype='define' > i_xlocale='undef' > ignore_versioned_solibs='y' > inc_version_list=' ' > diff --git a/feeds/packages/lang/perl/files/version.config > b/feeds/packages/lang/perl/files/version.config > index b318648..b80127a 100644 > --- a/feeds/packages/lang/perl/files/version.config > +++ b/feeds/packages/lang/perl/files/version.config > @@ -1,11 +1,11 @@ > # Set the version here > PERL_REVISION=5 > -PERL_VERSION=28 > -PERL_SUBVERSION=1 > +PERL_VERSION=30 > +PERL_SUBVERSION=0 > > # (api_revison, api_version, api_subversion) = (revision, version, 0) usually > PERL_API_REVISION=5 > -PERL_API_VERSION=28 > +PERL_API_VERSION=30 > PERL_API_SUBVERSION=0 > > known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf > Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob > Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util > MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX > PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable > Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize > Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads > threads/shared Hash/Util/FieldHash' > diff --git a/feeds/packages/lang/perl/patches/020-storables-stacksize.patch > b/feeds/packages/lang/perl/patches/020-storables-stacksize.patch > deleted file mode 100644 > index 903d90b..0000000 > --- a/feeds/packages/lang/perl/patches/020-storables-stacksize.patch > +++ /dev/null > @@ -1,66 +0,0 @@ > -From 682a4acb98783a7f9b5c286b308f12863599fec3 Mon Sep 17 00:00:00 2001 > -From: Tony Cook <t...@develop-help.com> > -Date: Mon, 30 Jul 2018 21:00:52 +1000 > -Subject: (perl #133411) don't try to load Storable with -Dusecrosscompile > - > ---- > - dist/Storable/Makefile.PL | 9 ++++++++- > - dist/Storable/stacksize | 10 +++++++--- > - 2 files changed, 15 insertions(+), 4 deletions(-) > - > ---- a/dist/Storable/Makefile.PL > -+++ b/dist/Storable/Makefile.PL > -@@ -90,12 +90,19 @@ sub depend { > - # blib.pm needs arch/lib > - $extra_deps = ' Storable.pm'; > - } > -+ my $whichperl; > -+ if ($Config::Config{usecrosscompile}) { > -+ $whichperl = '$(PERLRUN)'; > -+ } > -+ else { > -+ $whichperl = '$(FULLPERLRUNINST)'; > -+ } > - my $linktype = uc($_[0]->{LINKTYPE}); > - my $limit_pm = File::Spec->catfile('lib', 'Storable', 'Limit.pm'); > - " > - $limit_pm : stacksize \$(INST_$linktype)$extra_deps > - \$(MKPATH) \$(INST_LIB) > -- \$(FULLPERLRUNINST) stacksize $options > -+ $whichperl stacksize $options > - > - release : dist > - git tag \$(VERSION) > ---- a/dist/Storable/stacksize > -+++ b/dist/Storable/stacksize > -@@ -7,6 +7,9 @@ use Cwd; > - use File::Spec; > - use strict; > - > -+-d "lib" or mkdir "lib"; > -+-d "lib/Storable" or mkdir "lib/Storable"; > -+ > - my $fn = "lib/Storable/Limit.pm"; > - my $ptrsize = $Config{ptrsize}; > - my ($bad1, $bad2) = (65001, 25000); > -@@ -29,6 +32,10 @@ sub is_miniperl { > - } > - > - if (is_miniperl()) { > -+ if ($Config{usecrosscompile}) { > -+ write_limits(500, 265); > -+ exit; > -+ } > - die "Should not run during miniperl\n"; > - } > - my $prefix = ""; > -@@ -68,9 +75,6 @@ if ($ENV{PERL_CORE}) { > - } > - } > - > ---d "lib" or mkdir "lib"; > ---d "lib/Storable" or mkdir "lib/Storable"; > -- > - if ($^O eq "MSWin32") { > - require Win32; > - my ($str, $major, $minor) = Win32::GetOSVersion(); > diff --git a/feeds/packages/lang/perl/patches/302-macos_11_support.patch > b/feeds/packages/lang/perl/patches/302-macos_11_support.patch > index 6b8e1b0..c069232 100644 > --- a/feeds/packages/lang/perl/patches/302-macos_11_support.patch > +++ b/feeds/packages/lang/perl/patches/302-macos_11_support.patch > @@ -1,7 +1,7 @@ > -Index: perl-5.28.1/hints/darwin.sh > +Index: perl-5.30.0/hints/darwin.sh > =================================================================== > ---- perl-5.28.1.orig/hints/darwin.sh > -+++ perl-5.28.1/hints/darwin.sh > +--- perl-5.30.0.orig/hints/darwin.sh > ++++ perl-5.30.0/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}'` > diff --git a/feeds/packages/lang/perl/patches/900-use-rm-force.patch > b/feeds/packages/lang/perl/patches/900-use-rm-force.patch > deleted file mode 100644 > index d219757..0000000 > --- a/feeds/packages/lang/perl/patches/900-use-rm-force.patch > +++ /dev/null > @@ -1,285 +0,0 @@ > ---- a/Makefile.SH > -+++ b/Makefile.SH > -@@ -275,6 +275,7 @@ LNS = $lns > - # NOTE: some systems don't grok "cp -f". XXX Configure test needed? > - CPS = $cp > - RMS = rm -f > -+RMS_R = rm -rf > - ranlib = $ranlib > - > - # The following are mentioned only to make metaconfig include the > -@@ -736,7 +737,7 @@ bitcount.h: generate_uudmap$(HOST_EXE_EX > - ./generate_uudmap$(HOST_EXE_EXT) $(generated_headers) > - > - generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT) > -- -@rm generate_uudmap$(HOST_EXE_EXT) > -+ @$(RMS) generate_uudmap$(HOST_EXE_EXT) > - $(LNS) $(HOST_GENERATE) generate_uudmap$(HOST_EXE_EXT) > - > - !NO!SUBS! > -@@ -876,26 +877,26 @@ mydtrace.h: $(DTRACE_H) > - define) > - $spitshell >>$Makefile <<'!NO!SUBS!' > - $(DTRACE_MINI_O): perldtrace.d $(miniperl_objs_nodt) > -- -rm -rf mpdtrace > -+ $(RMS_R) mpdtrace > - mkdir mpdtrace > - cp $(miniperl_objs_nodt) mpdtrace/ > - $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MINI_O) > $(miniperl_dtrace_objs) > - > - $(DTRACE_PERLLIB_O): perldtrace.d $(perllib_objs_nodt) > -- -rm -rf libpdtrace > -+ $(RMS_R) libpdtrace > - mkdir libpdtrace > - cp $(perllib_objs_nodt) libpdtrace/ > - $(DTRACE) -G -s perldtrace.d -o $(DTRACE_PERLLIB_O) > $(perllib_dtrace_objs) > - > - $(DTRACE_MAIN_O): perldtrace.d perlmain$(OBJ_EXT) > -- -rm -rf maindtrace > -+ $(RMS_R) maindtrace > - mkdir maindtrace > - cp perlmain$(OBJ_EXT) maindtrace/ > - $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MAIN_O) > $(perlmain_dtrace_objs) || \ > - ( $(ECHO) "No probes in perlmain$(OBJ_EXT), generating a dummy > $(DTRACE_MAIN_O)" && \ > - $(ECHO) >dtrace_main.c && > \ > - `$(CCCMD)` $(PLDLFLAGS) dtrace_main.c && > \ > -- rm -f dtrace_main.c ) > -+ $(RMS) dtrace_main.c ) > - > - !NO!SUBS! > - ;; > -@@ -906,13 +907,13 @@ $(LIBPERL): $& $(perllib_dep) $(DYNALOAD > - case "$useshrplib" in > - true) > - $spitshell >>$Makefile <<'!NO!SUBS!' > -- rm -f $@ > -+ $(RMS) $@ > - $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs) > - !NO!SUBS! > - case "$osname" in > - aix) > - $spitshell >>$Makefile <<'!NO!SUBS!' > -- rm -f libperl$(OBJ_EXT) > -+ $(RMS) libperl$(OBJ_EXT) > - mv $@ libperl$(OBJ_EXT) > - $(AR) qv $(LIBPERL) libperl$(OBJ_EXT) > - !NO!SUBS! > -@@ -921,7 +922,7 @@ $(LIBPERL): $& $(perllib_dep) $(DYNALOAD > - ;; > - *) > - $spitshell >>$Makefile <<'!NO!SUBS!' > -- rm -f $(LIBPERL) > -+ $(RMS) $(LIBPERL) > - $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER) > - @$(ranlib) $(LIBPERL) > - !NO!SUBS! > -@@ -954,7 +955,7 @@ $(MINIPERL_EXE): lib/buildcustomize.pl > - amigaos*) > - $spitshell >>$Makefile <<'!NO!SUBS!' > - lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl > -- -@rm -f miniperl.xok > -+ @$(RMS) miniperl.xok > - $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \ > - $(miniperl_objs) $(libs) > - # $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > -@@ -992,7 +993,7 @@ NAMESPACEFLAGS = -force_flat_namespace > - esac > - $spitshell >>$Makefile <<'!NO!SUBS!' > - lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl > -- -@rm -f miniperl.xok > -+ @$(RMS) miniperl.xok > - $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \ > - $(miniperl_objs) $(libs) > - $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > -@@ -1003,8 +1004,8 @@ lib/buildcustomize.pl: $& $(miniperl_obj > - if test "X$hostperl" != X; then > - $spitshell >>$Makefile <<!GROK!THIS! > - lib/buildcustomize.pl: \$& \$(miniperl_dep) write_buildcustomize.pl > -- -@rm -f miniperl.xok > -- -@rm \$(MINIPERL_EXE) > -+ @\$(RMS) miniperl.xok > -+ @\$(RMS) \$(MINIPERL_EXE) > - \$(LNS) \$(HOST_PERL) \$(MINIPERL_EXE) > - \$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > - \$(MINIPERL) -f write_buildcustomize.pl 'osname' "$osname" > -@@ -1012,7 +1013,7 @@ lib/buildcustomize.pl: \$& \$(miniperl_d > - else > - $spitshell >>$Makefile <<'!NO!SUBS!' > - lib/buildcustomize.pl: $& $(miniperl_dep) write_buildcustomize.pl > -- -@rm -f miniperl.xok > -+ @$(RMS) miniperl.xok > - $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \ > - $(miniperl_objs) $(libs) > - $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > -@@ -1025,7 +1026,7 @@ lib/buildcustomize.pl: $& $(miniperl_dep > - $spitshell >>$Makefile <<'!NO!SUBS!' > - > - $(PERL_EXE): $& $(perlmain_dep) $(LIBPERL) $(static_ext) ext.libs > $(PERLEXPORT) write_buildcustomize.pl > -- -@rm -f miniperl.xok > -+ @$(RMS) miniperl.xok > - !NO!SUBS! > - > - case $osname in > -@@ -1119,8 +1120,8 @@ pod/perl5281delta.pod: pod/perldelta.pod > - $(LNS) perldelta.pod pod/perl5281delta.pod > - > - extra.pods: $(MINIPERL_EXE) > -- -@test ! -f extra.pods || rm -f `cat extra.pods` > -- -@rm -f extra.pods > -+ -@test ! -f extra.pods || $(RMS) `cat extra.pods` > -+ @$(RMS) extra.pods > - -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ > - nx=`echo $$x | sed -e "s/README\.//"`; \ > - $(LNS) ../$$x "pod/perl"$$nx".pod" ; \ > -@@ -1340,11 +1341,11 @@ realclean: _realcleaner _mopup > - @echo "Note that '$(MAKE) realclean' does not delete config.sh or > Policy.sh" > - > - _clobber: > -- -@rm -f Cross/run-* Cross/to-* Cross/from-* Cross/mkdir > -- -rm -rf host > -- rm -f t/test_state > -- rm -f config.sh cppstdin Policy.sh extras.lst > -- rm -f $(MANIFEST_SRT) > -+ @$(RMS) Cross/run-* Cross/to-* Cross/from-* Cross/mkdir > -+ $(RMS_R) host > -+ $(RMS) t/test_state > -+ $(RMS) config.sh cppstdin Policy.sh extras.lst > -+ $(RMS) $(MANIFEST_SRT) > - > - clobber: _realcleaner _mopup _clobber > - > -@@ -1352,23 +1353,23 @@ distclean: clobber > - > - # Like distclean but also removes emacs backups and *.orig. > - veryclean: _verycleaner _mopup _clobber > -- -@rm -f Obsolete Wanted > -+ $(RMS) Obsolete Wanted > - > - # Do not 'make _mopup' directly. > - _mopup: > -- rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c > generate_uudmap$(EXE_EXT) $(generated_headers) > -+ $(RMS) *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c > generate_uudmap$(EXE_EXT) $(generated_headers) > - -rmdir .depending > -- -@test -f extra.pods && rm -f `cat extra.pods` > -- -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod > -- -rm -f perl.exp ext.libs $(generated_pods) uni.data opmini.o > perlmini.o pod/roffitall > -- -rm -f perl.export perl.dll perl.libexp perl.map perl.def > -- -rm -f *perl.xok > -- -rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump > -- -rm -f $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl > -- -rm -f config.arch config.over $(DTRACE_H) > -+ -@test -f extra.pods && $(RMS) `cat extra.pods` > -+ -@test -f vms/README_vms.pod && $(RMS) vms/README_vms.pod > -+ $(RMS) perl.exp ext.libs $(generated_pods) uni.data opmini.o > perlmini.o pod/roffitall > -+ $(RMS) perl.export perl.dll perl.libexp perl.map perl.def > -+ $(RMS) *perl.xok > -+ $(RMS) cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump > -+ $(RMS) $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl > -+ $(RMS) config.arch config.over $(DTRACE_H) > - > - _cleaner1: > -- -cd os2; rm -f Makefile > -+ -cd os2; $(RMS) Makefile > - -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN) > - -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN) > - -@if test -f $(MINIPERL_EXE) ; then \ > -@@ -1378,31 +1379,31 @@ _cleaner1: > - else \ > - sh $(CLEAN).sh ; \ > - fi > -- rm -f realclean.sh veryclean.sh > -- -rm -f `grep -v ^# mkppport.lst | grep . | sed -e 's/$$/\/ppport.h/'` > -+ $(RMS) realclean.sh veryclean.sh > -+ $(RMS) `grep -v ^# mkppport.lst | grep . | sed -e 's/$$/\/ppport.h/'` > - > - # Dear POSIX, thanks for making the default to xargs to be > - # run once if nothhing is passed in. It is such a great help. > - > - # Some systems do not support "?", so keep these files separate. > - _cleaner2: > -- -rm -f core.*perl.*.? t/core.perl.*.? .?*.c > -- rm -f core *perl.core t/core t/*perl.core core.* t/core.* > -- rm -f t/$(PERL_EXE) t/rantests > -- rm -rf t/tmp* > -- rm -rf $(addedbyconf) > -- rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old > utils/Makefile > -- rm -f $(private) > -- rm -rf $(unidatafiles) $(unidatadirs) > -- rm -rf lib/auto > -- rm -f lib/.exists lib/*/.exists lib/*/*/.exists > -- rm -f h2ph.man > -- rm -rf .config > -- rm -f preload > -- rm -f pod2htmd.tmp > -- rm -rf pod/perlfunc pod/perlipc > -+ $(RMS) core.*perl.*.? t/core.perl.*.? .?*.c > -+ $(RMS) core *perl.core t/core t/*perl.core core.* t/core.* > -+ $(RMS) t/$(PERL_EXE) t/rantests > -+ $(RMS_R) t/tmp* > -+ $(RMS_R) $(addedbyconf) > -+ $(RMS) $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old > utils/Makefile > -+ $(RMS) $(private) > -+ $(RMS_R) $(unidatafiles) $(unidatadirs) > -+ $(RMS_R) lib/auto > -+ $(RMS) lib/.exists lib/*/.exists lib/*/*/.exists > -+ $(RMS) h2ph.man > -+ $(RMS_R) .config > -+ $(RMS) preload > -+ $(RMS) pod2htmd.tmp > -+ $(RMS_R) pod/perlfunc pod/perlipc > - -rmdir ext/B/lib > -- rm -f so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR) > -+ $(RMS) so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR) > - -rmdir lib/version lib/threads lib/inc/ExtUtils lib/inc lib/encoding > - -rmdir lib/autodie/exception lib/autodie/Scope lib/autodie lib/XS > - -rmdir lib/Win32API lib/VMS lib/Unicode/Collate/Locale > -@@ -1452,11 +1453,11 @@ _realcleaner: > - _verycleaner: > - @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=veryclean > - @$(LDLIBPTH) $(MAKE) _cleaner2 > -- -rm -f *~ *.orig */*~ */*.orig */*/*~ */*/*.orig > -+ $(RMS) *~ *.orig */*~ */*.orig */*/*~ */*/*.orig > - > - .PHONY: lint > - lint: $(c) > -- rm -f *.ln > -+ $(RMS) *.ln > - lint $(lintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(c) > - > - cscopeflags = -Rb # Recursive, build-only. > -@@ -1514,7 +1515,7 @@ case "$targethost" in > - '') $spitshell >>$Makefile <<'!NO!SUBS!' > - test_prep test-prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) > $(PERL_EXE) \ > - $(dynamic_ext) $(TEST_PERL_DLL) runtests $(generated_pods) > common_build > -- cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) > -+ cd t && ($(RMS) $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) > - > - !NO!SUBS! > - ;; > -@@ -1564,7 +1565,7 @@ test_prep test-prep: test_prep_pre \$(MI > - $to config.sh > - # --- For lib/diagnostics.t with -Duseshrplib > - $to \$(PERL_EXE) > -- cd t && (rm -f \$(PERL_EXE); \$(LNS) ../\$(PERL_EXE) \$(PERL_EXE)) && > cd .. > -+ cd t && (\$(RMS) \$(PERL_EXE); \$(LNS) ../\$(PERL_EXE) \$(PERL_EXE)) > && cd .. > - $to t/\$(PERL_EXE) > - > - !GROK!THIS! > -@@ -1574,7 +1575,7 @@ esac > - $spitshell >>$Makefile <<'!NO!SUBS!' > - test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) > $(TEST_PERL_DLL) > - $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE="$(MAKE)" > LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic > -- cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) > -+ cd t && ($(RMS) $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) > - !NO!SUBS! > - > - case "$targethost" in > -@@ -1629,7 +1630,7 @@ minitest_prep: > - @echo "You may see some irrelevant test failures if you have been > unable" > - @echo "to build lib/Config.pm, or the Unicode data files." > - @echo " " > -- - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) > -+ - cd t && ($(RMS) $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) > - > - MINITEST_TESTS = base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t > opbasic/*.t op/*.t uni/*.t perf/*.t > - > diff --git > a/feeds/packages/lang/perl/patches/910-miniperl-needs-inc-dot.patch > b/feeds/packages/lang/perl/patches/910-miniperl-needs-inc-dot.patch > index 347f6f2..ce32516 100644 > --- a/feeds/packages/lang/perl/patches/910-miniperl-needs-inc-dot.patch > +++ b/feeds/packages/lang/perl/patches/910-miniperl-needs-inc-dot.patch > @@ -1,6 +1,8 @@ > ---- a/Makefile.SH > -+++ b/Makefile.SH > -@@ -333,7 +333,7 @@ PATH_SEP = $p_ > +Index: perl-5.32.0/Makefile.SH > +=================================================================== > +--- perl-5.32.0.orig/Makefile.SH > ++++ perl-5.32.0/Makefile.SH > +@@ -338,7 +338,7 @@ PATH_SEP = $p_ > # Macros to invoke a copy of miniperl during the build. Targets which > # are built using these macros should depend on \$(MINIPERL_EXE) > MINIPERL_EXE = miniperl\$(EXE_EXT) > @@ -9,8 +11,8 @@ > > # Macros to invoke sort the MANIFEST during build > MANIFEST_SRT = MANIFEST.srt > -@@ -996,7 +996,7 @@ lib/buildcustomize.pl: $& $(miniperl_obj > - @$(RMS) miniperl.xok > +@@ -1009,7 +1009,7 @@ lib/buildcustomize.pl: $& $(miniperl_obj > + -@rm -f miniperl.xok > $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \ > $(miniperl_objs) $(libs) > - $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > @@ -18,17 +20,17 @@ > $(MINIPERL) -f write_buildcustomize.pl > !NO!SUBS! > ;; > -@@ -1007,7 +1007,7 @@ lib/buildcustomize.pl: \$& \$(miniperl_d > - @\$(RMS) miniperl.xok > - @\$(RMS) \$(MINIPERL_EXE) > +@@ -1020,7 +1020,7 @@ lib/buildcustomize.pl: \$& \$(miniperl_d > + -@rm -f miniperl.xok > + -@rm \$(MINIPERL_EXE) > \$(LNS) \$(HOST_PERL) \$(MINIPERL_EXE) > - \$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > + \$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -I. > -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build > miniperl. Please run make minitest; exit 1' > \$(MINIPERL) -f write_buildcustomize.pl 'osname' "$osname" > !GROK!THIS! > else > -@@ -1016,7 +1016,7 @@ lib/buildcustomize.pl: $& $(miniperl_dep > - @$(RMS) miniperl.xok > +@@ -1029,7 +1029,7 @@ lib/buildcustomize.pl: $& $(miniperl_dep > + -@rm -f miniperl.xok > $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \ > $(miniperl_objs) $(libs) > - $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib > -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run > make minitest; exit 1' > diff --git a/feeds/packages/lang/perl/patches/920-fix-no-locale.patch > b/feeds/packages/lang/perl/patches/920-fix-no-locale.patch > deleted file mode 100644 > index 25ff285..0000000 > --- a/feeds/packages/lang/perl/patches/920-fix-no-locale.patch > +++ /dev/null > @@ -1,383 +0,0 @@ > -commit d36adde059ed1c4f7af210b4f9fc3a7bd2d7d343 > -Author: Karl Williamson <k...@cpan.org> > -Date: Wed May 23 15:32:47 2018 -0600 > - > - Fix to compile under -DNO_LOCALE > - > - Several problems with this compile option were not caught before 5.28 > - was frozen. > - > ---- a/embed.fnc > -+++ b/embed.fnc > -@@ -2793,9 +2793,11 @@ s |bool |isa_lookup |NN HV *stash|NN con > - #endif > - > - #if defined(PERL_IN_LOCALE_C) > -+# ifdef USE_LOCALE > - sn |const char*|category_name |const int category > - s |const char*|switch_category_locale_to_template|const int > switch_category|const int template_category|NULLOK const char * > template_locale > - s |void |restore_switched_locale|const int category|NULLOK const char > * const original_locale > -+# endif > - # ifdef HAS_NL_LANGINFO > - sn |const char*|my_nl_langinfo|const nl_item item|bool toggle > - # else > ---- a/embed.h > -+++ b/embed.h > -@@ -1796,16 +1796,16 @@ > - #define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d) > - # endif > - # if defined(PERL_IN_LOCALE_C) > --#define category_name S_category_name > --#define restore_switched_locale(a,b) S_restore_switched_locale(aTHX_ a,b) > - #define save_to_buffer S_save_to_buffer > --#define switch_category_locale_to_template(a,b,c) > S_switch_category_locale_to_template(aTHX_ a,b,c) > - # if defined(USE_LOCALE) > -+#define category_name S_category_name > - #define new_collate(a) S_new_collate(aTHX_ a) > - #define new_ctype(a) S_new_ctype(aTHX_ a) > - #define new_numeric(a) S_new_numeric(aTHX_ a) > -+#define restore_switched_locale(a,b) S_restore_switched_locale(aTHX_ a,b) > - #define set_numeric_radix(a) S_set_numeric_radix(aTHX_ a) > - #define stdize_locale(a) S_stdize_locale(aTHX_ a) > -+#define switch_category_locale_to_template(a,b,c) > S_switch_category_locale_to_template(aTHX_ a,b,c) > - # if defined(USE_POSIX_2008_LOCALE) > - #define emulate_setlocale S_emulate_setlocale > - # endif > ---- a/locale.c > -+++ b/locale.c > -@@ -1264,6 +1264,7 @@ S_locking_setlocale(pTHX_ > - } > - > - #endif > -+#ifdef USE_LOCALE > - > - STATIC void > - S_set_numeric_radix(pTHX_ const bool use_locale) > -@@ -1299,6 +1300,10 @@ S_set_numeric_radix(pTHX_ const bool use > - } > - > - # endif > -+#else > -+ > -+ PERL_UNUSED_ARG(use_locale); > -+ > - #endif /* USE_LOCALE_NUMERIC and can find the radix char */ > - > - } > -@@ -1481,7 +1486,6 @@ S_new_ctype(pTHX_ const char *newctype) > - > - #ifndef USE_LOCALE_CTYPE > - > -- PERL_ARGS_ASSERT_NEW_CTYPE; > - PERL_UNUSED_ARG(newctype); > - PERL_UNUSED_CONTEXT; > - > -@@ -1994,6 +1998,8 @@ S_new_collate(pTHX_ const char *newcoll) > - > - } > - > -+#endif > -+ > - #ifdef WIN32 > - > - STATIC char * > -@@ -2139,11 +2145,20 @@ Perl_setlocale(const int category, const > - { > - /* This wraps POSIX::setlocale() */ > - > -+#ifdef NO_LOCALE > -+ > -+ PERL_UNUSED_ARG(category); > -+ PERL_UNUSED_ARG(locale); > -+ > -+ return "C"; > -+ > -+#else > -+ > - const char * retval; > - const char * newlocale; > - dSAVEDERRNO; > -- DECLARATION_FOR_LC_NUMERIC_MANIPULATION; > - dTHX; > -+ DECLARATION_FOR_LC_NUMERIC_MANIPULATION; > - > - #ifdef USE_LOCALE_NUMERIC > - > -@@ -2262,6 +2277,8 @@ Perl_setlocale(const int category, const > - > - return retval; > - > -+#endif > -+ > - } > - > - PERL_STATIC_INLINE const char * > -@@ -2414,13 +2431,16 @@ S_my_nl_langinfo(const int item, bool to > - dTHX; > - const char * retval; > - > -+#ifdef USE_LOCALE_NUMERIC > -+ > - /* We only need to toggle into the underlying LC_NUMERIC locale for > these > - * two items, and only if not already there */ > - if (toggle && (( item != RADIXCHAR && item != THOUSEP) > - || PL_numeric_underlying)) > -- { > -+ > -+#endif /* No toggling needed if not using LC_NUMERIC */ > -+ > - toggle = FALSE; > -- } > - > - #if defined(HAS_NL_LANGINFO) /* nl_langinfo() is available. */ > - # if ! defined(HAS_THREAD_SAFE_NL_LANGINFO_L) \ > -@@ -2468,6 +2488,8 @@ S_my_nl_langinfo(const int item, bool to > - do_free = TRUE; > - } > - > -+# ifdef USE_LOCALE_NUMERIC > -+ > - if (toggle) { > - if (PL_underlying_numeric_obj) { > - cur = PL_underlying_numeric_obj; > -@@ -2478,6 +2500,8 @@ S_my_nl_langinfo(const int item, bool to > - } > - } > - > -+# endif > -+ > - /* We have to save it to a buffer, because the freelocale() just > below > - * can invalidate the internal one */ > - retval = save_to_buffer(nl_langinfo_l(item, cur), > -@@ -5169,9 +5193,7 @@ Perl_my_strerror(pTHX_ const int errnum) > - LOCALE_UNLOCK; > - > - # endif /* End of doesn't have strerror_l */ > --#endif /* End of does have locale messages */ > -- > --#ifdef DEBUGGING > -+# ifdef DEBUGGING > - > - if (DEBUG_Lv_TEST) { > - PerlIO_printf(Perl_debug_log, "Strerror returned; saving a copy: > '"); > -@@ -5179,7 +5201,8 @@ Perl_my_strerror(pTHX_ const int errnum) > - PerlIO_printf(Perl_debug_log, "'\n"); > - } > - > --#endif > -+# endif > -+#endif /* End of does have locale messages */ > - > - SAVEFREEPV(errstr); > - return errstr; > -@@ -5301,10 +5324,17 @@ L<C<Perl_switch_to_global_locale>|perlap > - bool > - Perl_sync_locale() > - { > -+ > -+#ifndef USE_LOCALE > -+ > -+ return TRUE; > -+ > -+#else > -+ > - const char * newlocale; > - dTHX; > - > --#ifdef USE_POSIX_2008_LOCALE > -+# ifdef USE_POSIX_2008_LOCALE > - > - bool was_in_global_locale = FALSE; > - locale_t cur_obj = uselocale((locale_t) 0); > -@@ -5316,11 +5346,11 @@ Perl_sync_locale() > - * will affect the */ > - if (cur_obj == LC_GLOBAL_LOCALE) { > - > --# ifdef HAS_QUERY_LOCALE > -+# ifdef HAS_QUERY_LOCALE > - > - do_setlocale_c(LC_ALL, setlocale(LC_ALL, NULL)); > - > --# else > -+# else > - > - unsigned int i; > - > -@@ -5330,17 +5360,17 @@ Perl_sync_locale() > - do_setlocale_r(categories[i], setlocale(categories[i], NULL)); > - } > - > --# endif > -+# endif > - > - was_in_global_locale = TRUE; > - } > - > --#else > -+# else > - > - bool was_in_global_locale = TRUE; > - > --#endif > --#ifdef USE_LOCALE_CTYPE > -+# endif > -+# ifdef USE_LOCALE_CTYPE > - > - newlocale = savepv(do_setlocale_c(LC_CTYPE, NULL)); > - DEBUG_Lv(PerlIO_printf(Perl_debug_log, > -@@ -5349,8 +5379,8 @@ Perl_sync_locale() > - new_ctype(newlocale); > - Safefree(newlocale); > - > --#endif /* USE_LOCALE_CTYPE */ > --#ifdef USE_LOCALE_COLLATE > -+# endif /* USE_LOCALE_CTYPE */ > -+# ifdef USE_LOCALE_COLLATE > - > - newlocale = savepv(do_setlocale_c(LC_COLLATE, NULL)); > - DEBUG_Lv(PerlIO_printf(Perl_debug_log, > -@@ -5359,8 +5389,8 @@ Perl_sync_locale() > - new_collate(newlocale); > - Safefree(newlocale); > - > --#endif > --#ifdef USE_LOCALE_NUMERIC > -+# endif > -+# ifdef USE_LOCALE_NUMERIC > - > - newlocale = savepv(do_setlocale_c(LC_NUMERIC, NULL)); > - DEBUG_Lv(PerlIO_printf(Perl_debug_log, > -@@ -5369,9 +5399,12 @@ Perl_sync_locale() > - new_numeric(newlocale); > - Safefree(newlocale); > - > --#endif /* USE_LOCALE_NUMERIC */ > -+# endif /* USE_LOCALE_NUMERIC */ > - > - return was_in_global_locale; > -+ > -+#endif > -+ > - } > - > - #if defined(DEBUGGING) && defined(USE_LOCALE) > ---- a/makedef.pl > -+++ b/makedef.pl > -@@ -574,6 +574,9 @@ unless ($define{USE_LOCALE_COLLATE}) { > - PL_collxfrm_mult > - Perl_sv_collxfrm > - Perl_sv_collxfrm_flags > -+ PL_strxfrm_NUL_replacement > -+ PL_strxfrm_is_behaved > -+ PL_strxfrm_max_cp > - ); > - } > - > -@@ -583,6 +586,9 @@ unless ($define{USE_LOCALE_NUMERIC}) { > - PL_numeric_name > - PL_numeric_radix_sv > - PL_numeric_standard > -+ PL_numeric_underlying > -+ PL_numeric_underlying_is_standard > -+ PL_underlying_numeric_obj > - ); > - } > - > ---- a/perl.h > -+++ b/perl.h > -@@ -5656,6 +5656,9 @@ typedef struct am_table_short AMTS; > - # define IN_LC_COMPILETIME(category) 0 > - # define IN_LC_RUNTIME(category) 0 > - # define IN_LC(category) 0 > -+# define _CHECK_AND_WARN_PROBLEMATIC_LOCALE > -+# define _CHECK_AND_OUTPUT_WIDE_LOCALE_UTF8_MSG(s, send) > -+# define _CHECK_AND_OUTPUT_WIDE_LOCALE_CP_MSG(c) > - #endif > - > - > ---- a/proto.h > -+++ b/proto.h > -@@ -4886,8 +4886,6 @@ PERL_CALLCONV SV* Perl_hfree_next_entry( > - assert(hv); assert(indexp) > - #endif > - #if defined(PERL_IN_LOCALE_C) > --STATIC const char* S_category_name(const int category); > --STATIC void S_restore_switched_locale(pTHX_ const int category, const > char * const original_locale); > - #ifndef PERL_NO_INLINE_FUNCTIONS > - PERL_STATIC_INLINE const char * S_save_to_buffer(const char * string, > char **buf, Size_t *buf_size, const Size_t offset) > - __attribute__warn_unused_result__; > -@@ -4895,17 +4893,19 @@ PERL_STATIC_INLINE const char * S_save_t > - assert(buf_size) > - #endif > - > --STATIC const char* S_switch_category_locale_to_template(pTHX_ const int > switch_category, const int template_category, const char * template_locale); > - # if defined(USE_LOCALE) > -+STATIC const char* S_category_name(const int category); > - STATIC void S_new_collate(pTHX_ const char* newcoll); > - STATIC void S_new_ctype(pTHX_ const char* newctype); > - #define PERL_ARGS_ASSERT_NEW_CTYPE \ > - assert(newctype) > - STATIC void S_new_numeric(pTHX_ const char* newnum); > -+STATIC void S_restore_switched_locale(pTHX_ const int category, const > char * const original_locale); > - STATIC void S_set_numeric_radix(pTHX_ const bool use_locale); > - STATIC char* S_stdize_locale(pTHX_ char* locs); > - #define PERL_ARGS_ASSERT_STDIZE_LOCALE \ > - assert(locs) > -+STATIC const char* S_switch_category_locale_to_template(pTHX_ const int > switch_category, const int template_category, const char * template_locale); > - # if defined(USE_POSIX_2008_LOCALE) > - STATIC const char* S_emulate_setlocale(const int category, const char* > locale, unsigned int index, const bool is_index_valid); > - # endif > ---- a/sv.c > -+++ b/sv.c > -@@ -13330,10 +13330,15 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const s > - > - SvTAINT(sv); > - > -+#ifdef USE_LOCALE_NUMERIC > -+ > - if (lc_numeric_set) { > - RESTORE_LC_NUMERIC(); /* Done outside loop, so don't have to > - save/restore each iteration. */ > - } > -+ > -+#endif > -+ > - } > - > - /* ========================================================================= > ---- a/t/lib/warnings/regexec > -+++ b/t/lib/warnings/regexec > -@@ -215,6 +215,10 @@ Use of \b{} or \B{} for non-UTF-8 locale > - Use of \b{} or \B{} for non-UTF-8 locale is wrong. Assuming a UTF-8 locale > at - line 17. > - ######## > - # NAME (?[ ]) in non-UTF-8 locale > -+require '../loc_tools.pl'; > -+unless (locales_enabled()) { > -+ print("SKIPPED\n# locales not available\n"),exit; > -+} > - eval { require POSIX; POSIX->import("locale_h") }; > - if ($@) { > - print("SKIPPED\n# no POSIX\n"),exit; > -@@ -229,14 +233,14 @@ setlocale(&POSIX::LC_CTYPE, "C"); > - ":" =~ /(?[ \: ])/; > - no warnings 'locale'; > - EXPECT > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 9. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 9. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 10. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 10. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 11. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 11. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 12. > --Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 12. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 13. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 13. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 14. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 14. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 15. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 15. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 16. > -+Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 locale at - > line 16. > - ######## > - # NAME (?[ ]) in UTF-8 locale > - require '../loc_tools.pl'; > diff --git a/feeds/packages/lang/perl/patches/998-Errno_errno.h_path.patch > b/feeds/packages/lang/perl/patches/998-Errno_errno.h_path.patch > deleted file mode 100644 > index f221dd9..0000000 > --- a/feeds/packages/lang/perl/patches/998-Errno_errno.h_path.patch > +++ /dev/null > @@ -1,11 +0,0 @@ > ---- a/ext/Errno/Errno_pm.PL > -+++ b/ext/Errno/Errno_pm.PL > -@@ -133,7 +133,7 @@ > - # Some Linuxes have weird errno.hs which generate > - # no #file or #line directives > - my ($linux_errno_h) = grep { -e $_ } map { "$_/errno.h" } > -- "$sysroot/usr/include", "$sysroot/usr/local/include", > -+ "$sysroot/usr/include", "$sysroot/usr/local/include", > "$sysroot/include", > - split / / => $Config{locincpth} or > - die "Cannot find errno.h"; > - $file{$linux_errno_h} = 1; > diff --git > a/feeds/packages/lang/perl/patches/999-fix-build-failure-against-gcc-10.patch > b/feeds/packages/lang/perl/patches/999-fix-build-failure-against-gcc-10.patch > deleted file mode 100644 > index 55d9a0e..0000000 > --- > a/feeds/packages/lang/perl/patches/999-fix-build-failure-against-gcc-10.patch > +++ /dev/null > @@ -1,103 +0,0 @@ > -From 6bd6308fcea3541e505651bf8e8127a4a03d22cd Mon Sep 17 00:00:00 2001 > -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppi...@redhat.com> > -Date: Tue, 12 Nov 2019 09:19:18 +0100 > -Subject: [PATCH] Adapt Configure to GCC version 10 > - > -I got a notice from Jeff Law <l...@redhat.com>: > - > - Your particular package fails its testsuite. This was ultimately > - tracked down to a Configure problem. The perl configure script treated > - gcc-10 as gcc-1 and turned on -fpcc-struct-return. This is an ABI > - changing flag and caused Perl to not be able to interact properly with > - the dbm libraries on the system leading to a segfault. > - > -His proposed patch corrected only this one instance of the version > -mismatch. Reading the Configure script revealed more issues. This > -patch fixes all of them I found. > - > ---- > - Configure | 14 +++++++------- > - cflags.SH | 2 +- > - 2 files changed, 8 insertions(+), 8 deletions(-) > - > -diff --git a/Configure b/Configure > -index fad1c9f2b1..706c0b64ed 100755 > ---- a/Configure > -+++ b/Configure > -@@ -4701,7 +4701,7 @@ else > - fi > - $rm -f try try.* > - case "$gccversion" in > --1*) cpp=`./loc gcc-cpp $cpp $pth` ;; > -+1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; > - esac > - case "$gccversion" in > - '') gccosandvers='' ;; > -@@ -4741,7 +4741,7 @@ esac > - # gcc 3.* complain about adding -Idirectories that they already know about, > - # so we will take those off from locincpth. > - case "$gccversion" in > --3*) > -+3.*) > - echo "main(){}">try.c > - for incdir in $locincpth; do > - warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ > -@@ -5467,13 +5467,13 @@ fi > - case "$hint" in > - default|recommended) > - case "$gccversion" in > -- 1*) dflt="$dflt -fpcc-struct-return" ;; > -+ 1.*) dflt="$dflt -fpcc-struct-return" ;; > - esac > - case "$optimize:$DEBUGGING" in > - *-g*:old) dflt="$dflt -DDEBUGGING";; > - esac > - case "$gccversion" in > -- 2*) if $test -d /etc/conf/kconfig.d && > -+ 2.*) if $test -d /etc/conf/kconfig.d && > - $contains _POSIX_VERSION $usrinc/sys/unistd.h > >/dev/null 2>&1 > - then > - # Interactive Systems (ISC) POSIX mode. > -@@ -5482,7 +5482,7 @@ default|recommended) > - ;; > - esac > - case "$gccversion" in > -- 1*) ;; > -+ 1.*) ;; > - 2.[0-8]*) ;; > - ?*) set strict-aliasing -fno-strict-aliasing > - eval $checkccflag > -@@ -5600,7 +5600,7 @@ case "$cppflags" in > - ;; > - esac > - case "$gccversion" in > --1*) cppflags="$cppflags -D__GNUC__" > -+1.*) cppflags="$cppflags -D__GNUC__" > - esac > - case "$mips_type" in > - '');; > -@@ -23103,7 +23103,7 @@ fi > - > - : add -D_FORTIFY_SOURCE if feasible and not already there > - case "$gccversion" in > --[4567].*) case "$optimize$ccflags" in > -+[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in > - *-O*) case "$ccflags$cppsymbols" in > - *_FORTIFY_SOURCE=*) # Don't add it again. > - echo "You seem to have -D_FORTIFY_SOURCE already, not > adding it." >&4 > -diff --git a/cflags.SH b/cflags.SH > -index e60742fed1..f1bcd6c38e 100755 > ---- a/cflags.SH > -+++ b/cflags.SH > -@@ -156,7 +156,7 @@ esac > - > - case "$gccversion" in > - '') ;; > --[12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this. > -+[12].*) ;; # gcc versions 1 (gasp!) and 2 are not good for this. > - Intel*) ;; # # Is that you, Intel C++? > - # > - # NOTE 1: the -std=c89 without -pedantic is a bit pointless. > --- > -2.17.1 > - > diff --git a/feeds/packages/lang/perl/perlver.mk > b/feeds/packages/lang/perl/perlver.mk > index dbec815..2218942 100644 > --- a/feeds/packages/lang/perl/perlver.mk > +++ b/feeds/packages/lang/perl/perlver.mk > @@ -1,4 +1,7 @@ > -PERL_VERSION:=5.28.1 > +PERL_VERSION:=5.30.0 > +#+PERL_VERSION:=5.30.0 > +#+PERL_VERSION:=5.30.3 > +#+PERL_VERSION:=5.32.0 > > PERL_EXPLODE:=$(subst ., ,$(PERL_VERSION)) > > -- > 2.24.3 (Apple Git-128) > > > > > > On 2020-11-24, at 9:11 PM, Philip Prindeville > > <philipp_s...@redfish-solutions.com> wrote: > > > > > > > >> On Nov 23, 2020, at 2:52 PM, Rosen Penev <ros...@gmail.com> wrote: > >> > >> 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 > > > > > > If you have a patch to update to 5.30, I’ll look at it. > > > > -Philip > > > > > >>> > >>> > >>> 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