Build tcc 0.9.27 immediately after tcc 0.9.26.
This commit is contained in:
parent
278b2390f7
commit
20c2d4c36e
26
parts.rst
26
parts.rst
|
@ -86,6 +86,15 @@ recompiled 5(!) times to add new features that are required for other
|
|||
features, namely ``long long`` and ``float``. Each time, the libc is
|
||||
also recompiled.
|
||||
|
||||
tinycc 0.9.27
|
||||
=============
|
||||
|
||||
Now, we compile upstream tcc 0.9.27, the latest release of tinycc, using
|
||||
the final version of tcc 0.9.26.
|
||||
|
||||
From this point onwards, until further notice, all programs are compiled
|
||||
using tinycc 0.9.27.
|
||||
|
||||
Note that now we begin to delve into the realm of old GNU software,
|
||||
using older versions compilable by tinycc. Prior to this point, all tools
|
||||
have been adapted significantly for the bootstrap; now, we will be using
|
||||
|
@ -120,7 +129,6 @@ patch 2.5.9
|
|||
|
||||
``patch`` is a very useful tool at this stage, allowing us to make
|
||||
significantly more complex edits, including just changes to lines.
|
||||
Luckily, we are able to patch ``patch`` using ``sed`` only.
|
||||
|
||||
bzip2 1.0.8
|
||||
===========
|
||||
|
@ -128,17 +136,6 @@ bzip2 1.0.8
|
|||
``bzip2`` is a compression format that compresses more than ``gzip``. It
|
||||
is preferred where we can use it, and makes source code sizes smaller.
|
||||
|
||||
tinycc 0.9.27
|
||||
=============
|
||||
|
||||
Now, we compile upstream tcc 0.9.27, the latest release of tinycc, using
|
||||
the final version of tcc 0.9.26.
|
||||
|
||||
From this point onwards, until further notice, all programs are compiled
|
||||
using tinycc 0.9.27.
|
||||
|
||||
We patch tinycc to force static linking.
|
||||
|
||||
coreutils 5.0
|
||||
=============
|
||||
|
||||
|
@ -183,6 +180,11 @@ manually modified so that it can be processed by lex from the Heirloom
|
|||
project (the required modifications are mostly syntactical, plus a few
|
||||
workarounds to avoid some flex advanced features).
|
||||
|
||||
tcc 0.9.27 (patched)
|
||||
=================
|
||||
|
||||
We recompile ``tcc`` against with some patches needed to build musl.
|
||||
|
||||
musl 1.1.24
|
||||
===========
|
||||
|
||||
|
|
|
@ -94,9 +94,10 @@ c69e0197ebc1bf9f9fc68a06d4c649c934784077058c24a484da59a153132816 pkg-config-0.2
|
|||
8a0248fbf8fe1764580698415cc3628585d4dd054ddf63040f400e18cbaef7a4 sed-4.0.9_0.tar.bz2
|
||||
b4aec2c2b107562c0d1e173259ad8c4484d1ebedb9ee24faa33a2159bdfd04b6 sed4.8-0_0.x86.xbps
|
||||
1245905d8942a10cccf21850a521db19c9a65ab35cef4c6bbb72672773851048 tar-1.34_0.tar.bz2
|
||||
42b8eabbd299737541b57b3aa362eeeb20499449901fc2a4895302ce0117080c tcc-0.9.27_0.tar.bz2
|
||||
db57c6ef39965f0562d2aefe3c06571df50ba1265446d97f2714d80518862cef tcc-0.9.27_1.tar.bz2
|
||||
e2014b844b1a79cda9142a38af0404efd242ae02f77aa286c968e4ad6ad87265 tcc-0.9.27_2.tar.bz2
|
||||
5e7fdb405574717e3759144fab500954817ab8852d2da6111d43cb9fe77f01ac tcc-0.9.27_0.tar.bz2
|
||||
42b8eabbd299737541b57b3aa362eeeb20499449901fc2a4895302ce0117080c tcc-0.9.27_1.tar.bz2
|
||||
db57c6ef39965f0562d2aefe3c06571df50ba1265446d97f2714d80518862cef tcc-0.9.27_2.tar.bz2
|
||||
e2014b844b1a79cda9142a38af0404efd242ae02f77aa286c968e4ad6ad87265 tcc-0.9.27_3.tar.bz2
|
||||
3a9ee359fe490d64225f14cddeb749dda1a24a1bb39bbc7300336b2fe4419538 texinfo6.7-0_0.x86.xbps
|
||||
bf4a6be34cda165e4c206e852ccc09387f5ae8ea7db6de2db01297cabfa1a486 util-linux-2.19.1_0.tar.bz2
|
||||
c091eb91d33ef7b7747800ee3758337f3ef9334f83e294dcddb0e492f7ea6ecf which2.21-0_0.x86.xbps
|
||||
|
|
|
@ -36,6 +36,7 @@ cp /${ARCH_DIR}/bin/M2-Mesoplanet ${bindir}/M2-Mesoplanet
|
|||
cp /${ARCH_DIR}/bin/M2-Planet ${bindir}/M2-Planet
|
||||
cp /${ARCH_DIR}/bin/mkdir ${bindir}/mkdir
|
||||
cp /${ARCH_DIR}/bin/sha256sum ${bindir}/sha256sum
|
||||
cp /${ARCH_DIR}/bin/unbz2 ${bindir}/unbz2
|
||||
cp /${ARCH_DIR}/bin/ungz ${bindir}/ungz
|
||||
cp /${ARCH_DIR}/bin/untar ${bindir}/untar
|
||||
cp /${ARCH_DIR}/bin/cp ${bindir}/cp
|
||||
|
@ -55,6 +56,7 @@ chmod 755 ${bindir}/M2-Mesoplanet
|
|||
chmod 755 ${bindir}/M2-Planet
|
||||
chmod 755 ${bindir}/mkdir
|
||||
chmod 755 ${bindir}/sha256sum
|
||||
chmod 755 ${bindir}/unbz2
|
||||
chmod 755 ${bindir}/ungz
|
||||
chmod 755 ${bindir}/untar
|
||||
chmod 755 ${bindir}/replace
|
||||
|
|
|
@ -13,7 +13,7 @@ CFLAGS = \
|
|||
-Ibuiltins \
|
||||
$(COMMON_CFLAGS)
|
||||
|
||||
LDFLAGS = -L. -Lbuiltins
|
||||
LDFLAGS = -L. -Lbuiltins -static
|
||||
LIBRARIES = libsh.a builtins/libbuiltins.a libglob.a libtilde.a
|
||||
|
||||
SHLIB_FILES = clktck getcwd getenv oslib setlinebuf strcasecmp strerror strtod \
|
||||
|
|
|
@ -1 +1 @@
|
|||
c6fdc2f9e349353cd08ce632fc1a0951826a1266d610b3c3afd60087d28be171 /usr/bin/bzip2
|
||||
c8aca3a1a941002471bf8f0901808151603e7226b68fe28b78df00353ac9a54e /usr/bin/bzip2
|
||||
|
|
|
@ -25,7 +25,7 @@ patch -Np0 -i ../../patches/mes-libc.patch
|
|||
patch -Np0 -i ../../patches/coreutils.patch
|
||||
|
||||
# Build
|
||||
make CC=tcc AR="tcc -ar" bzip2
|
||||
make CC=tcc AR="tcc -ar" LDFLAGS="-static" bzip2
|
||||
|
||||
# Install
|
||||
cp bzip2 ${prefix}/bin/bzip2
|
||||
|
|
|
@ -12,6 +12,7 @@ VERSION=5.0
|
|||
CC = tcc
|
||||
LD = tcc
|
||||
AR = tcc -ar
|
||||
LDFLAGS = -static
|
||||
|
||||
bindir=$(PREFIX)/bin
|
||||
|
||||
|
|
|
@ -5,14 +5,15 @@
|
|||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
CFLAGS = -DVERSION=\"2.5.11\"
|
||||
LDFLAGS = -static
|
||||
|
||||
all: flex
|
||||
|
||||
flex: ccl.o dfa.o ecs.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o
|
||||
tcc -o $@ $^ -ll
|
||||
tcc -o $@ $^ -ll $(LDFLAGS)
|
||||
|
||||
flex-tmp: ccl.o dfa.o ecs.o gen.o main.o misc.o nfa.o parse.o scan-tmp.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o
|
||||
tcc -o $@ $^ -ll
|
||||
tcc -o $@ $^ -ll $(LDFLAGS)
|
||||
|
||||
%.o: %.c
|
||||
tcc -g -c $(CFLAGS) -o $@ $<
|
||||
|
|
|
@ -1 +1 @@
|
|||
df921cd658fd73dc770be62ecf8adfc50761526cbeb5d0161ab68233df142fe1 /usr/bin/gzip
|
||||
363d9a67c192530a76b41be906a1a22e307f9bc057d520a319f9757cc8f147dc /usr/bin/gzip
|
||||
|
|
|
@ -5,12 +5,11 @@
|
|||
CC = tcc
|
||||
AR = tcc -ar
|
||||
|
||||
# -DSIZEOF_UNSIGNED_LONG=4 forces use of simulated arithmetic
|
||||
# This is to avoid running configure test to determine sizeof(long long)
|
||||
CPPFLAGS = -DNO_UTIME \
|
||||
-Dstrlwr=unused
|
||||
|
||||
CFLAGS = -I . -static
|
||||
CFLAGS = -I .
|
||||
LDFLAGS = -static
|
||||
|
||||
.PHONY: all
|
||||
|
||||
|
@ -20,4 +19,4 @@ GZIP_OBJ = $(addsuffix .o, $(GZIP_SRC))
|
|||
all: gzip
|
||||
|
||||
gzip: $(GZIP_OBJ)
|
||||
$(CC) $^ -o $@
|
||||
$(CC) $(LDFLAGS) $^ -o $@
|
||||
|
|
|
@ -29,7 +29,7 @@ patch -Np0 -i ../../patches/lex_remove_wchar.patch
|
|||
|
||||
# Build yacc
|
||||
cd yacc
|
||||
make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DMAXPATHLEN=100\ -DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt RANLIB=true
|
||||
make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DMAXPATHLEN=100\ -DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true
|
||||
|
||||
# Install yacc
|
||||
install yacc ${bindir}
|
||||
|
@ -37,7 +37,7 @@ install -m 644 yaccpar /
|
|||
|
||||
# Build lex
|
||||
cd ../lex
|
||||
make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt RANLIB=true
|
||||
make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true
|
||||
|
||||
# Install lex
|
||||
mkdir ${lexdir}
|
||||
|
|
|
@ -1 +1 @@
|
|||
3846fe9be3f59a16c688ba2b34e56ec7213239583f505a04aef93f00287bf404 /usr/bin/make
|
||||
8112529259780fe659ba68030d1ba1a64589ece80d0f328523395029827bd41f /usr/bin/make
|
||||
|
|
|
@ -14,7 +14,7 @@ mkdir build src
|
|||
cd build
|
||||
|
||||
# Extract
|
||||
ungz --file ${distfiles}/${pkg}.tar.gz --output ../src/${pkg}.tar
|
||||
unbz2 --file ${distfiles}/${pkg}.tar.bz2 --output ../src/${pkg}.tar
|
||||
untar --file ../src/${pkg}.tar
|
||||
rm ../src/${pkg}.tar
|
||||
cd ${pkg}
|
||||
|
@ -51,7 +51,7 @@ tcc -c -Iglob -DSTDC_HEADERS glob/fnmatch.c
|
|||
tcc -c -Iglob -DHAVE_STRDUP -DHAVE_DIRENT_H glob/glob.c
|
||||
|
||||
# Link
|
||||
tcc -o ${bindir}/make getopt.o getopt1.o ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-stub.o getloadavg.o fnmatch.o glob.o
|
||||
tcc -static -o ${bindir}/make getopt.o getopt1.o ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-stub.o getloadavg.o fnmatch.o glob.o
|
||||
|
||||
# Test
|
||||
make --version
|
||||
|
|
|
@ -1 +1 @@
|
|||
https://mirrors.kernel.org/gnu/make/make-3.80.tar.gz 64b30b41fde2ebf669e6af489883fb1df6a06ac30555a96cfa3c39ecce7267dd
|
||||
https://mirrors.kernel.org/gnu/make/make-3.80.tar.bz2 a99b39e7b04c333724f48c38fede709481cfb69fafe7e32ae4285b7fadf92f1b
|
||||
|
|
|
@ -1 +1 @@
|
|||
https://mirrors.kernel.org/gnu/make/make-3.82.tar.gz 3d991b33e604187c5881a0abc2e102d5b9776da5569640e73778f85d617242e7
|
||||
https://mirrors.kernel.org/gnu/make/make-3.82.tar.bz2 e2c1a73f179c40c71e2fe8abf8a8a0688b8499538512984da4a76958d0402966
|
||||
|
|
|
@ -11,5 +11,5 @@ LDFLAGS = -static
|
|||
.PHONY: all
|
||||
all: patch
|
||||
|
||||
patch: error.o getopt.o getopt1.o addext.o argmatch.o backupfile.o basename.o dirname.o inp.o maketime.o partime.o patch.o pch_patched.o quote.o quotearg.o quotesys.o util.o version.o xmalloc.o
|
||||
patch: error.o getopt.o getopt1.o addext.o argmatch.o backupfile.o basename.o dirname.o inp.o maketime.o partime.o patch.o pch.o quote.o quotearg.o quotesys.o util.o version.o xmalloc.o
|
||||
$(CC) $^ $(LDFLAGS) -o $@
|
||||
|
|
|
@ -1 +1 @@
|
|||
265d486bf4712f2af7c55178d990fec39a39dab9f867623a69e9b37c3d516b2f /usr/bin/patch
|
||||
d0633928b5f9892f1db3b84479088c502eeaca3d29ee7de6cd20915917a36d1f /usr/bin/patch
|
||||
|
|
|
@ -24,10 +24,6 @@ cp ../../mk/main.mk Makefile
|
|||
catm config.h
|
||||
catm patchlevel.h
|
||||
|
||||
# Patch
|
||||
cp pch.c pch_patched.c
|
||||
sed -i 841,848d pch_patched.c
|
||||
|
||||
# Build
|
||||
make -f Makefile PREFIX=${prefix}
|
||||
|
||||
|
|
|
@ -36,6 +36,12 @@ cd ..
|
|||
|
||||
libdir=${libdir}/mes
|
||||
|
||||
# tcc 0.9.27
|
||||
pkg="tcc-0.9.27"
|
||||
cd ${pkg}
|
||||
kaem --file ${pkg}.kaem
|
||||
cd ..
|
||||
|
||||
# make
|
||||
pkg="make-3.80"
|
||||
cd ${pkg}
|
||||
|
@ -72,12 +78,6 @@ cd ${pkg}
|
|||
kaem --file ${pkg}.kaem
|
||||
cd ..
|
||||
|
||||
# tcc 0.9.27
|
||||
pkg="tcc-0.9.27"
|
||||
cd ${pkg}
|
||||
kaem --file ${pkg}.kaem
|
||||
cd ..
|
||||
|
||||
# coreutils
|
||||
pkg="coreutils-5.0"
|
||||
cd ${pkg}
|
||||
|
|
|
@ -100,6 +100,9 @@ mkdir -p "${DESTDIR}" "${SRCDIR}/repo" /dev
|
|||
|
||||
build flex-2.5.11
|
||||
|
||||
# Rebuild tcc with some patches
|
||||
build tcc-0.9.27 tcc-mes-pass2.sh
|
||||
|
||||
build musl-1.1.24
|
||||
|
||||
# Rebuild tcc using musl
|
||||
|
|
|
@ -12,8 +12,8 @@ CPPFLAGS = -DENABLE_NLS=0 \
|
|||
-DSED_FEATURE_VERSION=\"4.0\" \
|
||||
-DVERSION=\"4.0.9\" \
|
||||
-DPACKAGE=\"sed\"
|
||||
CFLAGS = -I . -I lib -static
|
||||
LDFLAGS = -L. -lsed
|
||||
CFLAGS = -I . -I lib
|
||||
LDFLAGS = -L . -lsed -static
|
||||
|
||||
.PHONY: all
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
68b1a0669544cdc8855ba09c3ff6ab19c3c5543a65d8d56c6f0f15b3dc3fa787 /usr/bin/sed
|
||||
cd7cb869b26dd7c2cd0d2b53ab4ef1c2d26a2f16d24ab1f3ff7c3b138fe97469 /usr/bin/sed
|
||||
|
|
|
@ -15,8 +15,8 @@ CPPFLAGS = -DHAVE_FCNTL_H \
|
|||
-DVERSION=\"1.12\" \
|
||||
-DPACKAGE=\"tar\"
|
||||
|
||||
CFLAGS = -I . -I lib -static
|
||||
LDFLAGS = -L. -ltar
|
||||
CFLAGS = -I . -I lib
|
||||
LDFLAGS = -L . -ltar -static
|
||||
|
||||
.PHONY: all
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
e197c1b35273bafe7b47dd9ae902eb118327bb1fb16d083608e86a065ac01e42 /usr/bin/tar
|
||||
09465058a104cd100368e6ab610650ab83fe660c6f52d5e3d8b186eaefa689e7 /usr/bin/tar
|
||||
|
|
|
@ -1 +1 @@
|
|||
379d94b17a6762b5acd331cb3f216ff57f50ebd46835a1e8cc0117f4062a96dd /usr/bin/tcc
|
||||
dc73141eaa2b75fd6aaa085ef1945577b976ad1304e2875afe98ebc37a4f2f5d /usr/bin/tcc
|
||||
|
|
|
@ -11,22 +11,19 @@ set -ex
|
|||
checksum-transcriber sources
|
||||
sha256sum -c sources.SHA256SUM
|
||||
|
||||
mkdir build src
|
||||
cd build
|
||||
|
||||
# Extract
|
||||
cp ${distfiles}/${pkg}.tar.bz2 ../src/
|
||||
bunzip2 -f ../src/${pkg}.tar.bz2
|
||||
tar xf ../src/${pkg}.tar
|
||||
mkdir build src
|
||||
cd src
|
||||
unbz2 --file ${distfiles}/${pkg}.tar.bz2 --output ${pkg}.tar
|
||||
cd ..
|
||||
|
||||
cd build
|
||||
untar --file ../src/${pkg}.tar
|
||||
cd ${pkg}
|
||||
|
||||
# Create config.h
|
||||
catm config.h
|
||||
|
||||
# Patch
|
||||
patch -Np0 -i ../../patches/static-link.patch
|
||||
patch -Np0 -i ../../patches/ignore-static-inside-array.patch
|
||||
|
||||
# Compile
|
||||
tcc-0.9.26 \
|
||||
-v \
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu>
|
||||
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
touch config.h
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export libdir=${PREFIX}/lib/mes
|
||||
export incdir=${PREFIX}/include/
|
||||
export bindir=${PREFIX}/bin
|
||||
|
||||
mkdir -p "${libdir}/tcc"
|
||||
|
||||
# We have to compile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting when built with mes
|
||||
tcc-0.9.26 \
|
||||
-v \
|
||||
-static \
|
||||
-o tcc \
|
||||
-D TCC_TARGET_I386=1 \
|
||||
-D CONFIG_TCCDIR=\""${libdir}/tcc"\" \
|
||||
-D CONFIG_TCC_CRTPREFIX=\""${libdir}"\" \
|
||||
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
|
||||
-D CONFIG_TCC_LIBPATHS=\""${libdir}:${libdir}/tcc"\" \
|
||||
-D CONFIG_TCC_SYSINCLUDEPATHS=\""${incdir}"\" \
|
||||
-D TCC_LIBGCC=\""${libdir}/libc.a"\" \
|
||||
-D CONFIG_TCC_STATIC=1 \
|
||||
-D CONFIG_USE_LIBGCC=1 \
|
||||
-D TCC_VERSION=\"0.9.27\" \
|
||||
-D ONE_SOURCE=1 \
|
||||
tcc.c
|
||||
|
||||
# libtcc1.a
|
||||
tcc-0.9.26 -c -D HAVE_CONFIG_H=1 lib/libtcc1.c
|
||||
tcc-0.9.26 -ar cr "${libdir}/tcc/libtcc1.a" libtcc1.o
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# Remove old tcc binaries
|
||||
install -D tcc "${DESTDIR}${bindir}/tcc"
|
||||
}
|
Loading…
Reference in New Issue