Merge pull request #496 from fosslinux/gcc-fixes

GCC fixes: Updates & Regenerations
This commit is contained in:
Samuel Tyler 2025-02-07 16:48:02 +11:00 committed by GitHub
commit dfb3ae04e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 854 additions and 252 deletions

View file

@ -1335,7 +1335,7 @@ mistaken plugin loading support). Other modern features are added, including;
* 64-bit linking on 32-bit x86
* the modern, rewritten gold linker used by some distributions
gcc 13.1.0
gcc 13.3.0
==========
This is the most recent version of GCC. With this version of GCC, the

View file

@ -24,7 +24,7 @@ c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6
7db49c9b024821d82d15afc0db2b1af8d89700101495a9cbadf471813ba5fa55 bc-1.07.1_0.tar.bz2
5d777f774df7fb0153aa73b501c7fe1a57f152a3aa2c86e83a04e68b5df4f696 binutils-2.30_0.tar.bz2
43bed356bf52b3d52ef62b63adbeb3bbd1e763e93d0ffd3edb5c75354842f171 binutils-2.41_0.tar.bz2
8107e22996cc9112f1b50848570afdd44283521a296a1dc6d54d35823fd1ecc4 binutils-2.41_1.tar.bz2
7808e5290bf530cd7068e91642def059bc3341b628630d1fb2600590477187db binutils-2.41_1.tar.bz2
fa047f6dd4595be1bf8a9cc6ff492357f02fefa3bf1ad965c8c50c8e79a52478 bison-2.3_0.tar.bz2
81554c867db75101422797d227dd76c8a12c87246393126542ff92a0b97db6c1 bison-3.4.1_0.tar.bz2
f7437edc081071cc3ecd3384abf4c63f33183858b8cae6b4ac3105c66f88b3b6 bison-3.4.1_1.tar.bz2
@ -39,7 +39,7 @@ aef1f09e2abd39cca760f186569a0e71bc11a20a79f06ee5802f788dd6a3ff58 curl-8.5.0_0.t
6e0d69e6bfbaf9520036b9ee362764ab791a0526df7a6639d9cc9de32d0becea curl-8.5.0_1.tar.bz2
fedf6ffbd37b14e9a0c94cd3063c6ac5d38f13be8a3399093ec112f9cd9d0816 dhcpcd-10.0.1_0.tar.bz2
0462b6a04899a98d60c33f9d16fa00e2e6b7c21cc80ccebc8358fc08105467a2 diffutils-2.7_0.tar.bz2
58997e5fa5f657692b3b6d11e6f09516a3b25ddf49d0cccb6067bba6d277f59b diffutils-3.10_0.tar.bz2
fc850c6f141717ccece106592f6a8edc0cae0d5e9f0968f111455d00072541b6 diffutils-3.10_0.tar.bz2
283a66575b4d7c835f6ebabb38cfb5d7d62032f832ad949f067a85b8a378c36c dist-3.5-236_0.tar.bz2
c30d11b798f3a6198f339ec98a88f8971c6ec13d5dcb10cb7af780752e97509f e2fsprogs-1.45.7_0.tar.bz2
139af6684f275e362e5c247bb830e85c888aa6c263622c1f3e967b2f71ff38f4 ed-1.4_0.tar.bz2
@ -49,21 +49,21 @@ eec07e0d710ed3dd8d0ba6a1ec6ca9f1fa3a611bbb225195435679175317bf90 findutils-4.2.
9cb13b1e60c2c860e2f6fb11efffa74646290ef8461fbc43ed6e5ccfc3bd673f flex-2.5.33_0.tar.bz2
7bd44ec26cad78e5bb146e5ab709d489b6589da6049e319a4f438603f10eda4b flex-2.6.4_0.tar.bz2
c925739472260498342ba6dc3263da937abf5237e7e9102622bf5657ec98094a gawk-3.0.4_0.tar.bz2
ba9fb5190645c150c413c79f8a48fbc1a1c3e0e2442782b47a124d35b1e38980 gawk-5.3.0_0.tar.bz2
97e255a5852cb5fbd16e632249787f80e6bfd75cc5b31f8dfc8c81660a0801e1 gawk-5.3.0_0.tar.bz2
ab8b5b92de4780b085d8bc7e98ee72ad5ba9c07b26690c579c559b5cc21817eb gc-8.0.4_0.tar.bz2
6308c8d1568905cf58b3cd7b64e15a14656405f9676ec47ce3e9eecce3c857bc gcc-10.4.0_0.tar.bz2
2537802994ec434e543d3736210a1d4c1e704bb2cc849375beeceacf794e26b2 gcc-13.1.0_0.tar.bz2
27bb77077559b6c0f8dd7b8790ac48f70410ecc8816b5c493988ad5556da65e2 gcc-4.0.4_0.tar.bz2
a1e805b206be1ca7fad2440fc60eff52f3693849ff73c339da84d010f81dd5cc gcc-4.0.4_1.tar.bz2
5958cf5a547134bea11fda1eee7f7fdb3435f8e55c8339238ecd1b139ca96599 gcc-4.7.4_0.tar.bz2
5917ef350e9ca3d854bde04e8570df413bd8c2f824e01caf7dc97452483c5103 gcc-10.5.0_0.tar.bz2
073c34853a2a7d221028d77029105d91a81fc82c2000bc171880270ad69fb4ea gcc-13.3.0_0.tar.bz2
64052d4b2ad1ac405455767b3ac09b77c31d90c38b1d69bfc0922902bd943a2d gcc-4.0.4_0.tar.bz2
da88bb5900f33c1caca9180784e47367e64ec9f258182a147d84168540de1450 gcc-4.0.4_1.tar.bz2
cbbc193d4bef0b9ac9e4ba0111009297da66bc65de12c9f07b14d3f0d3be9688 gcc-4.7.4_0.tar.bz2
6b5236819c5963d33dffa022142df70644dbc1960adcb4456017112cf9b79f5b gettext-0.21_0.tar.bz2
309282ba840f80b5e10897b1221f3ff3329b9e05b982c788d03652f411974524 gmp-6.2.1_0.tar.bz2
e89c5a38c49f2beb959e51732ff29bcf3652945e4f1c2bf70d39310c22b0c58f gperf-3.1_0.tar.bz2
c1989fc2855dbb0350c4e5b677028306614a9f4b5cb6c01fd459c5e1abf592b9 grep-2.4_0.tar.bz2
bfeb5cad6720cd6ff629095f562fc7b60e2b352d248c4f8bdc9de3db1ed09b17 grep-3.7_0.tar.bz2
7fae0496943df52f3e6a78692c4aee432d15c77d46626d58fbd7c0ae847e4934 grub-2.06_0.tar.bz2
3f08414ffc65cebc8a635b0339f95c7ea0259d33cb53676293c3b28b0453f8c1 grub-2.06_0.tar.bz2
fc97b59e6b3a99ef457890a00ddee4a9ad44316e41cb746cf6cac1d193e480b7 guile-3.0.9_0.tar.bz2
d128aaa294acfafa1aa4345609cd687aa7669ee187643959138f8bf83ca17416 gzip-1.13_0.tar.bz2
4b784b57ed27e22750cf79492bb65bf68bd8211d942eeb74490981effa41196b gzip-1.13_0.tar.bz2
d0cb00116d742d4216af4a7ed47f20408640229909a497c184aed3d4fcd4f30a heirloom-devtools-070527_0.tar.bz2
8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2
f59be8342ecf28d94e07c862de2d04dc46a7f9415e5256360d0e2ea6d1e3b252 kbd-1.15_0.tar.bz2
@ -71,15 +71,15 @@ eaac2e938932926864c3866eb60b05c710137f20bb08b6fbdcba752d729f5b68 kexec-linux-1.
fefc818a2044aa979724e4d7cec93901eb4eab0cc1a535043e652e7b5b9f14c6 kexec-tools-2.0.22_0.tar.bz2
5d29cdd1d9857ceaaefe84b3239b35a2a4cf56ae0c3a41b5f6bd9f7f4887186c libarchive-3.5.2_0.tar.bz2
36550df491767bb24d2ccab304ce70a3b4956e7c0c0e0c343d922fd57cdafbdd libatomic_ops-7.6.10_0.tar.bz2
2763617d04715894bab400ebf8bc1ee7ea6196e9c02cc22eef2648f183c450b7 libbsd-0.11.8_0.tar.bz2
ac35de4d4effb2d7936e87087cd80daaa227b38dd683bcb8698be8ec459f3130 libbsd-0.11.8_0.tar.bz2
ed1fe10b0c917ad6a0be05d0187c056cf3ff379e15e51b6b094f708b63ce63de libffi-3.3_0.tar.bz2
0f6aefeb587b3d14d8ea73d7750f946a23d3e59a76a0ee5cdcdcc8132bccf73d libmd-1.1.0_0.tar.bz2
6c13f6dd789b7de1d59d4773f00510afa49d7641f6e6d04f54a47c165972650b libmd-1.1.0_0.tar.bz2
daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2
4d2f23b557f897a6d649f714c2ac928a056cd55dbef8e23bb881349e4406a1fc libtool-2.4.7_0.tar.bz2
dd04cf8fb30f5dcf0348489e873587fec51b8f9a8b3911a669f8a0a2c6bbad99 libunistring-0.9.10_0.tar.bz2
557c703442cebd2767ea8364341d1c661cf76e277e97d0063f5a546e5f2c4adb linux-4.14.341-openela_0.tar.bz2
c97644d0db5b3de127b048683afee6d31453441d97ba5dea71df5838b13542a4 linux-headers-4.14.341-openela_0.tar.bz2
0ec8f440b9a89a712460eeda60f09e52020338fe01f6513fd90d12ac384d91d2 m4-1.4.19_0.tar.bz2
a5d2f0cd1beb89593ac616f89bb89a551bc9c1aa3aba07e0ea99785ff12a0003 m4-1.4.19_0.tar.bz2
d4dff784cac3d58d0cedfd9a51b52ff100ad8654e10a7c8c41590351f48f57d6 m4-1.4.7_0.tar.bz2
caaf55115075a101bbc35b65eda1e93d37758dd6abc51365b46643db0a974c40 make-3.82_0.tar.bz2
d9581e8f03f133fb2eafdc4bdfa0f527a5ce50209420d00809388aa0f05b90c7 make-4.2.1_0.tar.bz2
@ -92,7 +92,7 @@ d58d85c4be26d90f111f273929a4998d05294fe5aa37c4842d5aecaa593e6079 musl-1.1.24_3.
f2850bbc8959598c5cf9caadeac2fa006fbdd46eb7a9cd2875bd54d4c112863f musl-1.2.5_0.tar.bz2
5de7f9b1988762555e5def5b83c187d76cee2936ef30d061a30305a776d9d3ed musl-1.2.5_1.tar.bz2
178d8ebcba95a60dbac6f4a78ce8babcd3e114560ba14a6e5c89ce8409d43087 musl-1.2.5_2.tar.bz2
5767025883f6dc9ccfeb966ecdb714948d00b0850626d4a754ac7a0172098818 opendoas-6.8.2_0.tar.bz2
5cf08386656a5c27af0adc965a3bd419ddd87edb924fe11cbd5036587c3c490d opendoas-6.8.2_0.tar.bz2
f00f063a754baf1e00d5d0a76680a74232f5f34d754a17c8fcd853d86cf9c1c6 openssl-3.0.13_0.tar.bz2
9bfdc11a94ac4ee2e51ebdf099fd129ad9935fb5a5d81871ca6f8ec1c2ac0eb7 patch-2.7.6_0.tar.bz2
44456a0635dc56351d34bf9701487e562c2c903393db2cc99f5c3a6d2ecf52d4 perl-5.000_0.tar.bz2
@ -116,7 +116,7 @@ e28cbec8738e87a691bfc44e61ca6c1bd43a3babca0c796a35650eafac425aaf python-3.4.10_
81f624fbbadc814c0e6b41157794de8450816324caf1f89bd2ef3fa7db5b96a2 python-3.8.16_0.tar.bz2
18d517fa1195aa82e3e0eb7f261eb3addb9a43492040b16be04571639781577e sed-4.0.9_0.tar.bz2
de71facdd9679fbbb0152c40aa3ce88339ce87920508f7781d2b75ccd6acfe67 sed-4.8_0.tar.bz2
8bdcac89807cc6db6ead178a209fdcbc23116775a354095f360d2a96a5f2d3c9 shadow-4.14.3_0.tar.bz2
a7ab1ac6b066e266954a547823157df741d37d619a493d5672c07a9e1e685d67 shadow-4.14.3_0.tar.bz2
85b683509dc21db7bf4133a3c44cc8aeb88d6d0095de3a5b4aa83bf508d28a2c tar-1.34_0.tar.bz2
b3675b0d72677f30559386e1756e85a0a5065d738bb6206457a5a8d51b8bd0ce tcc-0.9.27_0.tar.bz2
e2c9ea82a1ebf2d5d4c937fa837ddb6fc6835395cf03f3207df40c96b6cafcd8 tcc-0.9.27_1.tar.bz2

View file

@ -1,100 +0,0 @@
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Remove vendored zlib
rm -r zlib/
# Regen gperf file (because GCC's make rules suck)
rm gcc/cp/cfns.h
# (taken directly from gcc/cp/Make-lang.in)
gperf -o -C -E -k '1-6,$' -j1 -D -N 'libc_name_p' -L C++ \
gcc/cp/cfns.gperf --output-file gcc/cp/cfns.h
# Regenerate autogen stuff
autogen Makefile.def
pushd fixincludes
./genfixes
popd
# Regenerate autotools
# configure
find . -name configure | sed 's:/configure::' | while read d; do
pushd "${d}"
AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 autoreconf-2.69 -fiv
popd
done
# Because GCC is stupid, copy depcomp back in
cp "${PREFIX}/share/automake-1.15/depcomp" .
# Makefile.in only
BACK="${PWD}"
find . -type d \
-exec test -e "{}/Makefile.am" -a ! -e "{}/configure" \; \
-print | while read d; do
d="$(readlink -f "${d}")"
cd "${d}"
# Find the appropriate configure script for automake
while [ ! -e configure ]; do
cd ..
done
automake-1.15 -fai "${d}/Makefile"
cd "${BACK}"
done
# Remove bison generated files
rm intl/plural.c
# Remove flex generated files
rm gcc/gengtype-lex.c
# Remove unused generated files
rm -r libgfortran/generated
# intl/ Makefile is a bit broken because of new gettext
sed -i 's/@USE_INCLUDED_LIBINTL@/no/' intl/Makefile.in
# Regenerate crc table in libiberty/crc32.c
pushd libiberty
sed -n -e '38,65p' crc32.c > crcgen.c
gcc -o crcgen crcgen.c
head -n 69 crc32.c > crc32.c.new
./crcgen >> crc32.c.new
tail -n +138 crc32.c >> crc32.c.new
mv crc32.c.new crc32.c
popd
# Remove docs/translation
find . -name "*.gmo" -delete
find . -name "*.info" -delete
}
src_configure() {
mkdir build
cd build
# std=gnu11 is the default for GCC10, so that is what it makes most
# sense to build with. (default, std=gnu90 is too outdated).
# For this GCC, we only build one stage, as extra is superfluous,
# since we build GCC 12 straight after.
CFLAGS="-std=gnu11" \
LDFLAGS="-static" \
../configure \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--build=i386-unknown-linux-musl \
--target=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
--disable-bootstrap \
--enable-static \
--program-transform-name= \
--enable-languages=c,c++ \
--with-system-zlib \
--disable-sjlj-exceptions \
--disable-multilib \
--enable-threads=posix \
--disable-libsanitizer \
--disable-libssp
}

View file

@ -1 +0,0 @@
http://mirrors.kernel.org/gnu/gcc/gcc-10.4.0/gcc-10.4.0.tar.xz c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1

View file

@ -0,0 +1 @@
../../gcc-4.7.4/files/decDPD.h.preamble

View file

@ -0,0 +1 @@
../../gcc-4.7.4/files/decDPD_generate.c

193
steps/gcc-10.5.0/pass1.sh Executable file
View file

@ -0,0 +1,193 @@
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Remove unused pregenerated files
rm libsanitizer/include/sanitizer/netbsd_syscall_hooks.h \
libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
rm -r libgfortran/generated
rm gcc/testsuite/go.test/test/bench/go1/jsondata_test.go \
gcc/testsuite/go.test/test/bench/go1/parserdata_test.go \
gcc/testsuite/go.test/test/bench/shootout/mandelbrot.txt
rm gcc/testsuite/go.test/test/cmplxdivide1.go
rm gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c \
gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c \
gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c \
gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c
rm gcc/config/rs6000/rs6000-tables.opt \
gcc/config/h8300/mova.md \
gcc/config/aarch64/aarch64-tune.md \
gcc/config/nios2/ldstwm.md \
gcc/config/riscv/t-elf-multilib \
gcc/config/riscv/t-linux-multilib \
gcc/config/arm/arm-tune.md \
gcc/config/arm/arm-tables.opt \
gcc/config/arm/ldmstm.md \
gcc/config/arc/t-multilib \
gcc/config/m68k/m68k-tables.opt \
gcc/config/c6x/c6x-mult.md \
gcc/config/c6x/c6x-tables.opt \
gcc/config/c6x/c6x-sched.md \
gcc/config/csky/csky_tables.opt \
gcc/config/mips/mips-tables.opt
rm libphobos/src/std/internal/unicode_tables.d
rm libgo/go/math/bits/example_test.go \
libgo/go/math/bits/bits_tables.go \
libgo/go/math/big/accuracy_string.go \
libgo/go/math/big/roundingmode_string.go \
libgo/go/strconv/isprint.go \
libgo/go/sort/zfuncversion.go \
libgo/go/golang.org/x/net/route/zsys_*.go \
libgo/go/golang.org/x/net/idna/*.go \
libgo/go/golang.org/x/text/unicode/bidi/t*.go \
libgo/go/golang.org/x/text/unicode/norm/tables*.go \
libgo/go/internal/syscall/windows/registry/zsyscall_windows.go \
libgo/go/internal/syscall/windows/zsyscall_windows.go \
libgo/go/encoding/gob/*_helpers.go \
libgo/go/index/suffixarray/sais2.go \
libgo/go/net/http/*_bundle.go \
libgo/go/runtime/sizeclasses.go \
libgo/go/runtime/fastlog2table.go \
libgo/go/html/template/*_string.go \
libgo/go/crypto/x509/root_darwin_armx.go \
libgo/go/crypto/md5/md5block.go \
libgo/go/time/zoneinfo_abbrs_windows.go \
libgo/go/unicode/tables.go \
libgo/go/regexp/syntax/doc.go \
libgo/go/regexp/syntax/op_string.go \
libgo/go/regexp/syntax/perl_groups.go \
libgo/go/image/internal/imageutil/impl.go \
libgo/go/image/color/palette/palette.go \
libgo/go/cmd/internal/objabi/*_string.go \
libgo/go/debug/dwarf/*_string.go \
libgo/go/debug/macho/reloctype_string.go
rm libgo/go/internal/xcoff/testdata/bigar* \
libgo/go/internal/xcoff/testdata/gcc* \
libgo/go/internal/trace/testdata/* \
libgo/go/compress/bzip2/testdata/*.bin \
libgo/go/go/internal/gccgoimporter/testdata/v1reflect.gox \
libgo/go/go/internal/gccgoimporter/testdata/time.gox \
libgo/go/go/internal/gccgoimporter/testdata/unicode.gox \
libgo/go/go/internal/gccgoimporter/testdata/escapeinfo.gox \
libgo/go/go/internal/gccgoimporter/testdata/libimportsar.a \
libgo/go/go/internal/gcimporter/testdata/versions/*.a
rm -r libgo/go/compress/flate/testdata \
libgo/go/runtime/pprof/testdata \
libgo/go/debug/*/testdata
find fixincludes/tests -name "*.h" -delete
# Partially generated unused files
rm libgcc/config/sh/lib1funcs.S \
libgcc/config/sh/lib1funcs-4-300.S \
libgcc/config/arc/lib1funcs.S
# Remove vendored zlib
rm -r zlib/
# Regen gperf file (because GCC's make rules suck)
rm gcc/cp/cfns.h
# (taken directly from gcc/cp/Make-lang.in)
gperf -o -C -E -k '1-6,$' -j1 -D -N 'libc_name_p' -L C++ \
gcc/cp/cfns.gperf --output-file gcc/cp/cfns.h
# Regenerate autogen stuff
rm Makefile.in fixincludes/fixincl.x
autogen Makefile.def
pushd fixincludes
./genfixes
popd
# Regenerate autotools
# configure
find . -name configure | sed 's:/configure::' | while read d; do
pushd "${d}"
AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 autoreconf-2.69 -fiv
popd
done
# Because GCC is stupid, copy depcomp back in
cp "${PREFIX}/share/automake-1.15/depcomp" .
# Makefile.in only
BACK="${PWD}"
find . -type d \
-exec test -e "{}/Makefile.am" -a ! -e "{}/configure" \; \
-print | while read d; do
d="$(readlink -f "${d}")"
cd "${d}"
# Find the appropriate configure script for automake
while [ ! -e configure ]; do
cd ..
done
automake-1.15 -fai "${d}/Makefile"
cd "${BACK}"
done
# Remove bison generated files
rm intl/plural.c
# Remove flex generated files
rm gcc/gengtype-lex.c
# intl/ Makefile is a bit broken because of new gettext
sed -i 's/@USE_INCLUDED_LIBINTL@/no/' intl/Makefile.in
# Regenerate crc table in libiberty/crc32.c
pushd libiberty
sed -n -e '38,65p' crc32.c > crcgen.c
gcc -o crcgen crcgen.c
head -n 69 crc32.c > crc32.c.new
./crcgen >> crc32.c.new
tail -n +138 crc32.c >> crc32.c.new
mv crc32.c.new crc32.c
popd
# Regenerate decDPD.h
rm libdecnumber/decDPD.h
gcc -std=c99 -o decDPD_generate decDPD_generate.c
cp decDPD.h.preamble libdecnumber/decDPD.h
./decDPD_generate >> libdecnumber/decDPD.h
# Remove docs/translation
find . -name "*.gmo" -delete
find . -name "*.info" -delete
find . -type f -name '*.[1-9]' -delete
rm libiberty/functions.texi
# Sphinx-generated
rm gcc/jit/docs/conf.py
rm gcc/jit/docs/_build/texinfo/libgccjit.texi \
gcc/ada/gnat_rm.texi \
gcc/ada/gnat_ugn.texi
rm gcc/doc/avr-mmcu.texi
gcc -o gen-avr-mmcu-texi gcc/config/avr/gen-avr-mmcu-texi.c
./gen-avr-mmcu-texi > gcc/doc/avr-mmcu.texi
}
src_configure() {
mkdir build
cd build
# std=gnu11 is the default for GCC10, so that is what it makes most
# sense to build with. (default, std=gnu90 is too outdated).
# For this GCC, we only build one stage, as extra is superfluous,
# since we build GCC 12 straight after.
CFLAGS="-std=gnu11" \
LDFLAGS="-static" \
../configure \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--build=i386-unknown-linux-musl \
--target=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
--disable-bootstrap \
--enable-static \
--program-transform-name= \
--enable-languages=c,c++ \
--with-system-zlib \
--disable-sjlj-exceptions \
--disable-multilib \
--enable-threads=posix \
--disable-libsanitizer \
--disable-libssp
}

View file

@ -15,8 +15,8 @@ the applicable combination of 'aclocal', 'autoconf', 'autoheader'.
See also 'AC_CONFIG_MACRO_DIRS'/'AC_CONFIG_MACRO_DIR' usage elsewhere.
--- gcc-10.4.0/gcc/configure.ac 2023-01-22 16:22:57.833166450 +1100
+++ gcc-10.4.0/gcc/configure.ac 2023-01-22 16:23:08.971274603 +1100
--- gcc-10.5.0/gcc/configure.ac 2023-01-22 16:22:57.833166450 +1100
+++ gcc-10.5.0/gcc/configure.ac 2023-01-22 16:23:08.971274603 +1100
@@ -25,6 +25,7 @@
AC_INIT
@ -25,8 +25,8 @@ See also 'AC_CONFIG_MACRO_DIRS'/'AC_CONFIG_MACRO_DIR' usage elsewhere.
AC_CONFIG_HEADER(auto-host.h:config.in)
gcc_version=`cat $srcdir/BASE-VER`
--- gcc-10.4.0/libobjc/configure.ac 2023-01-22 16:23:42.648601085 +1100
+++ gcc-10.4.0/libobjc/configure.ac 2023-01-22 16:23:28.937468262 +1100
--- gcc-10.5.0/libobjc/configure.ac 2023-01-22 16:23:42.648601085 +1100
+++ gcc-10.5.0/libobjc/configure.ac 2023-01-22 16:23:28.937468262 +1100
@@ -20,6 +20,7 @@
AC_INIT(package-unused, version-unused,, libobjc)

View file

@ -12,8 +12,8 @@ https://stackoverflow.com/questions/22160093/inconsistent-operand-constraints-in
Pre-5.0 GCC does not support PIC inline ASM that touches ebx (as
presumably the cpuid call does); so we must disable PIC.
--- gcc-10.4.0/libgcc/Makefile.in 2023-01-25 16:03:45.928059755 +1100
+++ gcc-10.4.0/libgcc/Makefile.in 2023-01-25 16:04:06.711464255 +1100
--- gcc-10.5.0/libgcc/Makefile.in 2023-01-25 16:03:45.928059755 +1100
+++ gcc-10.5.0/libgcc/Makefile.in 2023-01-25 16:04:06.711464255 +1100
@@ -282,7 +282,7 @@
# subdirectory rather than in the source directory.
# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file

View file

@ -18,8 +18,8 @@ __LIBGCC_HAS_XF_MODE__ is not defined.
diff --git libgcc/config/libbid/_dd_to_xf.c libgcc/config/libbid/_dd_to_xf.c
index 5a2abbbb1f4..e4b12e8ac4f 100644
--- gcc-10.4.0/libgcc/config/libbid/_dd_to_xf.c
+++ gcc-10.4.0/libgcc/config/libbid/_dd_to_xf.c
--- gcc-10.5.0/libgcc/config/libbid/_dd_to_xf.c
+++ gcc-10.5.0/libgcc/config/libbid/_dd_to_xf.c
@@ -25,6 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
@ -35,8 +35,8 @@ index 5a2abbbb1f4..e4b12e8ac4f 100644
+#endif
diff --git libgcc/config/libbid/_sd_to_xf.c libgcc/config/libbid/_sd_to_xf.c
index 9af09913684..288ccb25075 100644
--- gcc-10.4.0/libgcc/config/libbid/_sd_to_xf.c
+++ gcc-10.4.0/libgcc/config/libbid/_sd_to_xf.c
--- gcc-10.5.0/libgcc/config/libbid/_sd_to_xf.c
+++ gcc-10.5.0/libgcc/config/libbid/_sd_to_xf.c
@@ -25,6 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
@ -52,8 +52,8 @@ index 9af09913684..288ccb25075 100644
+#endif
diff --git libgcc/config/libbid/_td_to_xf.c libgcc/config/libbid/_td_to_xf.c
index b0c76a71497..e990282162d 100644
--- gcc-10.4.0/libgcc/config/libbid/_td_to_xf.c
+++ gcc-10.4.0/libgcc/config/libbid/_td_to_xf.c
--- gcc-10.5.0/libgcc/config/libbid/_td_to_xf.c
+++ gcc-10.5.0/libgcc/config/libbid/_td_to_xf.c
@@ -25,6 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
@ -69,8 +69,8 @@ index b0c76a71497..e990282162d 100644
+#endif
diff --git libgcc/config/libbid/_xf_to_dd.c libgcc/config/libbid/_xf_to_dd.c
index 9feb0f2c3d6..e3246a1c2e1 100644
--- gcc-10.4.0/libgcc/config/libbid/_xf_to_dd.c
+++ gcc-10.4.0/libgcc/config/libbid/_xf_to_dd.c
--- gcc-10.5.0/libgcc/config/libbid/_xf_to_dd.c
+++ gcc-10.5.0/libgcc/config/libbid/_xf_to_dd.c
@@ -25,9 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
@ -85,8 +85,8 @@ index 9feb0f2c3d6..e3246a1c2e1 100644
+#endif
diff --git libgcc/config/libbid/_xf_to_sd.c libgcc/config/libbid/_xf_to_sd.c
index 7d46548af6c..9147e979182 100644
--- gcc-10.4.0/libgcc/config/libbid/_xf_to_sd.c
+++ gcc-10.4.0/libgcc/config/libbid/_xf_to_sd.c
--- gcc-10.5.0/libgcc/config/libbid/_xf_to_sd.c
+++ gcc-10.5.0/libgcc/config/libbid/_xf_to_sd.c
@@ -25,9 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"
@ -101,8 +101,8 @@ index 7d46548af6c..9147e979182 100644
+#endif
diff --git libgcc/config/libbid/_xf_to_td.c libgcc/config/libbid/_xf_to_td.c
index 07987fdcc3a..c8d102b0b7f 100644
--- gcc-10.4.0/libgcc/config/libbid/_xf_to_td.c
+++ gcc-10.4.0/libgcc/config/libbid/_xf_to_td.c
--- gcc-10.5.0/libgcc/config/libbid/_xf_to_td.c
+++ gcc-10.5.0/libgcc/config/libbid/_xf_to_td.c
@@ -25,9 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "bid_functions.h"
#include "bid_gcc_intrinsics.h"

View file

@ -4,8 +4,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
In new gettext external is required for AM_GNU_GETTEXT.
--- gcc-13.1.0/intl/configure.ac 2023-02-07 18:43:58.989786230 +1100
+++ gcc-13.1.0/intl/configure.ac 2023-02-07 18:43:02.182632631 +1100
--- gcc-10.5.0/intl/configure.ac 2023-02-07 18:43:58.989786230 +1100
+++ gcc-10.5.0/intl/configure.ac 2023-02-07 18:43:02.182632631 +1100
@@ -4,7 +4,7 @@
AC_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR(../config)

View file

@ -5,8 +5,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
GCC 4.7 doesn't have fisolate-erroneous-paths-dereference. Hence
this line does nothing.
--- gcc-10.4.0/libgcc/generic-morestack.c 2023-01-25 16:52:35.382471998 +1100
+++ gcc-10.4.0/libgcc/generic-morestack.c 2023-01-25 16:52:40.773585043 +1100
--- gcc-10.5.0/libgcc/generic-morestack.c 2023-01-25 16:52:35.382471998 +1100
+++ gcc-10.5.0/libgcc/generic-morestack.c 2023-01-25 16:52:40.773585043 +1100
@@ -23,8 +23,6 @@
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */

1
steps/gcc-10.5.0/sources Normal file
View file

@ -0,0 +1 @@
http://ftp.gnu.org/gnu/gcc/gcc-10.5.0/gcc-10.5.0.tar.xz 25109543fdf46f397c347b5d8b7a2c7e5694a5a51cce4b9c6e1ea8a71ca307c1

View file

@ -1,99 +0,0 @@
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Remove vendored zlib
rm -r zlib/
# Regen gperf file (because GCC's make rules suck)
rm gcc/cp/cfns.h
# (taken directly from gcc/cp/Make-lang.in)
gperf -o -C -E -k '1-6,$' -j1 -D -N 'libc_name_p' -L C++ \
gcc/cp/cfns.gperf --output-file gcc/cp/cfns.h
# Regenerate autogen stuff
autogen Makefile.def
pushd fixincludes
./genfixes
popd
# Regenerate autotools
# configure
find . -name configure | sed 's:/configure::' | while read d; do
pushd "${d}"
AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 autoreconf-2.69 -fiv
popd
done
# Because GCC is stupid, copy depcomp back in
cp "${PREFIX}/share/automake-1.15/depcomp" .
# Makefile.in only
local BACK="${PWD}"
find . -type d \
-exec test -e "{}/Makefile.am" -a ! -e "{}/configure" \; \
-print | while read d; do
d="$(readlink -f "${d}")"
cd "${d}"
# Find the appropriate configure script for automake
while [ ! -e configure ]; do
cd ..
done
automake-1.15 -fai "${d}/Makefile"
cd "${BACK}"
done
# Remove bison generated files
rm intl/plural.c
# Remove flex generated files
rm gcc/gengtype-lex.cc
# Remove unused generated files
rm -r libgfortran/generated
# intl/ Makefile is a bit broken because of new gettext
sed -i 's/@USE_INCLUDED_LIBINTL@/no/' intl/Makefile.in
# Regenerate crc table in libiberty/crc32.c
pushd libiberty
sed -n -e '38,65p' crc32.c > crcgen.c
gcc -o crcgen crcgen.c
head -n 69 crc32.c > crc32.c.new
./crcgen >> crc32.c.new
tail -n +138 crc32.c >> crc32.c.new
mv crc32.c.new crc32.c
popd
# Remove docs/translation
find . -name "*.gmo" -delete
find . -name "*.info" -delete
}
src_configure() {
mkdir build
cd build
LDFLAGS="-static" \
../configure \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--build=i386-unknown-linux-musl \
--target=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
--enable-bootstrap \
--enable-static \
--disable-plugins \
--disable-libssp \
--disable-libsanitizer \
--program-transform-name= \
--enable-languages=c,c++ \
--with-system-zlib \
--disable-multilib \
--enable-threads=posix
}
src_compile() {
make "${MAKEJOBS}" BOOT_LDFLAGS="-static"
}

View file

@ -1 +0,0 @@
https://mirrors.kernel.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.xz 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86

View file

@ -0,0 +1 @@
../../gcc-10.5.0/files/decDPD.h.preamble

View file

@ -0,0 +1 @@
../../gcc-10.5.0/files/decDPD_generate.c

228
steps/gcc-13.3.0/pass1.sh Executable file
View file

@ -0,0 +1,228 @@
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Remove unused pregenerated files
rm libsanitizer/include/sanitizer/netbsd_syscall_hooks.h \
libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
rm -r libgfortran/generated
rm gcc/testsuite/go.test/test/bench/go1/jsondata_test.go \
gcc/testsuite/go.test/test/bench/go1/parserdata_test.go \
gcc/testsuite/go.test/test/cmplxdivide1.go \
gcc/testsuite/go.test/test/fixedbugs/issue6866.go
rm gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c \
gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c \
gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c \
gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c \
gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_passing_floats.c \
gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_basic_returning.c \
gcc/testsuite/gcc.target/x86_64/abi/avx512fp16/test_3_element_struct_and_unions.c \
gcc/testsuite/gcc.target/x86_64/abi/bf16/test_passing_floats.c \
gcc/testsuite/gcc.target/x86_64/abi/bf16/test_3_element_struct_and_unions.c
rm gcc/testsuite/gm2/projects/pim/run/pass/tower/advflex.c \
gcc/testsuite/gm2/projects/pim/run/pass/tower/AdvParse.mod
rm gcc/testsuite/gcc.dg/analyzer/flex*.c
rm -r gcc/testsuite/gdc.test/compilable
rm gcc/config/rs6000/rs6000-tables.opt \
gcc/config/rs6000/fusion.md \
gcc/config/h8300/mova.md \
gcc/config/aarch64/aarch64-tune.md \
gcc/config/nios2/ldstwm.md \
gcc/config/riscv/t-elf-multilib \
gcc/config/riscv/t-linux-multilib \
gcc/config/arm/arm-tune.md \
gcc/config/arm/arm-tables.opt \
gcc/config/arm/ldmstm.md \
gcc/config/arc/t-multilib \
gcc/config/m68k/m68k-tables.opt \
gcc/config/c6x/c6x-mult.md \
gcc/config/c6x/c6x-tables.opt \
gcc/config/c6x/c6x-sched.md \
gcc/config/csky/csky_tables.opt \
gcc/config/mips/mips-tables.opt \
gcc/config/nvptx/nvptx-gen.opt \
gcc/config/nvptx/nvptx-gen.h \
gcc/config/loongarch/loongarch.opt \
gcc/config/loongarch/loongarch-str.h
rm libphobos/src/std/internal/unicode_tables.d \
libphobos/src/std/internal/unicode_decomp.d \
libphobos/src/std/internal/unicode_grapheme.d \
libphobos/src/std/internal/unicode_norm.d
rm libgo/go/math/bits/example_test.go \
libgo/go/math/bits/bits_tables.go \
libgo/go/math/big/accuracy_string.go \
libgo/go/math/big/roundingmode_string.go \
libgo/go/strconv/isprint.go \
libgo/go/strconv/eisel_lemire.go \
libgo/go/sort/zfuncversion.go \
libgo/go/golang.org/x/net/route/zsys_*.go \
libgo/go/golang.org/x/net/idna/*.go \
libgo/go/golang.org/x/text/unicode/bidi/t*.go \
libgo/go/golang.org/x/text/unicode/norm/tables*.go \
libgo/go/golang.org/x/tools/internal/typeparams/typeterm.go \
libgo/go/golang.org/x/tools/internal/typeparams/termlist.go \
libgo/go/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go \
libgo/go/internal/syscall/windows/registry/zsyscall_windows.go \
libgo/go/internal/syscall/windows/zsyscall_windows.go \
libgo/go/encoding/gob/*_helpers.go \
libgo/go/index/suffixarray/sais2.go \
libgo/go/net/http/*_bundle.go \
libgo/go/runtime/sizeclasses.go \
libgo/go/runtime/fastlog2table.go \
libgo/go/html/template/*_string.go \
libgo/go/crypto/md5/md5block.go \
libgo/go/crypto/tls/common_string.go \
libgo/go/crypto/elliptic/internal/fiat/p*.go \
libgo/go/crypto/ed25519/internal/edwards25519/field/fe_amd64.go \
libgo/go/time/zoneinfo_abbrs_windows.go \
libgo/go/unicode/tables.go \
libgo/go/regexp/syntax/doc.go \
libgo/go/regexp/syntax/op_string.go \
libgo/go/regexp/syntax/perl_groups.go \
libgo/go/image/internal/imageutil/impl.go \
libgo/go/image/color/palette/palette.go \
libgo/go/cmd/internal/objabi/*_string.go \
libgo/go/cmd/go/internal/test/flagdefs.go \
libgo/go/debug/dwarf/*_string.go \
libgo/go/debug/macho/reloctype_string.go \
libgo/go/internal/goexperiment/exp_*.go \
libgo/go/time/tzdata/zipdata.go \
libgo/go/go/constant/kind_string.go
rm libgo/go/compress/bzip2/testdata/*.bin \
libgo/go/go/internal/gccgoimporter/testdata/v1reflect.gox \
libgo/go/go/internal/gccgoimporter/testdata/time.gox \
libgo/go/go/internal/gccgoimporter/testdata/unicode.gox \
libgo/go/go/internal/gccgoimporter/testdata/escapeinfo.gox \
libgo/go/go/internal/gccgoimporter/testdata/libimportsar.a \
libgo/go/go/internal/gcimporter/testdata/versions/*.a
rm -r libgo/go/compress/flate/testdata \
libgo/go/runtime/pprof/testdata \
libgo/go/debug/*/testdata \
libgo/go/internal/trace/testdata \
libgo/go/time/testdata \
libgo/go/internal/xcoff/testdata
find fixincludes/tests -name "*.h" -delete
rm gcc/m2/mc/mcp*.bnf
rm -r gcc/m2/pge-boot \
gcc/m2/mc-boot
# Partially generated unused files
rm libgcc/config/sh/lib1funcs.S \
libgcc/config/sh/lib1funcs-4-300.S \
libgcc/config/arc/lib1funcs.S
# Remove vendored zlib
rm -r zlib/
# gperf files
rm gcc/cp/cfns.h gcc/cp/std-name-hint.h
# Generate it now, because gcc doesn't regenerate it for some reason
# (taken directly from gcc/cp/Make-lang.in)
gperf -o -C -E -k '1-6,$' -j1 -D -N 'libc_name_p' -L C++ \
gcc/cp/cfns.gperf --output-file gcc/cp/cfns.h
# Regenerate autogen stuff
rm Makefile.in fixincludes/fixincl.x
autogen Makefile.def
pushd fixincludes
./genfixes
popd
# Regenerate autotools
# configure
find . -name configure | sed 's:/configure::' | while read d; do
pushd "${d}"
AUTOMAKE=automake-1.15 ACLOCAL=aclocal-1.15 autoreconf-2.69 -fiv
popd
done
# A odd script
pushd gcc/m2/gm2-libs
autoconf-2.69 -f config-host.in > config-host
popd
# Because GCC is stupid, copy depcomp back in
cp "${PREFIX}/share/automake-1.15/depcomp" .
# Makefile.in only
local BACK="${PWD}"
find . -type d \
-exec test -e "{}/Makefile.am" -a ! -e "{}/configure" \; \
-print | while read d; do
d="$(readlink -f "${d}")"
cd "${d}"
# Find the appropriate configure script for automake
while [ ! -e configure ]; do
cd ..
done
automake-1.15 -fai "${d}/Makefile"
cd "${BACK}"
done
# Remove bison generated files
rm intl/plural.c
# Remove flex generated files
rm gcc/gengtype-lex.cc
# intl/ Makefile is a bit broken because of new gettext
sed -i 's/@USE_INCLUDED_LIBINTL@/no/' intl/Makefile.in
# Regenerate crc table in libiberty/crc32.c
pushd libiberty
sed -n -e '38,65p' crc32.c > crcgen.c
gcc -o crcgen crcgen.c
head -n 69 crc32.c > crc32.c.new
./crcgen >> crc32.c.new
tail -n +138 crc32.c >> crc32.c.new
mv crc32.c.new crc32.c
popd
# Regenerate decDPD.h
rm libdecnumber/decDPD.h
gcc -std=c99 -o decDPD_generate decDPD_generate.c
cp decDPD.h.preamble libdecnumber/decDPD.h
./decDPD_generate >> libdecnumber/decDPD.h
# Remove docs/translation
find . -name "*.gmo" -delete
find . -name "*.info" -delete
find . -type f -name '*.[1-9]' -delete
rm libiberty/functions.texi
# Sphinx-generated
rm gcc/jit/docs/conf.py
rm gcc/jit/docs/_build/texinfo/libgccjit.texi \
gcc/ada/gnat_rm.texi \
gcc/ada/gnat_ugn.texi
rm gcc/doc/avr-mmcu.texi
gcc -o gen-avr-mmcu-texi gcc/config/avr/gen-avr-mmcu-texi.cc
./gen-avr-mmcu-texi > gcc/doc/avr-mmcu.texi
}
src_configure() {
mkdir build
cd build
LDFLAGS="-static" \
../configure \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--build=i386-unknown-linux-musl \
--target=i386-unknown-linux-musl \
--host=i386-unknown-linux-musl \
--enable-bootstrap \
--enable-static \
--disable-plugins \
--disable-libssp \
--disable-libsanitizer \
--program-transform-name= \
--enable-languages=c,c++ \
--with-system-zlib \
--disable-multilib \
--enable-threads=posix
}
src_compile() {
make "${MAKEJOBS}" BOOT_LDFLAGS="-static"
}

View file

@ -4,8 +4,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
In new gettext external is required for AM_GNU_GETTEXT.
--- gcc-10.4.0/intl/configure.ac 2023-02-07 18:43:58.989786230 +1100
+++ gcc-10.4.0/intl/configure.ac 2023-02-07 18:43:02.182632631 +1100
--- gcc-13.3.0/intl/configure.ac 2023-02-07 18:43:58.989786230 +1100
+++ gcc-13.3.0/intl/configure.ac 2023-02-07 18:43:02.182632631 +1100
@@ -4,7 +4,7 @@
AC_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR(../config)

1
steps/gcc-13.3.0/sources Normal file
View file

@ -0,0 +1 @@
https://mirrors.kernel.org/gnu/gcc/gcc-13.3.0/gcc-13.3.0.tar.xz 0845e9621c9543a13f484e94584a49ffc0129970e9914624235fc1d061a0c083

View file

@ -4,8 +4,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
EXTRA_DISTFILES="automake-1.16.3.tar.xz"
src_prepare() {
default
# This is needed for building with TCC
@ -45,9 +43,18 @@ src_prepare() {
libtoolize
cp ../automake-1.16.3/lib/config.sub .
# Rebuild files generated by GCC build system
rm gcc/c-parse.y libiberty/functions.texi
rm libiberty/obstacks.texi
touch libiberty/obstacks.texi
# Rebuild libcpp/ucnid.h
rm libcpp/ucnid.h
perl libcpp/ucnid.pl < libcpp/ucnid.tab > libcpp/ucnid.h
# Rebuild bison files
# Workaround for bison being too new
sed -i 's/YYLEX/yylex()/' gcc/c-parse.y
sed -i 's/YYLEX/yylex()/' gcc/c-parse.in
rm gcc/c-parse.c
rm gcc/gengtype-yacc.c gcc/gengtype-yacc.h
rm intl/plural.c

View file

@ -44,9 +44,18 @@ src_prepare() {
libtoolize
cp ../automake-1.16.3/lib/config.sub .
# Rebuild files generated by GCC build system
rm gcc/c-parse.y libiberty/functions.texi
rm libiberty/obstacks.texi
touch libiberty/obstacks.texi
# Rebuild libcpp/ucnid.h
rm libcpp/ucnid.h
perl libcpp/ucnid.pl < libcpp/ucnid.tab > libcpp/ucnid.h
# Rebuild bison files
# Workaround for bison being too new
sed -i 's/YYLEX/yylex()/' gcc/c-parse.y
sed -i 's/YYLEX/yylex()/' gcc/c-parse.in
rm gcc/c-parse.c
rm gcc/gengtype-yacc.c gcc/gengtype-yacc.h
rm intl/plural.c

View file

@ -0,0 +1,59 @@
// SPDX-FileCopyrightText: 2007, 2009 Free Software Foundation, Inc.
// SPDX-License-Identifier: GPL-3.0-or-later
/* Conversion lookup tables for the decNumber C Library.
Copyright (C) 2007, 2009 Free Software Foundation, Inc.
Contributed by IBM Corporation. Author Mike Cowlishaw.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
/* ------------------------------------------------------------------------ */
/* Binary Coded Decimal and Densely Packed Decimal conversion lookup tables */
/* [Automatically generated -- do not edit. 2008.06.21] */
/* ------------------------------------------------------------------------ */
/* For details, see DPDecimal.html on the General Decimal Arithmetic page. */
#include "decDPDSymbols.h"
/* This include file defines several DPD and BCD conversion tables: */
/* */
/* uint16_t BCD2DPD[2458]; -- BCD -> DPD (0x999 => 2457) */
/* uint16_t BIN2DPD[1000]; -- Bin -> DPD (999 => 2457) */
/* uint8_t BIN2CHAR[4001]; -- Bin -> CHAR (999 => '\3' '9' '9' '9') */
/* uint8_t BIN2BCD8[4000]; -- Bin -> bytes (999 => 9 9 9 3) */
/* uint16_t DPD2BCD[1024]; -- DPD -> BCD (0x3FF => 0x999) */
/* uint16_t DPD2BIN[1024]; -- DPD -> BIN (0x3FF => 999) */
/* uint32_t DPD2BINK[1024]; -- DPD -> BIN * 1000 (0x3FF => 999000) */
/* uint32_t DPD2BINM[1024]; -- DPD -> BIN * 1E+6 (0x3FF => 999000000) */
/* uint8_t DPD2BCD8[4096]; -- DPD -> bytes (x3FF => 9 9 9 3) */
/* */
/* In all cases the result (10 bits or 12 bits, or binary) is right-aligned */
/* in the table entry. BIN2CHAR entries are a single byte length (0 for */
/* value 0) followed by three digit characters; a trailing terminator is */
/* included to allow 4-char moves always. BIN2BCD8 and DPD2BCD8 entries */
/* are similar with the three BCD8 digits followed by a one-byte length */
/* (again, length=0 for value 0). */
/* */
/* To use a table, its name, prefixed with DEC_, must be defined with a */
/* value of 1 before this header file is included. For example: */
/* #define DEC_BCD2DPD 1 */
/* This mechanism allows software to only include tables that are needed. */
/* ------------------------------------------------------------------------ */

View file

@ -0,0 +1,228 @@
// SPDX-FileCopyrightText: 2025 fosslinux <fosslinux@aussies.space>
// SPDX-License-Identifier: GPL-3.0-or-later
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
/*
* Creates decDPD.h.
* Based upon the algorithm given on;
* https://web.archive.org/web/20080308073422/http://www2.hursley.ibm.com/decimal/DPDecimal.html
* originally written in the (obsolete) language Rexx.
*
* Is not bit-for-bit identical to the original decDPD.h, as we don't bother
* to follow the same formatting.
*
* The original Rexx code follows;
*/
// /* dpdGenerate.rex -- display Densely Packed Decimal table */
// /* mfc 2000.10.03; Rexx version with new equations 2007.02.01 */
//
// do i=0 to 999
// bcd=right(i, 3, 0) -- make three-digit hexadecimal string
// bit10=bcd2dpd(x2b(bcd)) -- compress
// bit12=dpd2bcd(bit10) -- expand
// say bcd bit10 bit12 -- display
// end i
// exit
//
// /* bcd2dpd -- Compress BCD to Densely Packed Decimal
// argument is a string of 12 characters, each 0 or 1, being 3 digits
// of 4 bits, each being a valid BCD digit (0000-1001)
// (for example, 923 is 100100100011)
// result is a string of 10 characters, each 0 or 1
// (for the example, this would be 1001010011)
// */
// bcd2dpd: procedure
// -- assign each bit to a variable, named as in the description
// parse arg a +1 b +1 c +1 d +1 e +1 f +1 g +1 h +1 i +1 j +1 k +1 m +1
//
// -- derive the result bits, using boolean expressions only
// -- [the operators are: '&'=AND, '|'=OR, '\'=NOT.]
// p=b | (a & j) | (a & f & i)
// q=c | (a & k) | (a & g & i)
// r=d
// s=(f & (\a | \i)) | (\a & e & j) | (e & i)
// t=g | (\a & e &k;) | (a & i)
// u=h
// v=a | e | i
// w=a | (e & i) | (\e & j)
// x=e | (a & i) | (\a & k)
// y=m
// -- concatenate the bits and return
// return p||q||r||s||t||u||v||w||x||y
//
// /* dpd2bcd -- Expand Densely Packed Decimal to BCD
// argument is a string of 10 characters, each 0 or 1; all 1024
// possibilities are accepted (non-canonicals -> 999)
// (for example, 1001010011)
// result is a string of 12 characters, each 0 or 1
// (for the example, 100100100011 -- 923)
// */
// dpd2bcd: procedure
// -- assign each bit to a variable, named as in the description
// parse arg p +1 q +1 r +1 s +1 t +1 u +1 v +1 w +1 x +1 y +1
//
// -- derive the result bits, using boolean expressions only
// a= (v & w) & (\s | t | \x)
// b=p & (\v | \w | (s & \t & x))
// c=q & (\v | \w | (s & \t & x))
// d=r
// e=v & ((\w & x) | (\t & x) | (s & x))
// f=(s & (\v | \x)) | (p & \s & t & v & w & x)
// g=(t & (\v | \x)) | (q & \s & t & w)
// h=u
// i=v & ((\w & \x) | (w & x & (s | t)))
// j=(\v & w) | (s & v & \w & x) | (p & w & (\x | (\s & \t)))
// k=(\v & x) | (t & \w & x) | (q & v & w & (\x | (\s & \t)))
// m=y
// -- concatenate the bits and return
// return a||b||c||d||e||f||g||h||i||j||k||m
void int2boolarr(uint32_t num, bool *arr, int bits) {
int j = 0;
for (int i = bits - 1; i >= 0; i--) {
arr[j++] = (num >> i) & 0x1;
}
}
uint32_t boolarr2int(bool *dpd, int bits) {
uint32_t num = 0;
int j = 0;
for (int i = bits - 1; i >= 0; i--) {
num |= dpd[j++] << i;
}
return num;
}
uint32_t bcd2dpd(uint16_t ibcd) {
bool bcd[12];
int2boolarr(ibcd, bcd, 12);
bool dpd[10];
dpd[0] = bcd[1] | (bcd[0] & bcd[9]) | (bcd[0] & bcd[5] & bcd[8]);
dpd[1] = bcd[2] | (bcd[0] & bcd[10]) | (bcd[0] & bcd[6] & bcd[8]);
dpd[2] = bcd[3];
dpd[3] = (bcd[5] & (~bcd[0] | ~bcd[8])) | (~bcd[0] & bcd[4] & bcd[9]) | (bcd[4] & bcd[8]);
dpd[4] = bcd[6] | (~bcd[0] & bcd[4] & bcd[10]) | (bcd[0] & bcd[8]);
dpd[5] = bcd[7];
dpd[6] = bcd[0] | bcd[4] | bcd[8];
dpd[7] = bcd[0] | (bcd[4] & bcd[8]) | (~bcd[4] & bcd[9]);
dpd[8] = bcd[4] | (bcd[0] & bcd[8]) | (~bcd[0] & bcd[10]);
dpd[9] = bcd[11];
return boolarr2int(dpd, 10);
}
uint32_t dpd2bcd(uint32_t idpd) {
bool dpd[10];
int2boolarr(idpd, dpd, 10);
bool bcd[12];
bcd[0] = (dpd[6] & dpd[7]) & (~dpd[3] | dpd[4] | ~dpd[8]);
bcd[1] = dpd[0] & (~dpd[6] | ~dpd[7] | (dpd[3] & ~dpd[4] & dpd[8]));
bcd[2] = dpd[1] & (~dpd[6] | ~dpd[7] | (dpd[3] & ~dpd[4] & dpd[8]));
bcd[3] = dpd[2];
bcd[4] = dpd[6] & ((~dpd[7] & dpd[8]) | (~dpd[4] & dpd[8]) | (dpd[3] & dpd[8]));
bcd[5] = (dpd[3] & (~dpd[6] | ~dpd[8])) | (dpd[0] & ~dpd[3] & dpd[4] & dpd[6] & dpd[7] & dpd[8]);
bcd[6] = (dpd[4] & (~dpd[6] | ~dpd[8])) | (dpd[1] & ~dpd[3] & dpd[4] & dpd[7]);
bcd[7] = dpd[5];
bcd[8] = dpd[6] & ((~dpd[7] & ~dpd[8]) | (dpd[7] & dpd[8] & (dpd[3] | dpd[4])));
bcd[9] = (~dpd[6] & dpd[7]) | (dpd[3] & dpd[6] & ~dpd[7] & dpd[8]) | (dpd[0] & dpd[7] & (~dpd[8] | (~dpd[3] & ~dpd[4])));
bcd[10] = (~dpd[6] & dpd[8]) | (dpd[4] & ~dpd[7] & dpd[8]) | (dpd[1] & dpd[6] & dpd[7] & (~dpd[8] | (~dpd[3] & ~dpd[4])));
bcd[11] = dpd[9];
return boolarr2int(bcd, 12);
}
uint8_t get_cntrl_char(uint8_t num) {
if (num == 0) {
return 0;
} else if (num < 10) {
return 1;
} else if (num < 100) {
return 2;
} else {
return 3;
}
}
void bin2char(uint8_t num, uint32_t str[4]) {
str[0] = get_cntrl_char(num);
str[1] = num / 100 + '0';
str[2] = (num % 100) / 10 + '0';
str[3] = num % 10 + '0';
}
void bin2bcd8(uint8_t num, char digit[4], uint32_t arr[4]) {
for (int i = 0; i < 3; i++) {
arr[i] = digit[i] - '0';
}
arr[3] = get_cntrl_char(num);
}
#define TABLES_COUNT 9
int main(void) {
uint32_t BCD2DPD[2458] = {0};
uint32_t BIN2DPD[1000] = {0};
uint32_t BIN2BCD8[4000];
uint32_t BIN2CHAR[4001];
uint32_t DPD2BCD[1024] = {0};
uint32_t DPD2BIN[1024] = {0};
uint32_t DPD2BINK[1024] = {0};
uint32_t DPD2BINM[1024] = {0};
uint32_t DPD2BCD8[4096];
for (int i = 0; i < 1000; i++) {
char digit[4];
snprintf(digit, 4, "%03d", i);
uint32_t bcd = 0;
for (int j = 0; j < 3; j++) {
bcd |= (digit[j] - '0') << (4 * (2 - j));
}
uint32_t dpd = bcd2dpd(bcd);
BCD2DPD[bcd] = dpd;
DPD2BCD[dpd] = bcd;
BIN2DPD[i] = dpd;
DPD2BIN[dpd] = i;
DPD2BINK[dpd] = i * 1000;
DPD2BINM[dpd] = i * 1E+6;
bin2char(i, BIN2CHAR + (4 * i));
bin2bcd8(i, digit, BIN2BCD8 + (4 * i));
bin2bcd8(i, digit, DPD2BCD8 + (4 * dpd));
}
BIN2CHAR[4000] = '\0';
char *names[] = {
"BCD2DPD", "BIN2DPD", "BIN2CHAR", "BIN2BCD8", "DPD2BCD", "DPD2BIN",
"DPD2BINK", "DPD2BINM", "DPD2BCD8",
};
char *types[] = {
"uint16_t", "uint16_t", "uint8_t", "uint8_t", "uint16_t", "uint16_t",
"uint32_t", "uint32_t", "uint8_t",
};
uint32_t *data[] = {
BCD2DPD, BIN2DPD, BIN2CHAR, BIN2BCD8, DPD2BCD, DPD2BIN,
DPD2BINK, DPD2BINM, DPD2BCD8,
};
int lengths[] = {2458, 1000, 4001, 4000, 1024, 1024, 1024, 1024, 4096};
for (int i = 0; i < TABLES_COUNT; i++) {
printf("#if defined(DEC_%s) && DEC_%s==1 && !defined(DEC%s)\n", names[i], names[i], names[i]);
printf("#define DEC%s\n", names[i]);
printf("const %s %s[%d] = {\n", types[i], names[i], lengths[i]);
for (int j = 0; j < lengths[i] / 16; j++) {
for (int k = j * 16; k < (j + 1) * 16 && k < lengths[i]; k++) {
printf("%s%d,", k == j * 16 ? "" : " ", data[i][k]);
}
printf("\n");
}
printf("};\n");
printf("#endif\n\n");
}
}

View file

@ -16,6 +16,57 @@ src_prepare() {
# Remove unused generated files
rm libgo/aclocal.m4 libgo/configure libgo/Makefile.in
rm gcc/config/avr/t-multilib
rm gcc/config/mep/intrinsics.h gcc/config/mep/intrinsics.md \
gcc/config/mep/mep-intrin.h
rm gcc/config/arm/arm_neon.h
rm gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c \
gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c \
gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c \
gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c
rm gcc/testsuite/go.test/test/bench/go1/jsondata_test.go \
gcc/testsuite/go.test/test/bench/shootout/mandelbrot.txt
rm gcc/testsuite/go.test/test/cmplxdivide1.go
find zlib -name "*.obj" -delete
rm zlib/contrib/puff/zeros.raw zlib/contrib/blast/test.pk \
zlib/contrib/dotzlib/DotZLib.chm
find libjava -name "*.class" -delete
find libjava -type f -name "*.jar" -delete
find libjava -name "*.h" -exec grep -l "DO NOT EDIT THIS FILE" {} \; | xargs rm
rm libjava/classpath/gnu/java/lang/CharData.java \
libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Skel.java \
libjava/classpath/gnu/java/rmi/dgc/DGCImpl_Stub.java \
libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Skel.java \
libjava/classpath/gnu/java/rmi/registry/RegistryImpl_Stub.java
rm libjava/classpath/resource/gnu/java/locale/*.properties \
libjava/classpath/resource/java/text/*.properties \
libjava/classpath/resource/java/util/*.properties
rm libjava/include/java-chardecomp.h \
libjava/include/java-chartables.h
rm -r libjava/testsuite/libjava.cni \
libjava/testsuite/libjava.jvmti
rm boehm-gc/MacProjects.sit.hqx
find fixincludes/tests -name "*.h" -delete
find . -name "*.pdf" -delete
rm -r libstdc++-v3/doc/html
rm libgfortran/generated/*.F90
rm -r libgo/go/debug/elf/testdata \
libgo/go/debug/macho/testdata \
libgo/go/debug/pe/testdata \
libgo/go/debug/dwarf/testdata
rm libgo/go/regexp/syntax/perl_groups.go
rm libgo/go/strconv/isprint.go
# Regenerating these would require TCL
rm libjava/sources.am libjava/Makefile.in
# Part generated, part human-written, but unused
rm libgcc/config/sh/lib1funcs.S libgcc/config/sh/lib1funcs-4-300.S
rm libjava/classpath/java/util/TimeZone.java
rm libjava/gcj/javaprims.h
# xz-style blobs
rm boehm-gc/cord/de_win.ICO
# Regenerate aclocal.m4 files
# grep "generated automatically by aclocal" */aclocal.m4 -l | sed -e 's#/aclocal.m4##' | tr "\n" " " | sed -e 's/ $/\n/'
@ -33,11 +84,11 @@ src_prepare() {
rm aclocal.m4
AUTOCONF=autoconf-2.64 AUTOM4TE=autom4te-2.64 aclocal-1.11 --acdir=../gcc
cd ..
for dir in boehm-gc libffi libgfortran libgomp libitm libjava libmudflap libobjc libquadmath libssp lto-plugin zlib; do
cd $dir
for dir in boehm-gc libffi libgfortran libgomp libitm libjava libmudflap libobjc libquadmath libssp lto-plugin zlib libjava/classpath libjava/libltdl; do
pushd "$dir"
rm aclocal.m4
AUTOCONF=autoconf-2.64 AUTOM4TE=autom4te-2.64 aclocal-1.11
cd ..
popd
done
cd libstdc++-v3
@ -56,7 +107,7 @@ src_prepare() {
# Regenerate Makefile.in
# Find all folders with Makefile.am and rebuild them. At the moment we exclude boehm-gc folder.
for dir in $(find . -mindepth 2 -maxdepth 2 -name Makefile.am | sed 's#/Makefile.am##' | grep -v -x './libgo' | tr "\n" " " | sed -e 's/ $/\n/' -e 's/^boehm-gc //'); do
for dir in $(find . -mindepth 2 -maxdepth 2 -name Makefile.am | sed 's#/Makefile.am##' | grep -v -x -e './libgo' -e './libjava' | tr "\n" " " | sed -e 's/ $/\n/' -e 's/^boehm-gc //'); do
pushd "$dir"
rm Makefile.in
AUTOCONF=autoconf-2.64 AUTOM4TE=autom4te-2.64 automake-1.11 --add-missing
@ -70,10 +121,22 @@ src_prepare() {
cd ..
done
# Rebuild dependencies in libiberty/Makefile.in
pushd libiberty
./configure --enable-maintainer-mode
make maint-deps
popd
# Rebuild libtool files
rm config.guess config.sub ltmain.sh
libtoolize
rm libjava/libltdl/missing
libtoolize -i
cp "${PREFIX}/share/automake-1.15/config.sub" .
for dir in libjava/libltdl libjava/classpath libgo/config; do
pushd "$dir"
libtoolize -i
popd
done
# Workaround for bison being too new
rm intl/plural.c
@ -91,11 +154,21 @@ src_prepare() {
mv crc32.c.new crc32.c
popd
# Regenerate decDPD.h
rm libdecnumber/decDPD.h
gcc -std=c99 -o decDPD_generate decDPD_generate.c
cp decDPD.h.preamble libdecnumber/decDPD.h
./decDPD_generate >> libdecnumber/decDPD.h
# Remove translation catalogs
find . -name '*.gmo' -delete
# Pre-built texinfo files
rm libiberty/functions.texi
find . -name '*.info' -delete
# Pre-built manpages
find . -name '*.[1-9]' -delete
}
src_configure() {

View file

@ -195,9 +195,9 @@ build: python-3.8.16
build: python-3.11.1
uninstall: python-2.0.1 python-2.3.7 python-3.1.5 python-3.3.7 python-3.4.10 python-3.8.16
jump: break ( INTERNAL_CI == pass1 ) # scripts are generated in pass1
build: gcc-10.4.0
build: gcc-10.5.0
build: binutils-2.41
build: gcc-13.1.0
build: gcc-13.3.0
build: grub-2.06 ( BUILD_LINUX == True )
improve: make_bootable ( CHROOT == False )
build: libmd-1.1.0