From 4276dfee1d53003d4b8b878296f687a489e3d539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Thu, 18 Feb 2021 23:19:09 +0000 Subject: [PATCH] Perl 5.005_03 --- README.md | 2 + SHA256SUMS.sources | 1 + rootfs.sh | 3 + sysa/perl-5.003/mk/main.mk | 2 +- sysa/perl5.004_05/mk/main.mk | 2 +- sysa/perl5.004_05/perl5.004_05.sh | 3 - sysa/perl5.005_03/checksums | 1 + sysa/perl5.005_03/files/config.h | 98 +++++++++++++++++++++++++++++++ sysa/perl5.005_03/mk/main.mk | 20 +++++++ sysa/perl5.005_03/perl5.005_03.sh | 30 ++++++++++ sysa/run.sh | 3 + 11 files changed, 160 insertions(+), 5 deletions(-) create mode 100644 sysa/perl5.005_03/checksums create mode 100644 sysa/perl5.005_03/files/config.h create mode 100644 sysa/perl5.005_03/mk/main.mk create mode 100755 sysa/perl5.005_03/perl5.005_03.sh diff --git a/README.md b/README.md index 16b243d..ee51ec0 100644 --- a/README.md +++ b/README.md @@ -361,3 +361,5 @@ instead of `./Configure` script. #### Part 31: perl 5.004_05 Yet another version of perl. + +#### Part 32: perl 5.005_03 diff --git a/SHA256SUMS.sources b/SHA256SUMS.sources index 7d709c0..2eed9c1 100644 --- a/SHA256SUMS.sources +++ b/SHA256SUMS.sources @@ -16,5 +16,6 @@ ecb5c6469d732bcf01d6ec1afe9e64f1668caba5bfdb103c28d7f537ba3cdb8a patch-2.5.9.ta 1ae43c8d2983404b9eec61c96e3ffa27e7b07e08215c95c015a4ab0095373ef3 perl-5.000.tar.gz 9fa29beb2fc4a3c373829fc051830796de301f32a719d0b52a400d1719bbd7b1 perl-5.003.tar.gz 1184478b298978b164a383ed5661e3a117c48ab97d6d0ab7ef614cdbe918b9eb perl5.004_05.tar.gz +93f41cd87ab8ee83391cfa39a63b076adeb7c3501d2efa31b98d0ef037122bd1 perl5.005_03.tar.gz c6c37e888b136ccefab903c51149f4b7bd659d69d4aea21245f61053a57aa60a tar-1.12.tar.gz 404a8d72427a559c074e581bf8f7d5a73283faf249cd3faf6dc1c6faf97d07c7 sha-2-61555d.tar.gz diff --git a/rootfs.sh b/rootfs.sh index c9e8660..21cd482 100755 --- a/rootfs.sh +++ b/rootfs.sh @@ -199,6 +199,9 @@ get_file https://github.com/Perl/perl5/archive/perl-5.003.tar.gz # perl 5.004_05 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 + # General cleanup find tmp -name .git -exec rm -rf \; diff --git a/sysa/perl-5.003/mk/main.mk b/sysa/perl-5.003/mk/main.mk index 332aabd..0588931 100644 --- a/sysa/perl-5.003/mk/main.mk +++ b/sysa/perl-5.003/mk/main.mk @@ -17,4 +17,4 @@ miniperl: $(MINIPERL_OBJ) install: all install miniperl $(PREFIX)/bin/perl mkdir -p $(PREFIX)/lib/perl5/5.003 - mv lib/* $(PREFIX)/lib/perl5/5.003/ + cp -r lib/* $(PREFIX)/lib/perl5/5.003/ diff --git a/sysa/perl5.004_05/mk/main.mk b/sysa/perl5.004_05/mk/main.mk index 75fb848..6825b19 100644 --- a/sysa/perl5.004_05/mk/main.mk +++ b/sysa/perl5.004_05/mk/main.mk @@ -17,4 +17,4 @@ miniperl: $(MINIPERL_OBJ) install: all install miniperl $(PREFIX)/bin/perl mkdir -p $(PREFIX)/lib/perl5/5.004_05 - mv lib/* $(PREFIX)/lib/perl5/5.004_05/ + cp -R lib/* $(PREFIX)/lib/perl5/5.004_05/ diff --git a/sysa/perl5.004_05/perl5.004_05.sh b/sysa/perl5.004_05/perl5.004_05.sh index 11029e2..1ffc7e8 100755 --- a/sysa/perl5.004_05/perl5.004_05.sh +++ b/sysa/perl5.004_05/perl5.004_05.sh @@ -11,9 +11,6 @@ src_prepare() { mv perly.tab.c perly.c mv perly.tab.h perly.h - # tcc messes up floats, which breaks version detection - sed -i '/require/d' embed.pl - # Regenerate other prebuilt header files for file in embed keywords opcode; do rm ${file}.h diff --git a/sysa/perl5.005_03/checksums b/sysa/perl5.005_03/checksums new file mode 100644 index 0000000..093832d --- /dev/null +++ b/sysa/perl5.005_03/checksums @@ -0,0 +1 @@ +b00ec19d8e9ce7930630bb47387d7f408f72fe00b056d6aea953a8bfb50d82ff /after/bin/perl diff --git a/sysa/perl5.005_03/files/config.h b/sysa/perl5.005_03/files/config.h new file mode 100644 index 0000000..1ae2006 --- /dev/null +++ b/sysa/perl5.005_03/files/config.h @@ -0,0 +1,98 @@ +// SPDX-FileCopyrightText: 2021 Andrius Štikonas + +// 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_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 RANDBITS 31 + +#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" +#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 + +#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" + +#define PRIVLIB_EXP "/after/lib/perl5/5.005_03" + +#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" + diff --git a/sysa/perl5.005_03/mk/main.mk b/sysa/perl5.005_03/mk/main.mk new file mode 100644 index 0000000..3356c59 --- /dev/null +++ b/sysa/perl5.005_03/mk/main.mk @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas + +# SPDX-License-Identifier: GPL-3.0-or-later + +CC = tcc + +.PHONY: all + +MINIPERL_SRC = av deb doio doop dump globals gv hv mg miniperlmain op perl perlio perly pp pp_ctl pp_hot pp_sys regcomp regexec run scope sv taint toke universal util +MINIPERL_OBJ = $(addsuffix .o, $(MINIPERL_SRC)) + +all: miniperl + +miniperl: $(MINIPERL_OBJ) + $(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@ + +install: all + install miniperl $(PREFIX)/bin/perl + mkdir -p $(PREFIX)/lib/perl5/5.005_03 + cp -R lib/* $(PREFIX)/lib/perl5/5.005_03/ diff --git a/sysa/perl5.005_03/perl5.005_03.sh b/sysa/perl5.005_03/perl5.005_03.sh new file mode 100755 index 0000000..ce06873 --- /dev/null +++ b/sysa/perl5.005_03/perl5.005_03.sh @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# +# SPDX-License-Identifier: GPL-3.0-or-later + +src_prepare() { + default_src_prepare + + # Regenerate bison files + 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 byterun.h byterun.c + perl bytecode.pl +} + +src_install() { + default_src_install + + # Remove old perl + rm -rf "${PREFIX}"/lib/perl5/5.004_05 +} diff --git a/sysa/run.sh b/sysa/run.sh index a11e39b..7014609 100755 --- a/sysa/run.sh +++ b/sysa/run.sh @@ -59,4 +59,7 @@ build perl-5.003 # Part 34 build perl5.004_05 +# Part 35 +build perl5.005_03 + echo "Bootstrapping completed."