live-bootstrap/sysa/tcc-0.9.27/tcc-musl-pass1.sh

52 lines
1.5 KiB
Bash
Raw Normal View History

2022-05-09 19:55:26 +01:00
# SPDX-FileCopyrightText: 2021-2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
2021-02-08 06:23:31 +00:00
#
# SPDX-License-Identifier: GPL-3.0-or-later
2021-02-03 00:16:39 +00:00
src_prepare() {
default
touch config.h
2021-02-03 00:16:39 +00:00
}
src_compile() {
export libdir=${PREFIX}/lib/musl
export incdir=${PREFIX}/include/musl
export bindir=${PREFIX}/bin
2021-02-03 00:16:39 +00:00
2022-05-09 19:55:26 +01:00
mkdir -p "${libdir}/tcc"
2021-02-03 00:16:39 +00:00
# We first have to recompile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting,
# but when linked with musl it is.
2022-01-14 10:53:30 +00:00
for TCC in tcc-0.9.26 ./tcc-musl; do
2021-02-03 00:16:39 +00:00
${TCC} \
-v \
-static \
2022-01-14 10:53:30 +00:00
-o tcc-musl \
2021-02-03 00:16:39 +00:00
-D TCC_TARGET_I386=1 \
2022-05-09 19:55:26 +01:00
-D CONFIG_TCCDIR=\""${libdir}/tcc"\" \
-D CONFIG_TCC_CRTPREFIX=\""${libdir}"\" \
2021-02-03 00:16:39 +00:00
-D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \
2022-05-09 19:55:26 +01:00
-D CONFIG_TCC_LIBPATHS=\""${libdir}:${libdir}/tcc"\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\""${incdir}"\" \
-D TCC_LIBGCC=\""${libdir}/libc.a"\" \
2021-02-03 00:16:39 +00:00
-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} -c -D HAVE_CONFIG_H=1 lib/libtcc1.c
2022-05-09 19:55:26 +01:00
${TCC} -ar cr "${libdir}/tcc/libtcc1.a" libtcc1.o
2021-02-03 00:16:39 +00:00
done
}
src_install() {
2021-03-20 21:20:43 +00:00
# Remove old tcc binaries
2022-05-09 19:55:26 +01:00
rm "${bindir}/tcc"
rm "${bindir}"/boot*-tcc "${bindir}/tcc-0.9.26" "${bindir}/mes-tcc"
install -D tcc-musl "${DESTDIR}${bindir}/tcc-musl"
ln -s tcc-musl "${DESTDIR}${bindir}/tcc"
2021-02-03 00:16:39 +00:00
}