Merge pull request #48 from stikonas/perl

Add Perl 5.6.2.
This commit is contained in:
fosslinux 2021-02-26 08:56:53 +11:00 committed by GitHub
commit 68d7ebc0bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 201 additions and 1 deletions

View File

@ -396,3 +396,7 @@ Yet another version of perl; the last version buildable with 5.003.
More perl! This is the last version buildable with 5.004. It also introduces the
new pregenerated files `regnodes.h` and `byterun.{h,c}`.
#### Part 37: perl 5.6.2
Even more perl. 5.6.2 is the last version buildable with 5.004.

View File

@ -17,5 +17,6 @@ ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a patch-2.5.9.ta
9fa29beb2fc4a3c373829fc051830796de301f32a719d0b52a400d1719bbd7b1 perl-5.003.tar.gz
1184478b298978b164a383ed5661e3a117c48ab97d6d0ab7ef614cdbe918b9eb perl5.004_05.tar.gz
93f41cd87ab8ee83391cfa39a63b076adeb7c3501d2efa31b98d0ef037122bd1 perl5.005_03.tar.gz
c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a tar-1.12.tar.gz
a5e66f6ebf701b0567f569f57cae82abf5ce57af70a2b45ae71323b61f49134e perl-5.6.2.tar.gz
404a8d72427a559c074e581bf8f7d5a73283faf249cd3faf6dc1c6faf97d07c7 sha-2-61555d.tar.gz
c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a tar-1.12.tar.gz

View File

@ -202,6 +202,9 @@ get_file https://www.cpan.org/src/5.0/perl5.004_05.tar.gz
# perl 5.005_03
get_file https://www.cpan.org/src/5.0/perl5.005_03.tar.gz
# perl 5.6.2
get_file https://www.cpan.org/src/5.0/perl-5.6.2.tar.gz
# General cleanup
find tmp -name .git -exec rm -rf \;

View File

@ -0,0 +1 @@
108b81c3a43b6c2aeac9fb575225e2dd76b199ef17cec458f1f6a3a95bf20ecf /after/bin/perl

View File

@ -0,0 +1,129 @@
// SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
// SPDX-License-Identifier: GPL-3.0-or-later
#define MEM_ALIGNBYTES 8
#define BIN "/after/bin"
#define BYTEORDER 0x4321
#define CPPSTDIN "tcc -E"
#define CPPMINUS "-"
#define HAS_ALARM
#define HAS_FORK
#define HAS_MKDIR
#define HAS_PAUSE
#define HAS_READDIR
#define HAS_RMDIR
#define HAS_STRERROR
#define HAS_SYS_ERRLIST
#define Strerror(e) strerror(e)
#define HAS_SYSCALL
#define HAS_TIMES
#define HAS_VPRINTF
#define Gid_t gid_t
#define I_DIRENT
#define Direntry_t struct dirent
#define I_DLFCN
#define I_FCNTL
#define I_GRP
#define I_LIMITS
#define I_MATH
#define I_NETINET_IN
#define I_PWD
#define I_STDDEF
#define I_STDLIB
#define I_STRING
#define I_SYS_DIR
#define I_SYS_IOCTL
#define I_SYS_PARAM
#define I_SYS_SELECT
#define I_SYS_STAT
#define I_SYS_TIMES
#define I_TERMIOS
#define I_TIME
#define I_UNISTD
#define I_UTIME
#define I_STDARG
#define INTSIZE 4
#define Off_t off_t
#define PRIVLIB "/after/lib/perl5"
#define _(args) args
#define SCRIPTDIR "/after/bin"
#define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","BUS","FPE","KILL","USR1","SEGV","USR2","PIPE","ALRM","TERM","STKFLT","CHLD","CONT","STOP","TSTP","TTIN","TTOU","URG","XCPU","XFSZ","VTALRM","PROF","WINCH", "IO", "POLL", "PWR", "SYS", "UNUSED", 0
#define SIG_NUM 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0
#define Size_t size_t
#define STDCHAR char
#define Uid_t uid_t
#define LOC_SED "/after/bin/sed"
#define ARCHLIB "/after/lib/perl5/"
#define CAT2(a,b) a##b
#define Gconvert(x,n,t,b) gcvt((x),(n),(b))
#define Time_t time_t
#define SSize_t ssize_t
#define Sigjmp_buf sigjmp_buf
#define Sigsetjmp(buf,save_mask) setjmp(buf)
#define Siglongjmp(buf,retval) longjmp(buf,retval)
#define Signal_t void
#define OSNAME "linux"
#undef __DATE__ /* want reproducible build */
#define Malloc_t void *
#define Free_t void
#define SH_PATH "/bin/sh"
#define ARCHNAME "i386-linux"
#define BIN_EXP "/after/bin"
#define NVSIZE 8 /* sizeof(double) */
#define UVSIZE 4 /* sizeof(long) on i386 */
#define IVSIZE 4
#define IVTYPE long
#define UVTYPE unsigned long
#define NVTYPE double
#define I8TYPE char
#define U8TYPE unsigned char
#define I16TYPE short
#define U16TYPE unsigned short
#define I32TYPE int
#define U32TYPE unsigned int
#define STDCHAR char
#define IVdf "ld"
#define UVuf "lu"
#define UVof "lo"
#define UVxf "lx"
#define UVXf "lX"
#define NVef "e"
#define NVff "f"
#define NVgf "g"
#define Mode_t mode_t
#define Off_t off_t
#define Pid_t pid_t
#define RANDBITS 48
#define seedDrand01(x) srand48((long)x)
#define Drand01() drand48()
#define Rand_seed_t long
#define Sock_size_t unsigned

View File

@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-License-Identifier: GPL-3.0-or-later
VERSION=5.6.2
PRIVLIB_EXP=$(PREFIX)/lib/perl5/$(VERSION)
CC = tcc
CFLAGS = -DPRIVLIB_EXP=\"$(PRIVLIB_EXP)\" \
-DPERL_EXTERNAL_GLOB \
-DPERL_CORE=1
.PHONY: all
MINIPERL_SRC = av deb doio doop dump globals gv hv mg miniperlmain op perl perlapi perlio perly pp pp_ctl pp_hot pp_sys regcomp regexec run scope sv taint toke universal utf8 util xsutils
MINIPERL_OBJ = $(addsuffix .o, $(MINIPERL_SRC))
all: miniperl
miniperl: $(MINIPERL_OBJ)
$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
install: all
install miniperl $(PREFIX)/bin/perl
mkdir -p "$(PRIVLIB_EXP)"
cp -r lib/* "$(PRIVLIB_EXP)"

33
sysa/perl-5.6.2/perl-5.6.2.sh Executable file
View File

@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default_src_prepare
# Regenerate bison files
sed -i '/yydestruct/d' perly.y
rm perly.c perly.h
bison -d perly.y
mv perly.tab.c perly.c
mv perly.tab.h perly.h
# Regenerate other prebuilt header files
for file in embed keywords opcode; do
rm ${file}.h
perl ${file}.pl
done
rm regnodes.h
perl regcomp.pl
rm ext/ByteLoader/byterun.h ext/ByteLoader/byterun.c
perl bytecode.pl
rm warnings.h lib/warnings.pm
perl warnings.pl
}
src_install() {
# Remove old perl
rm -rf "${PREFIX}"/lib/perl5/
default_src_install
}

View File

@ -65,4 +65,7 @@ build perl5.004_05
# Part 36
build perl5.005_03
# Part 37
build perl-5.6.2
echo "Bootstrapping completed."