Fix gcc not to use pregen files.

Fixes #78
This commit is contained in:
Andrius Štikonas 2021-03-30 20:59:42 +01:00
parent a185b83f80
commit f59909142d
6 changed files with 74 additions and 55 deletions

View File

@ -536,6 +536,10 @@ compiler for most projects related to GNU and the Linux kernel.
Only the C frontend is built at this stage.
At this stage we are not yet able to regenerate top-level ``Makefile.in``
which needs GNU Autogen and hence Guile. Luckily, building GCC without
top-level ``Makefile`` is fairly easy.
musl 1.2.2
==========

View File

@ -1 +1 @@
42d8035dd5e893be2dabcaee3064e13b9d993efae5383bedececa9a7ef172ff0 /after/bin/bash
bf782a82ac8ce393d2a028cec337a4f9428f8ab93d2ae11b026dcc8a027b80a7 /after/bin/bash

View File

@ -1,14 +1,13 @@
6ca1ff5a1dd835e2378a8d827c5ec8a68121c7b5c719ab56f71f9d717b8e007e /after/bin/cpp
236bb12f3c0b6fb28dee325dfcfcf1cd87dc057aaac307e76a7124c4d071c349 /after/bin/gcc
236bb12f3c0b6fb28dee325dfcfcf1cd87dc057aaac307e76a7124c4d071c349 /after/bin/i386-unknown-linux-gnu-gcc
236bb12f3c0b6fb28dee325dfcfcf1cd87dc057aaac307e76a7124c4d071c349 /after/bin/i386-unknown-linux-gnu-gcc-4.0.4
903b1dae32b217048b1a35a934836496027e6947b77f5711cb8714cd5241dda0 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/cc1
711689a618e34a0cff2c6061e554f9a2f9d447a7623bd46ba11c2eb816932883 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/collect2
a3fbed284b1efaf6fccfc81eddd9bad8c4cf07673b16e8885ad6f31a1569c9b4 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/install-tools/fixincl
f2c7e7bf5377e10927c5d243eaa9eb3ae9bed7aab393621831673b368ebae00f /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbegin.o
c76e19409c9344a10213e0abb18481aae6416342db4971fb99a116a91fb164da /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginS.o
f2c7e7bf5377e10927c5d243eaa9eb3ae9bed7aab393621831673b368ebae00f /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginT.o
dab0ba7d7f68cc03646b367619c3be4ebf16c39fb217a105019d5162df42947f /after/bin/cpp
773e7a59b9b0c6e7695ac77ebf566c547959d3991743f09bd0c6467e64e4a7c7 /after/bin/gcc
773e7a59b9b0c6e7695ac77ebf566c547959d3991743f09bd0c6467e64e4a7c7 /after/bin/i386-unknown-linux-gnu-gcc
773e7a59b9b0c6e7695ac77ebf566c547959d3991743f09bd0c6467e64e4a7c7 /after/bin/i386-unknown-linux-gnu-gcc-4.0.4
df9f52d38e64514296964c5fbcd8ce2aba011d6ff47f15b6fd9158aed193dbcf /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/cc1
9b8dc5d577de150dcb61150086481d2205aed982344cf059d51c8dc88c5ba9a4 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/collect2
de4566c661258fa626ea7076e6c57af95c01d0786bcdadb12af23852cc421a2a /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbegin.o
c7eea5e845fe2ee5538704d59c6e777d4f72b7100e78d5f86f8d95d96ab2ec20 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginS.o
de4566c661258fa626ea7076e6c57af95c01d0786bcdadb12af23852cc421a2a /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginT.o
342276a6ad25e3d064bba9c5d50fbeaae15d0aefdc5c72b1e796366189af1b1b /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtend.o
2bf001e0be96ea7c53adf35b1bf0a677eee02008e3aee6c30166d100b720687c /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtendS.o
e3c2b3754058829d79b42a4968f3a3dda6e289b51b4b3580f4ccbc64ff473a26 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcc.a
fc093c2bcf6473237c1187fc93b60e5d353bf710958d7151283c96074af0a899 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcov.a
7b416e87b8e5998c042b64b4b87499720895c17deeffc0bc1b79f6fac502d51b /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcc.a
efc9783c7386519ef7d5bfe7fadf16d4b6b717deb18dd04e09d810354f015942 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcov.a

View File

@ -1,14 +1,13 @@
88dbe31603504b89ced21ceb5d7205f20c9473a6df814bb80f2b28ddebc977c5 /after/bin/cpp
2b909307bd6b0bf7fed4363122948561da6518acfd74b809c3ab7ede2da8fcfb /after/bin/gcc
2b909307bd6b0bf7fed4363122948561da6518acfd74b809c3ab7ede2da8fcfb /after/bin/i386-unknown-linux-gnu-gcc
2b909307bd6b0bf7fed4363122948561da6518acfd74b809c3ab7ede2da8fcfb /after/bin/i386-unknown-linux-gnu-gcc-4.0.4
7fda283cdddc9ecb96aa64eee6ba70a95b5547e47537934ec3a98a7f9846b563 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/cc1
289a9da62408356b8d21472497fd26b9021e27b9bc7834b969d11791eba4fd58 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/collect2
8c8c0c1781c361a5e585811c3712ae8d052c6d2bb1d18328c50329b74e712144 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/install-tools/fixincl
282f0f0d79a9f1559f700db14f8a360194e1e8ab522ecad91aa29d10ea1bfb1a /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbegin.o
693e3dc5d35724960692e3e81280bad9e21de68f3884e52b86e874d20baf8151 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginS.o
282f0f0d79a9f1559f700db14f8a360194e1e8ab522ecad91aa29d10ea1bfb1a /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginT.o
49099736ba74bd065e8767ed1ae5e9eaff93993ada8a9106ea38fb1d46fb9c65 /after/bin/cpp
87f9d3a527ebcd88f23a3fbdc32ed383c76dc234a128cf8ff31ebc7b75e7a4b3 /after/bin/gcc
87f9d3a527ebcd88f23a3fbdc32ed383c76dc234a128cf8ff31ebc7b75e7a4b3 /after/bin/i386-unknown-linux-gnu-gcc
87f9d3a527ebcd88f23a3fbdc32ed383c76dc234a128cf8ff31ebc7b75e7a4b3 /after/bin/i386-unknown-linux-gnu-gcc-4.0.4
f853f77a4f040eee8cda44d5b96e751e58874ac814118848994785df2e9f7490 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/cc1
29c521d36c748731b4fa2afca2a9d94565da795312d51cf5f1032f3397537514 /after/libexec/gcc/i386-unknown-linux-gnu/4.0.4/collect2
a07db1648128987f10debb1730b4456c0423aab5bd93d68e4f2b47447a11c5d9 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbegin.o
20a3bbbd5cd59b91660628d416d489437463b651fa15b5ea5f026b45c9e35b65 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginS.o
a07db1648128987f10debb1730b4456c0423aab5bd93d68e4f2b47447a11c5d9 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtbeginT.o
342276a6ad25e3d064bba9c5d50fbeaae15d0aefdc5c72b1e796366189af1b1b /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtend.o
2bf001e0be96ea7c53adf35b1bf0a677eee02008e3aee6c30166d100b720687c /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/crtendS.o
e1789e68464c8c04e77180f8a5dc5855aa6b488a8b11526c77f70d89453122e4 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcc.a
3332fba4918963e196c701e00cc68ea28c5b00b4da0bd01ace911f0441c4932c /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcov.a
5d3c8a9b80e4e34dfb70a56d6e23a05e01d2ecdbf60232a1b053462d4a98e99e /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcc.a
f8c3b07e0f98b7f34ac0960d98f3b59ee0f47c42e72c529d10d66dccdc9b5d46 /after/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/libgcov.a

View File

@ -14,8 +14,10 @@ src_prepare() {
# Needed for musl
sed -i 's/struct siginfo/siginfo_t/' gcc/config/i386/linux-unwind.h
rm configure
autoconf-2.13
# Regenerating top level Makefile requires GNU Autogen and hence Guile,
# but it is not essential for building gcc.
rm configure Makefile.in fixincludes/fixincl.x
for dir in intl libcpp; do
cd $dir
rm aclocal.m4
@ -61,14 +63,20 @@ src_prepare() {
src_configure() {
mkdir build
cd build
CC=tcc CFLAGS="-D HAVE_ALLOCA_H" ../configure \
--prefix="${PREFIX}" \
--libdir="${PREFIX}"/lib/musl \
--build=i386-unknown-linux-gnu \
--host=i386-unknown-linux-gnu \
--disable-shared \
--disable-nls \
--disable-libmudflap
for dir in libiberty libcpp gcc; do
mkdir $dir
cd $dir
CC=tcc CFLAGS="-D HAVE_ALLOCA_H" ../../$dir/configure \
--prefix="${PREFIX}" \
--libdir="${PREFIX}"/lib/musl \
--build=i386-unknown-linux-gnu \
--target=i386-unknown-linux-gnu \
--host=i386-unknown-linux-gnu \
--disable-shared \
--program-transform-name=
cd ..
done
cd ..
sed -i 's/C_alloca/alloca/g' libiberty/alloca.c
@ -76,13 +84,13 @@ src_configure() {
}
src_compile() {
mkdir -p /usr/
ln -sf "${PREFIX}"/include /usr/include
ln -sf /usr/include/limits.h /usr/include/sys/limits.h
make -C build LIBGCC2_INCLUDES=-I"${PREFIX}/include/musl"
ln -s . build/build-i386-unknown-linux-gnu
for dir in libiberty libcpp gcc; do
make -C build/$dir LIBGCC2_INCLUDES=-I"${PREFIX}/include/musl" STMP_FIXINC=
done
}
src_install() {
make -C build install
mkdir -p "${PREFIX}/lib/musl/gcc/i386-unknown-linux-gnu/4.0.4/install-tools/include"
make -C build/gcc install STMP_FIXINC=
}

View File

@ -13,8 +13,10 @@ src_prepare() {
# Needed for musl
sed -i 's/struct siginfo/siginfo_t/' gcc/config/i386/linux-unwind.h
rm configure
autoconf-2.13
# Regenerating top level Makefile requires GNU Autogen and hence Guile,
# but it is not essential for building gcc.
rm configure Makefile.in fixincludes/fixincl.x
for dir in intl libcpp; do
cd $dir
rm aclocal.m4
@ -60,23 +62,30 @@ src_prepare() {
src_configure() {
mkdir build
cd build
../configure \
--prefix="${PREFIX}" \
--libdir="${PREFIX}"/lib/musl \
--build=i386-unknown-linux-gnu \
--host=i386-unknown-linux-gnu \
--disable-shared \
--disable-nls \
--disable-libmudflap
for dir in libiberty libcpp gcc; do
mkdir $dir
cd $dir
../../$dir/configure \
--prefix="${PREFIX}" \
--libdir="${PREFIX}"/lib/musl \
--build=i386-unknown-linux-gnu \
--target=i386-unknown-linux-gnu \
--host=i386-unknown-linux-gnu \
--disable-shared \
--program-transform-name=
cd ..
done
cd ..
}
src_compile() {
mkdir -p /usr/
ln -sf "${PREFIX}"/include /usr/include
make -C build LIBGCC2_INCLUDES=-I"${PREFIX}/include/musl"
ln -s . build/build-i386-unknown-linux-gnu
for dir in libiberty libcpp gcc; do
make -C build/$dir LIBGCC2_INCLUDES=-I"${PREFIX}/include/musl" STMP_FIXINC=
done
}
src_install() {
make -C build install
make -C build/gcc install STMP_FIXINC=
}