Add perl 5.10.1
Used as an intermediate before perl 5.32.
This commit is contained in:
parent
d943b37962
commit
cd361e63f7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -66,3 +66,4 @@ de23af78fca90ce32dff2dd45b3432b2334740bb9bb7b05bf60fdbfc396ceb9c tcc-0.9.27.tar
|
||||||
c40385e142989c91989413f3c5a31282b2ffdca16b69cd3ecfde537b8a474921 flex-2.5.33.tar.gz
|
c40385e142989c91989413f3c5a31282b2ffdca16b69cd3ecfde537b8a474921 flex-2.5.33.tar.gz
|
||||||
b10d7e9e354be72aee4e4911cf19dd27b5c527d4e7200857365b5fcdeea0dffb bison-2.3.tar.bz2
|
b10d7e9e354be72aee4e4911cf19dd27b5c527d4e7200857365b5fcdeea0dffb bison-2.3.tar.bz2
|
||||||
0190f28cb155fedd22bf8558c3e8705eed9eacfb7ae29e7508d025a68eb90899 gnulib-b28236b.tar.gz
|
0190f28cb155fedd22bf8558c3e8705eed9eacfb7ae29e7508d025a68eb90899 gnulib-b28236b.tar.gz
|
||||||
|
9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826 perl-5.10.1.tar.bz2
|
||||||
|
|
|
@ -645,3 +645,11 @@ bison 2.3
|
||||||
This is an older version of bison required for the bison files in perl 5.10.1.
|
This is an older version of bison required for the bison files in perl 5.10.1.
|
||||||
We backwards-bootstrap this from 3.4.1, using 3.4.1 to compile the bison files
|
We backwards-bootstrap this from 3.4.1, using 3.4.1 to compile the bison files
|
||||||
in 2.3. This parser works sufficiently well for perl 5.10.5.
|
in 2.3. This parser works sufficiently well for perl 5.10.5.
|
||||||
|
|
||||||
|
perl 5.10.1
|
||||||
|
===========
|
||||||
|
|
||||||
|
Perl 5.10.1 is an intermediate version used before Perl 5.32. We require this
|
||||||
|
version as it adds a couple of modules into lib/ required to regenerate files in
|
||||||
|
Perl 5.32. We still use the Makefile instead of the metaconfig strategy, as
|
||||||
|
metaconfig history becomes poor more than a few years back.
|
||||||
|
|
3
sysa.py
3
sysa.py
|
@ -467,3 +467,6 @@ class SysA:
|
||||||
# bison 2.3
|
# bison 2.3
|
||||||
self.get_file(["https://mirrors.kernel.org/gnu/bison/bison-2.3.tar.bz2",
|
self.get_file(["https://mirrors.kernel.org/gnu/bison/bison-2.3.tar.bz2",
|
||||||
"https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-b28236b.tar.gz"])
|
"https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-b28236b.tar.gz"])
|
||||||
|
|
||||||
|
# perl 5.10.5
|
||||||
|
self.get_file("https://www.cpan.org/src/5.0/perl-5.10.1.tar.bz2")
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
2d311726e861cc74d1e3e0b329f49be20e1b1832f02518bea201a927ec3c4c6c /after/bin/perl
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,20 @@
|
||||||
|
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
ar='ar'
|
||||||
|
cc='gcc'
|
||||||
|
ldlibpthname='LD_LIBRARY_PATH'
|
||||||
|
libpth='/after/lib'
|
||||||
|
path_sep=':'
|
||||||
|
archname='i386'
|
||||||
|
osvers=''
|
||||||
|
byteorder='12345678'
|
||||||
|
x=''
|
||||||
|
ivsize='4'
|
||||||
|
ivtype='long'
|
||||||
|
lib_ext='.a'
|
||||||
|
_a='.a'
|
||||||
|
|
||||||
|
PERL_CONFIG_SH=true
|
|
@ -0,0 +1,137 @@
|
||||||
|
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
|
||||||
|
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
# Note: This makefile is not currently parallel-safe.
|
||||||
|
|
||||||
|
VERSION=5.10.1
|
||||||
|
PRIVLIB_EXP=$(PREFIX)/lib/perl5/$(VERSION)
|
||||||
|
|
||||||
|
CC = gcc
|
||||||
|
AR = ar
|
||||||
|
CFLAGS = -DPRIVLIB_EXP=\"$(PRIVLIB_EXP)\" \
|
||||||
|
-DPERL_CORE=1 \
|
||||||
|
-I. \
|
||||||
|
-DVERSION=\"$(VERSION)\" \
|
||||||
|
-DNO_PPPORT_H
|
||||||
|
|
||||||
|
MINICFLAGS = -DPERL_EXTERNAL_GLOB
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
LIBPERL_SRC = av scope op doop doio dump gv hv mg reentr mro perl perly pp \
|
||||||
|
pp_hot pp_ctl pp_sys regcomp regexec utf8 sv taint toke util \
|
||||||
|
deb run universal xsutils pad globals perlio perlapi numeric \
|
||||||
|
mathoms locale pp_pack pp_sort
|
||||||
|
LIBPERL_OBJ = $(addsuffix .o, $(LIBPERL_SRC))
|
||||||
|
|
||||||
|
EXTENSIONS = File/Glob Digest/SHA Data/Dumper Cwd
|
||||||
|
EXTENSIONS_A := $(foreach f,$(EXTENSIONS), lib/auto/$f/$(notdir $f).a)
|
||||||
|
EXTENSIONS_PM = ext/File/Glob/Glob.pm ext/Digest/SHA/lib/Digest/SHA.pm \
|
||||||
|
ext/Data/Dumper/Dumper.pm
|
||||||
|
|
||||||
|
all: perl
|
||||||
|
|
||||||
|
# miniperl
|
||||||
|
|
||||||
|
opmini.c: op.c
|
||||||
|
cp op.c opmini.c
|
||||||
|
|
||||||
|
perlmini.c: perl.c
|
||||||
|
cp perl.c perlmini.c
|
||||||
|
|
||||||
|
generate_uudmap: generate_uudmap.o
|
||||||
|
$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
uudmap.h: generate_uudmap
|
||||||
|
./generate_uudmap > $@
|
||||||
|
|
||||||
|
git_version.h: lib/Config_git.pl
|
||||||
|
|
||||||
|
lib/Config_git.pl:
|
||||||
|
perl make_patchnum.pl
|
||||||
|
|
||||||
|
globals.o: uudmap.h
|
||||||
|
|
||||||
|
perl.o: git_version.h
|
||||||
|
|
||||||
|
perlmini.o: git_version.h
|
||||||
|
|
||||||
|
libperl.a: $(LIBPERL_OBJ)
|
||||||
|
$(AR) cr $@ $^
|
||||||
|
|
||||||
|
miniperl: miniperlmain.o opmini.o perlmini.o libperl.a
|
||||||
|
$(CC) $(CFLAGS) $(MINICFLAGS) $^ $(LDFLAGS) -o $@
|
||||||
|
# An extremely dodgy hack
|
||||||
|
sed -i 's/va\.a\.a/v5.8.1/' miniperl
|
||||||
|
chmod +x miniperl
|
||||||
|
|
||||||
|
# full perl
|
||||||
|
|
||||||
|
lib/re.pm:
|
||||||
|
cp ext/re/re.pm lib/re.pm
|
||||||
|
|
||||||
|
lib/Config.pm: config.sh miniperl configpm lib/re.pm
|
||||||
|
./miniperl -Ilib configpm
|
||||||
|
|
||||||
|
writemain: writemain.SH
|
||||||
|
spitshell=cat eunicefix=true ./$<
|
||||||
|
|
||||||
|
perlmain.c: writemain $(EXTENSIONS_A)
|
||||||
|
./writemain $(EXTENSIONS_A) > $@
|
||||||
|
|
||||||
|
perl: perlmain.o libperl.a $(EXTENSIONS_A) lib/File/Glob.pm lib/Digest/SHA.pm \
|
||||||
|
lib/DynaLoader.pm lib/XSLoader.pm lib/Data/Dumper.pm
|
||||||
|
$(CC) $(CFLAGS) perlmain.o libperl.a $(EXTENSIONS_A) -o $@
|
||||||
|
# An extremely dodgy hack (v2)
|
||||||
|
sed -i 's/va\.a\.a/v5.8.1/' perl
|
||||||
|
chmod +x perl
|
||||||
|
|
||||||
|
# extensions
|
||||||
|
|
||||||
|
autosplit.pl: lib/re.pm lib/Config.pm miniperl
|
||||||
|
echo 'use AutoSplit; autosplit_lib_modules(@ARGV)' > $@
|
||||||
|
|
||||||
|
ext/DynaLoader/DynaLoader.pm: miniperl lib/Config.pm
|
||||||
|
./miniperl -Ilib ext/DynaLoader/DynaLoader_pm.PL DynaLoader.pm
|
||||||
|
mv DynaLoader.pm $@
|
||||||
|
|
||||||
|
ext/DynaLoader/XSLoader.pm: miniperl lib/Config.pm
|
||||||
|
./miniperl -Ilib ext/DynaLoader/XSLoader_pm.PL XSLoader.pm
|
||||||
|
mv XSLoader.pm $@
|
||||||
|
|
||||||
|
lib/DynaLoader.pm: ext/DynaLoader/DynaLoader.pm
|
||||||
|
install $< $@
|
||||||
|
|
||||||
|
lib/XSLoader.pm: ext/DynaLoader/XSLoader.pm
|
||||||
|
install $< $@
|
||||||
|
|
||||||
|
lib/File/Glob.pm: ext/File/Glob/Glob.pm
|
||||||
|
install $< $@
|
||||||
|
|
||||||
|
lib/Digest/SHA.pm: ext/Digest/SHA/lib/Digest/SHA.pm
|
||||||
|
install $< $@
|
||||||
|
|
||||||
|
lib/Data:
|
||||||
|
mkdir $@
|
||||||
|
|
||||||
|
lib/Data/Dumper.pm: ext/Data/Dumper/Dumper.pm lib/Data
|
||||||
|
install $< $@
|
||||||
|
|
||||||
|
define build_rule
|
||||||
|
lib/auto/$1/$(notdir $1).a: ext/$1/$(notdir $1).o $(patsubst %.c,%.o,$(wildcard ext/$1/*.c)) $(EXTENSIONS_PM)
|
||||||
|
mkdir -p lib/auto/$1
|
||||||
|
$(AR) cr lib/auto/$1/$(notdir $1).a ext/$1/$(notdir $1).o $(patsubst %.c,%.o,$(wildcard ext/$1/*.c))
|
||||||
|
|
||||||
|
ext/$1/$(notdir $1).c: miniperl lib/Config.pm
|
||||||
|
cd ext/$1; \
|
||||||
|
$(CURDIR)/miniperl -I$(CURDIR)/lib Makefile.PL; \
|
||||||
|
$(CURDIR)/miniperl -I$(CURDIR)/lib $(CURDIR)/lib/ExtUtils/xsubpp -noprototypes -typemap $(CURDIR)/lib/ExtUtils/typemap `echo $(notdir $1) | sed 's/.*-//'`.xs > $(notdir $1).c
|
||||||
|
endef
|
||||||
|
$(foreach f,$(EXTENSIONS),$(eval $(call build_rule,$f)))
|
||||||
|
|
||||||
|
install: all
|
||||||
|
install perl "$(DESTDIR)$(PREFIX)/bin/perl"
|
||||||
|
mkdir -p "$(DESTDIR)$(PRIVLIB_EXP)"
|
||||||
|
cp -r lib/* "$(DESTDIR)$(PRIVLIB_EXP)"
|
|
@ -0,0 +1,124 @@
|
||||||
|
SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: Artistic-1.0-Perl
|
||||||
|
|
||||||
|
There are a bunch of aliases that perl's build system somehow makes but
|
||||||
|
I'm not sure how to appropriately do them, so just patch them.
|
||||||
|
|
||||||
|
--- lib/ExtUtils/Constant.pm 2021-04-20 21:06:43.272663878 +1000
|
||||||
|
+++ lib/ExtUtils/Constant.pm 2021-04-20 21:07:11.116805426 +1000
|
||||||
|
@@ -253,11 +253,11 @@
|
||||||
|
switch (type) {
|
||||||
|
case PERL_constant_NOTFOUND:
|
||||||
|
sv =
|
||||||
|
- sv_2mortal(newSVpvf("%s is not a valid $package_sprintf_safe macro", s));
|
||||||
|
+ sv_2mortal(Perl_newSVpvf("%s is not a valid $package_sprintf_safe macro", s));
|
||||||
|
PUSHs(sv);
|
||||||
|
break;
|
||||||
|
case PERL_constant_NOTDEF:
|
||||||
|
- sv = sv_2mortal(newSVpvf(
|
||||||
|
+ sv = sv_2mortal(Perl_newSVpvf(
|
||||||
|
"Your vendor has not defined $package_sprintf_safe macro %s, used",
|
||||||
|
s));
|
||||||
|
PUSHs(sv);
|
||||||
|
@@ -288,7 +288,7 @@
|
||||||
|
}
|
||||||
|
$xs .= << "EOT";
|
||||||
|
default:
|
||||||
|
- sv = sv_2mortal(newSVpvf(
|
||||||
|
+ sv = sv_2mortal(Perl_newSVpvf(
|
||||||
|
"Unexpected return type %d while processing $package_sprintf_safe macro %s, used",
|
||||||
|
type, s));
|
||||||
|
PUSHs(sv);
|
||||||
|
--- ext/Data-Dumper/Dumper.xs 2009-06-11 02:42:23.000000000 +1000
|
||||||
|
+++ ext/Data-Dumper/Dumper.xs 2021-04-21 18:19:32.548468344 +1000
|
||||||
|
@@ -312,7 +312,7 @@
|
||||||
|
{
|
||||||
|
dSP; ENTER; SAVETMPS; PUSHMARK(sp);
|
||||||
|
XPUSHs(val); PUTBACK;
|
||||||
|
- i = perl_call_method(SvPVX_const(freezer), G_EVAL|G_VOID);
|
||||||
|
+ i = call_method(SvPVX_const(freezer), G_EVAL|G_VOID);
|
||||||
|
SPAGAIN;
|
||||||
|
if (SvTRUE(ERRSV))
|
||||||
|
warn("WARNING(Freezer method call failed): %"SVf"", ERRSV);
|
||||||
|
@@ -515,7 +515,7 @@
|
||||||
|
|
||||||
|
SV * const ixsv = newSViv(0);
|
||||||
|
/* allowing for a 24 char wide array index */
|
||||||
|
- New(0, iname, namelen+28, char);
|
||||||
|
+ Newx(iname, namelen+28, char);
|
||||||
|
(void)strcpy(iname, name);
|
||||||
|
inamelen = namelen;
|
||||||
|
if (name[0] == '@') {
|
||||||
|
@@ -660,7 +660,7 @@
|
||||||
|
if (sortkeys != &PL_sv_yes) {
|
||||||
|
dSP; ENTER; SAVETMPS; PUSHMARK(sp);
|
||||||
|
XPUSHs(sv_2mortal(newRV_inc(ival))); PUTBACK;
|
||||||
|
- i = perl_call_sv(sortkeys, G_SCALAR | G_EVAL);
|
||||||
|
+ i = call_sv(sortkeys, G_SCALAR | G_EVAL);
|
||||||
|
SPAGAIN;
|
||||||
|
if (i) {
|
||||||
|
sv = POPs;
|
||||||
|
@@ -745,7 +745,7 @@
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
nticks = num_q(key, klen);
|
||||||
|
- New(0, nkey_buffer, klen+nticks+3, char);
|
||||||
|
+ Newx(nkey_buffer, klen+nticks+3, char);
|
||||||
|
nkey = nkey_buffer;
|
||||||
|
nkey[0] = '\'';
|
||||||
|
if (nticks)
|
||||||
|
@@ -772,7 +772,7 @@
|
||||||
|
char *extra;
|
||||||
|
I32 elen = 0;
|
||||||
|
newapad = newSVsv(apad);
|
||||||
|
- New(0, extra, klen+4+1, char);
|
||||||
|
+ Newx(extra, klen+4+1, char);
|
||||||
|
while (elen < (klen+4))
|
||||||
|
extra[elen++] = ' ';
|
||||||
|
extra[elen] = '\0';
|
||||||
|
@@ -829,7 +829,7 @@
|
||||||
|
char *npack;
|
||||||
|
char *npack_buffer = NULL;
|
||||||
|
|
||||||
|
- New(0, npack_buffer, plen+pticks+1, char);
|
||||||
|
+ Newx(npack_buffer, plen+pticks+1, char);
|
||||||
|
npack = npack_buffer;
|
||||||
|
plen += esc_q(npack, realpack, plen);
|
||||||
|
npack[plen] = '\0';
|
||||||
|
@@ -903,7 +903,7 @@
|
||||||
|
if (len > 10) {
|
||||||
|
/* Looks like we're on a 64 bit system. Make it a string so that
|
||||||
|
if a 32 bit system reads the number it will cope better. */
|
||||||
|
- sv_catpvf(retval, "'%s'", tmpbuf);
|
||||||
|
+ Perl_sv_catpvf(retval, "'%s'", tmpbuf);
|
||||||
|
} else
|
||||||
|
sv_catpvn(retval, tmpbuf, len);
|
||||||
|
}
|
||||||
|
@@ -1036,7 +1036,7 @@
|
||||||
|
|
||||||
|
if (!SvROK(href)) { /* call new to get an object first */
|
||||||
|
if (items < 2)
|
||||||
|
- croak("Usage: Data::Dumper::Dumpxs(PACKAGE, VAL_ARY_REF, [NAME_ARY_REF])");
|
||||||
|
+ Perl_croak_nocontext("Usage: Data::Dumper::Dumpxs(PACKAGE, VAL_ARY_REF, [NAME_ARY_REF])");
|
||||||
|
|
||||||
|
ENTER;
|
||||||
|
SAVETMPS;
|
||||||
|
@@ -1047,7 +1047,7 @@
|
||||||
|
if (items >= 3)
|
||||||
|
XPUSHs(sv_2mortal(newSVsv(ST(2))));
|
||||||
|
PUTBACK;
|
||||||
|
- i = perl_call_method("new", G_SCALAR);
|
||||||
|
+ i = call_method("new", G_SCALAR);
|
||||||
|
SPAGAIN;
|
||||||
|
if (i)
|
||||||
|
href = newSVsv(POPs);
|
||||||
|
@@ -1234,7 +1234,7 @@
|
||||||
|
SvREFCNT_dec(valstr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- croak("Call to new() method failed to return HASH ref");
|
||||||
|
+ Perl_croak_nocontext("Call to new() method failed to return HASH ref");
|
||||||
|
if (gimme == G_SCALAR)
|
||||||
|
XPUSHs(sv_2mortal(retval));
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default_src_prepare
|
||||||
|
|
||||||
|
# Regenerate bison files
|
||||||
|
# perly.c looks suspiciously like it is from bison, but is not; from the
|
||||||
|
# below script:
|
||||||
|
# Note that perly.c is *not* regenerated - this is now a static file which
|
||||||
|
# is not dependent on perly.y any more.
|
||||||
|
perl regen_perly.pl -b bison-2.3
|
||||||
|
# Remove the source file so make works.
|
||||||
|
rm perly.y
|
||||||
|
|
||||||
|
# Regenerate other prebuilt header files
|
||||||
|
# Taken from headers of regen scripts
|
||||||
|
rm lib/warnings.pm warnings.h regnodes.h reentr.h reentr.c overload.h \
|
||||||
|
overload.c lib/overload/numbers.pm opcode.h opnames.h pp_proto.h \
|
||||||
|
pp.sym keywords.h embed.h embedvar.h global.sym perlapi.c perlapi.h \
|
||||||
|
proto.h
|
||||||
|
perl regen.pl
|
||||||
|
|
||||||
|
mkdir -p ext/File ext/Digest ext/Data
|
||||||
|
mv ext/File-Glob ext/File/Glob
|
||||||
|
mv ext/Digest-SHA ext/Digest/SHA
|
||||||
|
mv ext/Data-Dumper ext/Data/Dumper
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
# Remove old perl
|
||||||
|
rm -rf "${PREFIX}"/lib/perl5/
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
|
@ -38,6 +38,8 @@ build flex-2.5.33
|
||||||
|
|
||||||
build bison-2.3
|
build bison-2.3
|
||||||
|
|
||||||
|
build perl-5.10.1
|
||||||
|
|
||||||
if [ "$FORCE_TIMESTAMPS" = True ] ; then
|
if [ "$FORCE_TIMESTAMPS" = True ] ; then
|
||||||
echo 'Forcing all files timestamps to be 0 unix time.'
|
echo 'Forcing all files timestamps to be 0 unix time.'
|
||||||
canonicalise_all_files_timestamp
|
canonicalise_all_files_timestamp
|
||||||
|
|
Loading…
Reference in New Issue