Merge pull request #242 from fosslinux/gcc-10

GCC 10
This commit is contained in:
fosslinux 2023-02-12 09:23:30 +11:00 committed by GitHub
commit 4b5b037718
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 778 additions and 29 deletions

View File

@ -2,7 +2,7 @@
.. SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
.. SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
.. SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
.. SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
.. SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
.. SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
.. SPDX-License-Identifier: CC-BY-SA-4.0
@ -867,6 +867,10 @@ gcc 4.7.4
GCC 4.7.4 is the last version written in C. This time we build both C and C++ backends.
C++ backend has some dependency on ``gperf`` which is written in C++. Fortunately, it is
easy to patch it out and resulting ``g++`` compiler is capable of building ``gperf``.
We also add in two patchsets to the compiler;
* one to add support for musl shared library support
* one providing a few compiler flags/features that are required later to build GCC 10
binutils 2.38
=============
@ -1070,3 +1074,13 @@ Differences to 3.8.16:
* Very recent Python versions allow for the use of ``SOURCE_DATE_EPOCH`` to
remove determinism from precompiled Python libraries (``.pyc``). Finally, we
can re-enable compiling of Python modules.
GCC 10.4.0
==========
GCC 10.x series is the last version of GCC that is able to be built with the
C/C++ standards available in GCC 4.7. Instead of manually configuring & compiling
every subdirectory, since we now have ``autogen`` available we are able to use
the top-level configure to build the project. We do not use GCC's bootstrap mode,
where GCC is recompiled with itself after being built, since we're just going
to use this GCC to compile GCC 12, it adds build time for little benefit.

View File

@ -12,7 +12,7 @@ d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_
298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2
8c2401edf1c68910005bbcb8b8e84727a46f7d9643d2ad1267bd0259078dadc4 autoconf-2.71_0.tar.bz2
6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2
0a461c42d300889c761d41c32fd6077b830d6f521711c82564e5104df936b768 autogen-5.18.16_0.tar.bz2
423502989faf6e752f8e84afa7166c66067c0d1264b549323e5bcc8d983dadc1 autogen-5.18.16_0.tar.bz2
fbd8739c8f69b388e2c54893faa1180cc38f2718339da82788312adb0201c5d0 automake-1.10.3_0.tar.bz2
7014bcba2fc112f3c22129a69b32dd3939eac97267d0ee271aa35853fdeee9fe automake-1.11.2_0.tar.bz2
a7bd12bd0c639783ce1c0e9f640cf004a87460bbda8154bc550c5e6884457b48 automake-1.15.1_0.tar.bz2
@ -26,8 +26,8 @@ b2eab85c4a22060cc18945f6cb24cdf928fee370fff3fe12482e866a1cace586 automake-1.6.3
75c5f2c2f636c4d763eef650ffdf638ff372444dce74e5c9bfe7c5ec824c2a26 automake-1.8.5_0.tar.bz2
42fe9a42c457193e7bebf31b71eb28bc71e179ed9f2c78be242a5f6b03bbbbfe automake-1.9.6_0.tar.bz2
b2729f1d776d26fbf7781aeeb569e2550c484fb9d2722dd207542480de0d4879 bash-5.1_0.tar.bz2
a8c6912289e4f22416a014a59e4b78f7487e32d821e8d322cdafe290b12d7cb5 binutils-2.14_0.tar.bz2
9e5ed38a9abb8ba107321b1fe56fc6f8ebed22855daddb50416cf2ba2b14b9df binutils-2.38_0.tar.bz2
49c95bfed9c22f940a844eca43f8edf3e36343de48185b60248cbdf01c0c44ad binutils-2.14_0.tar.bz2
1611e61cd7040cee029215eb5af3d62e649a823035372a54feeed5e6050f7f0b binutils-2.38_0.tar.bz2
78035718b7ad659ba83f120405ad591f8ab0afb01f09805da7b3ab793d22a12c bison-2.3_0.tar.bz2
87dae598915deabe95a4ee75ec6cfed3a6e6da1a655c3ad90ee60ec07a7d87fa bison-3.4.1_0.tar.bz2
ae452f08ad9f7ab01f2a9bd882170e71ee6200a06f044f4aadb446cc68700016 bison-3.4.1_1.tar.bz2
@ -45,20 +45,22 @@ ca91a67d5d0c0ee46d064d9bf7c26efcafe712a9f86866991028478df3b34f21 diffutils-2.7_
de6d9df33107ae63b8e0f30902fe9d00e42f78f44a60b256bb0b3c82ff75bd45 dist-3.5-236_0.tar.bz2
9ed3eb8e598317d00c0f9467c956abdc5857542b699095fcc9e80c3e2d0bfc04 e2fsprogs-1.45.7_0.tar.bz2
f55c11b091361536774b436abe86b17f759cd7a66522cd20c7a2190da92db67a findutils-4.2.33_0.tar.bz2
0454c8376cebad7aeb6d732dd21558d4b3cf05377940520a249bd8eb8bc25c61 file-5.44_0.tar.bz2
27103b13dbc6112c2c51907969a44edc24ca3db3aea444e51b9e8d2561c94755 flex-2.5.11_0.tar.bz2
8f84b8af3d6a16312858d1d6b18d0e31f03976e6d1103d0e93b50d1313985db1 flex-2.5.33_0.tar.bz2
000147c1a33feff5c5b4cb10c2cf6c2b2f4ef92a90c9e659b25f1766a83d4afc flex-2.6.4_0.tar.bz2
92fe0ffd0971a40fd98c70b075d5bb12f2d8093ef8fb3333aac2b532bd53a591 gawk-3.0.4_0.tar.bz2
458b64a564ca1ef32ed1c682187caa59743a772210fc51a2bc7f11859bdc98f8 gc-8.0.4_0.tar.bz2
38668df6892e41f7a44e260cec6a5c21bb2bd176b7bada1cd75b55de2a5b40ee gcc-10.4.0_0.tar.bz2
ebbc144e18ca908295845c707f10df82a3337732cc167fcc251b6e6c508d454e gcc-4.0.4_0.tar.bz2
5d3d9bae0069fd4388392b91a47bba4d7ce6733ca9075742ef0d4a4cab899803 gcc-4.0.4_1.tar.bz2
8ab35eceef7dca2f532e254b2b3311f84ebea23f9bedee025806ed5b4513e523 gcc-4.7.4_0.tar.bz2
ef44ca57e0b263bc4caae7c375af8930b4e3cf0c58fec98092678d622e37a4a6 gcc-4.7.4_0.tar.bz2
99891d9413e7d3923bd1466d1bb24fdad5c0b41735a4b614d4029ec9512df0c9 gettext-0.21_0.tar.bz2
8906ece680934b78ea0fb5f950595b6480b8fbd06481039547ec7a370cb6e6bf gmp-6.2.1_0.tar.bz2
3fd7b8e71183060864420479bd36a6853119c4eae5568672838cae23b7dc1050 gperf-3.1_0.tar.bz2
d39ef0324c447d4a2a2caba235dd56ef4931f467fe688fd222b08febc7a07d2a gperf-3.1_0.tar.bz2
390840f2bc9c2a3196c28e06f8650f408e33b5d4ffe5539e174682ed13960bc9 grep-2.4_0.tar.bz2
2bf89c0140ff98c44812fd6793cc5fb7a70391394d45b1893c56650ff6f04543 grep-3.7_0.tar.bz2
82c33928cfcf83746d73505560ade7dad6e133a431a3bb816123806630889a55 guile-3.0.7_0.tar.bz2
14de36d2edfbcca89810510b04a9060750ef1b68fdfbf6a7d28703aa96672504 grep-3.7_0.tar.bz2
e7abb6c187a8add06858bce97f693756757f8271d0e7dce92cb57b961fdc617c guile-3.0.7_0.tar.bz2
2b28d723aa804bd6f898483994be21b7289d365be12976062f494dba4f31e195 help2man-1.36.4_0.tar.bz2
2ef01fe7252be680382bee5df890ad3f6dae26744104ccdaa2d1236bc19ab44a kbd-1.15_0.tar.bz2
ca060691a62d9a4e56406aa984c6fcc60db718e0f953991a961c4fe2b18cf04f kexec-tools-2.0.22_0.tar.bz2
@ -67,10 +69,10 @@ e479b8ba2e13081bf31a416c463be98feb3f747630418de7ed40f309005c3412 libatomic_ops-
fcf30550a8e84be824fd2296a7964c404cb54e9df2f31af484a504342342c0fe libffi-3.3_0.tar.bz2
680f574536735dd9519e8d9505872df1396daaea319e669ebb55ab8b53958915 libtool-1.4_0.tar.bz2
a153fe22c4cd96b95e870edc351bee3bff8e6419f33b8a6b0ff81010cf786df0 libtool-2.2.4_0.tar.bz2
f0948ab4f1172cd4a8a23192898ca0c871574a5c7a0673abb88ef03000278459 libtool-2.4.7_0.tar.bz2
1896a7a093a0eb6665cc022d42ed3fbab16a1c627522ed679753ea010edd46a5 libtool-2.4.7_0.tar.bz2
564fcf89cb762b99e58dddb39c3812084a701447209bd4cf0dc06661e337c265 libunistring-0.9.10_0.tar.bz2
1d07aaf7049be45853fd409340cdb52bb3a1b6dfa4dbc8b69358c1ee966cd67f linux-4.9.10_0.tar.bz2
61507b58074a3742191b606f9415f79406e5daa693ab4ba4a4543897696628ea linux-headers-5.10.41_0.tar.bz2
2fd5bec0c086cb89596f14894cbf078b3d1e990d297ba02b6cc4135e7d64996b linux-headers-5.10.41_0.tar.bz2
5cda10550198e613c426e45c5fffe0f7e8761296e7339e9e9a1f9da995b4865a m4-1.4.7_0.tar.bz2
c4fc071e0911a01efae11b8735c8e69a8963d9a545befffd01486de7589b201a make-3.82_0.tar.bz2
47470be468d66a85e71cbecbbf22038260c6e91408105ba0684c3ee61b39085f make-4.2.1_0.tar.bz2
@ -80,7 +82,7 @@ cfcbd78bd4818a3543e0f63659640472e3307746d4c894676bc21e72e9d30717 musl-1.1.24_0.
d336f2c1999ec74b36062d48b70d47593cc12f6273d54d19eae26859f9feaebe musl-1.1.24_1.tar.bz2
63dbcae0202f1546d0c7e9dfa168f8b28c0c6bd9fc44573f0f2c9f899743b77b musl-1.1.24_2.tar.bz2
969a1b9467308de7546bcec8c149f1cfa5c9abf0a4b2f86b9724e75ada220c24 musl-1.2.3_0.tar.bz2
3a5f71d735239e56cfc6d7d0a8a5ba1540958a1a552d2af25bcd9ad055082130 musl-1.2.3_1.tar.bz2
6a82830b3e27ed1b3b1e5228537491946ded389e52aca01e417d10a908220f8d musl-1.2.3_1.tar.bz2
94cda4ceabe2313f57e067a3f4324c4f40ecdcb69e8a8e2669a6b65ef4b82fb5 openssl-1.1.1l_0.tar.bz2
028d6ed9f0a41b275d763964313b88f58e944b72d8a7d45c72f5ef7b2e64fa92 patch-2.7.6_0.tar.bz2
75fffc4bb14f14281bc1853455888d1d818b7027efc1e4014af1a755771a64e8 perl-5.000_0.tar.bz2
@ -91,19 +93,19 @@ d336f2c1999ec74b36062d48b70d47593cc12f6273d54d19eae26859f9feaebe musl-1.1.24_1.
23ea39db272dcbbeedf2ea6e758052228b0a764be462c0562339b58ae472d83d perl5.004-05_0.tar.bz2
041aed738c039a8c437c6d29530fe44f55bd5fc9ac2bb54f793f6fe3a9df16fd perl5.005-03_0.tar.bz2
abe4b7bb3a66ae5b7f0dfdbaeb1c28717115f5a49bc52e429739227adfec3fbf pkg-config-0.29.2_0.tar.bz2
a04ac45d76a5432aa1f1492ec8787dd2834212568f95f65b17f7640892504458 python-2.0.1_0.tar.bz2
bd94e4a3a5d1af32056f096d01982ed36498f75fdc06cff3aa8db8a4917cf0b0 python-2.0.1_1.tar.bz2
9817dd53e93c270836ee7b452a91dc0ceffdb766e572d87ae3cec8b5d2b8e5bf python-2.3.7_0.tar.bz2
fb79e89cca947ef64a6a2217e2940d196eea8e6f08ba39495809cbda29cfc94f python-2.3.7_1.tar.bz2
de91c470e975d9a20d6d427600ed2862c8ca21a31fbaf5c056af7ce930fe04af python-2.5.6_0.tar.bz2
c97b05d20c257b2916235a75b031710799e1a3be52b0604a7c30c857374de6e3 python-3.11.1_0.tar.bz2
8ef30e614c73110210615233a14436585a9510af7e69865cc0a5ec7603f3458d python-3.1.5_0.tar.bz2
fae3711f59bc00492fcca8a9d0055a9d9cddde0e0c521c50c3c312c42d80539e python-3.1.5_1.tar.bz2
24e5c201274012347b7bc93cd1ce55320623766aa963c78e496e7602fea7c6b2 python-3.3.7_0.tar.bz2
cb8876ca5efcb397ee261e757b5415fe3ecdf8c37f19dbc35d6a15459bce612c python-3.4.10_0.tar.bz2
cc3cccfdeac242fb47a59b583d76cfa7e7049de0a37ff593722233c840021afc python-3.8.16_0.tar.bz2
819fbaaeec0e3fe386d399681a414855eacb217e857140e7b50cf8167192e189 python-2.0.1_0.tar.bz2
6fa1ef3f5a1d5307cf94b973c6d739ce7146ed3a6894e026ae675c32ba343136 python-2.0.1_1.tar.bz2
ef683ef8806a7fe79a950d0cfa1d9dad3000a15da5a82a23b9d74283ab6db8c6 python-2.3.7_0.tar.bz2
b1f389271d5b43811e0c602d61fe370c5c988916a40a00b0b746834d17cef27c python-2.3.7_1.tar.bz2
f5107dbe9dfc12ca7260f3f22b1057cea76660fde9015e9584de81192628d186 python-2.5.6_0.tar.bz2
a55f917679334383e990facacc875f71ccc53d38b0d7b32b15288987b198db45 python-3.11.1_0.tar.bz2
721cbac35834a992f5c0c08c3cc23cba241d665a859d13776ed33bb2c66eb582 python-3.1.5_0.tar.bz2
067922f4e43bf68a2c21bd80e0ebea2f33f74e1d0009254a6fb36cc9e9fe6299 python-3.1.5_1.tar.bz2
16348a9dfae0c7673e00efe82b81e71c96df5e3a704db7008fcc98482b4d6e97 python-3.3.7_0.tar.bz2
c4e226de2d3500b15e37db686cd2e81e76921d41a82935f224e6b5dd00aa6c83 python-3.4.10_0.tar.bz2
39360e10e1d9bbb24c22fd99de9cbbb529756260e74e3d390a2243aab735a635 python-3.8.16_0.tar.bz2
8a0248fbf8fe1764580698415cc3628585d4dd054ddf63040f400e18cbaef7a4 sed-4.0.9_0.tar.bz2
177553732a080e25ba5778525743543e9da012122f4ad0d314a425ca87a3c2bd sed-4.8_0.tar.bz2
c304efd11fe7ef01c1e950fad7850365eae7ddfede5a6e188c5482fc35297a99 sed-4.8_0.tar.bz2
40040522e886fbd2634a115651089658d30935ff47f0649b08988cbade8ef418 tar-1.34_0.tar.bz2
8d426edf2e5f4e15f413ea804d34fc48b8e2f25aa63764fa1aa89d2fa8931074 tcc-0.9.27_0.tar.bz2
1ec4d08220131bef47442006e781f9d698c4a353e05352b7c6dc2398c3a1ae56 tcc-0.9.27_1.tar.bz2
@ -111,6 +113,6 @@ cc3cccfdeac242fb47a59b583d76cfa7e7049de0a37ff593722233c840021afc python-3.8.16_
7fb6d95e08fa90ef5d75cd26f650984b18a96bd65465d4be1a50bb097bb30075 tcc-0.9.27_3.tar.bz2
4e27d5af7c7b9c6a38aebbedd09cc62ef7bc9d491afb3fd4c95de6b843423590 texinfo-6.7_0.tar.bz2
058ed60defd254a65046477b5db6431b9aad4455faa1b245952c18e5215ca0e7 util-linux-2.19.1_0.tar.bz2
284d176b39312795bf155b794fc3c02070ff788d19307e926429fa3299faf283 which-2.21_0.tar.bz2
14a193143d32d826bf76b69b016b972f13c0ba686db9b64714bb8c7a20c9ae9b which-2.21_0.tar.bz2
08b846acf75e7777d5b671fe8e1d086fbc95208e4ccac4c214120fcd9df02cba xz-5.0.5_0.tar.bz2
db1439202155e771b37cfdefde179ebbe88a6f25ba4527dc2b979c0cb15b930e zlib-1.2.13_0.tar.bz2

View File

@ -123,6 +123,7 @@ src_configure() {
--disable-64-bit-bfd \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--with-sysroot= \
--srcdir=.
cd ..
done

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -36,7 +36,7 @@ src_install() {
done
# Pick-and-choose asm-generic headers
for i in types ioctl termios termbits ioctls sockios socket; do
for i in types ioctl termios termbits ioctls sockios socket param; do
cp "${DESTDIR}${PREFIX}/include/asm-generic/${i}.h" "${DESTDIR}${PREFIX}/include/asm/${i}.h"
done

View File

@ -76,6 +76,7 @@ src_configure() {
--program-prefix="" \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--with-sysroot= \
--srcdir=.
cd ..
done

View File

@ -0,0 +1,17 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-3.0-or-later
In new gettext external is required for AM_GNU_GETTEXT.
--- intl/configure.ac 2023-02-07 18:57:56.350832016 +1100
+++ intl/configure.ac 2023-02-07 18:58:07.310054484 +1100
@@ -4,7 +4,7 @@
AC_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR(../config)
AM_GNU_GETTEXT_VERSION(0.12.1)
-AM_GNU_GETTEXT([], [need-ngettext])
+AM_GNU_GETTEXT([external], [need-ngettext])
# This replaces the extensive use of DEFS in the original Makefile.in.
AC_DEFINE(IN_LIBINTL, 1, [Define because this is libintl.])

16
sysc/file-5.44/file-5.44.sh Executable file
View File

@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
AUTOMAKE=automake-1.11 ACLOCAL=aclocal-1.11 autoreconf-2.64 -fi
}
src_configure() {
CFLAGS="-std=gnu99" \
./configure --prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--disable-shared
}

1
sysc/file-5.44/sources Normal file
View File

@ -0,0 +1 @@
http://ftp.astron.com/pub/file/file-5.44.tar.gz 3751c7fba8dbc831cb8d7cc8aff21035459b8ce5155ef8b0880a27d028475f3b

115
sysc/gcc-10.4.0/gcc-10.4.0.sh Executable file
View File

@ -0,0 +1,115 @@
# 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
}
src_install() {
default
# Reduce final size of GCC 10.
find "${DESTDIR}" -type f | while read f; do
case "$(file -bi "${f}")" in
application/x-executable*|\
application/x-sharedlib*|\
application/x-pie-executable*|\
application/x-archive*)
strip "${f}"
;;
esac
done
}

View File

@ -0,0 +1,37 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2022 Thomas Schwinge <thomas@codesourcery.com>
SPDX-License-Identifier: GPL-3.0-or-later
Backport of commit 25861cf3a88a07c8dca3fb32d098c0ad756bbe38
====
[PATCH] Make 'autoreconf' work for 'gcc', 'libobjc'
With that, we may then run plain 'autoreconf' for all of GCC's subpackages,
instead of for some of those (that don't use Automake) manually having to run
the applicable combination of 'aclocal', 'autoconf', 'autoheader'.
See also 'AC_CONFIG_MACRO_DIRS'/'AC_CONFIG_MACRO_DIR' usage elsewhere.
--- gcc/configure.ac 2023-01-22 16:22:57.833166450 +1100
+++ gcc/configure.ac 2023-01-22 16:23:08.971274603 +1100
@@ -25,6 +25,7 @@
AC_INIT
AC_CONFIG_SRCDIR(tree.c)
+AC_CONFIG_MACRO_DIRS([../config] [..])
AC_CONFIG_HEADER(auto-host.h:config.in)
gcc_version=`cat $srcdir/BASE-VER`
--- libobjc/configure.ac 2023-01-22 16:23:42.648601085 +1100
+++ libobjc/configure.ac 2023-01-22 16:23:28.937468262 +1100
@@ -20,6 +20,7 @@
AC_INIT(package-unused, version-unused,, libobjc)
AC_CONFIG_SRCDIR([objc/objc.h])
+AC_CONFIG_MACRO_DIRS([../config] [..])
GCC_TOPLEV_SUBDIRS
# We need the following definitions because AC_PROG_LIBTOOL relies on them

View File

@ -0,0 +1,25 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-3.0-or-later
Two fold issue.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63966
Pre-5.0 GCC does not have a cpuid.h header installed on the system, so
we use the one from this source tree.
https://stackoverflow.com/questions/22160093/inconsistent-operand-constraints-in-an-asm
Pre-5.0 GCC does not support PIC inline ASM that touches ebx (as
presumably the cpuid call does); so we must disable PIC.
--- libgcc/Makefile.in 2023-01-25 16:03:45.928059755 +1100
+++ 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
# currently being compiled, in both source trees, to be examined as well.
-INCLUDES = -I. -I$(@D) -I$(gcc_objdir) \
+INCLUDES = -I. -I$(@D) -I$(gcc_objdir) -I../../gcc/include -fno-pic \
-I$(srcdir) -I$(srcdir)/$(@D) -I$(srcdir)/../gcc \
-I$(srcdir)/../include $(DECNUMINC)

View File

@ -0,0 +1,120 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2022 Christophe Lyon <christophe.lyon@arm.com>
SPDX-License-Identifier: GPL-3.0-or-later
In our context, some construct has decided that we don't support
XF mode (which is not true for the architecture, in general, as
this patch supports, but is sufficient for our strange environment).
Backport of commit 43ccb7e445329dd9557b42e7289a87a8071ab0f7.
[PATCH] libgcc: Enable XF mode conversions to/from DFP modes only if
supported
Some targets do not support XF mode (eg AArch64), so don't build the
corresponding to/from DFP modes convertion routines if
__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
--- libgcc/config/libbid/_dd_to_xf.c
+++ 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"
+#ifdef __LIBGCC_HAS_XF_MODE__
XFtype
__bid_extendddxf (_Decimal64 x) {
XFtype res;
@@ -34,3 +35,4 @@ __bid_extendddxf (_Decimal64 x) {
res = __bid64_to_binary80 (ux.i);
return (res);
}
+#endif
diff --git libgcc/config/libbid/_sd_to_xf.c libgcc/config/libbid/_sd_to_xf.c
index 9af09913684..288ccb25075 100644
--- libgcc/config/libbid/_sd_to_xf.c
+++ 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"
+#ifdef __LIBGCC_HAS_XF_MODE__
XFtype
__bid_extendsdxf (_Decimal32 x) {
XFtype res;
@@ -34,3 +35,4 @@ __bid_extendsdxf (_Decimal32 x) {
res = __bid32_to_binary80 (ux.i);
return (res);
}
+#endif
diff --git libgcc/config/libbid/_td_to_xf.c libgcc/config/libbid/_td_to_xf.c
index b0c76a71497..e990282162d 100644
--- libgcc/config/libbid/_td_to_xf.c
+++ 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"
+#ifdef __LIBGCC_HAS_XF_MODE__
XFtype
__bid_trunctdxf (_Decimal128 x) {
XFtype res;
@@ -34,3 +35,4 @@ __bid_trunctdxf (_Decimal128 x) {
res = __bid128_to_binary80 (ux.i);
return (res);
}
+#endif
diff --git libgcc/config/libbid/_xf_to_dd.c libgcc/config/libbid/_xf_to_dd.c
index 9feb0f2c3d6..e3246a1c2e1 100644
--- libgcc/config/libbid/_xf_to_dd.c
+++ 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"
+#ifdef __LIBGCC_HAS_XF_MODE__
_Decimal64
__bid_truncxfdd (XFtype x) {
union decimal64 res;
res.i = __binary80_to_bid64 (x);
return (res.d);
}
+#endif
diff --git libgcc/config/libbid/_xf_to_sd.c libgcc/config/libbid/_xf_to_sd.c
index 7d46548af6c..9147e979182 100644
--- libgcc/config/libbid/_xf_to_sd.c
+++ 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"
+#ifdef __LIBGCC_HAS_XF_MODE__
_Decimal32
__bid_truncxfsd (XFtype x) {
union decimal32 res;
res.i = __binary80_to_bid32 (x);
return (res.d);
}
+#endif
diff --git libgcc/config/libbid/_xf_to_td.c libgcc/config/libbid/_xf_to_td.c
index 07987fdcc3a..c8d102b0b7f 100644
--- libgcc/config/libbid/_xf_to_td.c
+++ 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"
+#ifdef __LIBGCC_HAS_XF_MODE__
_Decimal128
__bid_extendxftd (XFtype x) {
union decimal128 res;
res.i = __binary80_to_bid128 (x);
return (res.d);
}
+#endif
--
2.31.1

View File

@ -0,0 +1,17 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-3.0-or-later
In new gettext external is required for AM_GNU_GETTEXT.
--- intl/configure.ac 2023-02-07 18:43:58.989786230 +1100
+++ 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)
AM_GNU_GETTEXT_VERSION(0.12.1)
-AM_GNU_GETTEXT([], [need-ngettext])
+AM_GNU_GETTEXT([external], [need-ngettext])
# This replaces the extensive use of DEFS in the original Makefile.in.
AC_DEFINE(IN_LIBINTL, 1, [Define because this is libintl.])

View File

@ -0,0 +1,18 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-3.0-or-later
GCC 4.7 doesn't have fisolate-erroneous-paths-dereference. Hence
this line does nothing.
--- libgcc/generic-morestack.c 2023-01-25 16:52:35.382471998 +1100
+++ 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/>. */
-#pragma GCC optimize ("no-isolate-erroneous-paths-dereference")
-
/* powerpc 32-bit not supported. */
#if !defined __powerpc__ || defined __powerpc64__

1
sysc/gcc-10.4.0/sources Normal file
View File

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

View File

@ -1,6 +1,6 @@
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
# SPDX-License-Identifier: GPL-3.0-or-later
@ -104,7 +104,8 @@ src_configure() {
--disable-shared \
--program-transform-name= \
--enable-languages=c,c++ \
--disable-sjlj-exceptions
--disable-sjlj-exceptions \
--with-system-zlib
cd ..
done
cd ..

View File

@ -0,0 +1,21 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-3.0-or-later
In GCC 10, fself-test is run on every GCC used in the
build process to ensure correctness. However this is not
yet introduced in GCC 4.7, so we no-op it.
--- gcc/common.opt 2023-01-23 21:22:23.630919284 +1100
+++ gcc/common.opt 2023-01-23 21:23:33.030143958 +1100
@@ -1701,6 +1701,10 @@
Common Report Var(flag_selective_scheduling2) Optimization
Run selective scheduling after reload
+fself-test=
+Common Undocumented Joined Var(flag_self_test)
+Run no-op self-tests.
+
fsel-sched-pipelining
Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
Perform software pipelining of inner loops during selective scheduling

View File

@ -0,0 +1,45 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2014 Joseph Myers <joseph@codesourcery.com>
SPDX-License-Identifier: GPL-3.0-or-later
GCC 10 uses a variety of compiler builtin macros in libgcc.
These macros do not exist in GCC 4.7, so we add them in.
(Taken straight from GCC 10).
(We could -D them in GCC 10, but this is a simpler unobtrusive
solution, and is arguably more correct).
--- gcc/c-family/c-cppbuiltin.c 2023-01-25 16:56:44.122222376 +1100
+++ gcc/c-family/c-cppbuiltin.c 2023-01-25 17:01:52.500855016 +1100
@@ -850,6 +850,30 @@
builtin_define_with_int_value ("__LIBGCC_TRAMPOLINE_SIZE__",
TRAMPOLINE_SIZE);
+ /* For libgcc unwinder code. */
+#ifdef DONT_USE_BUILTIN_SETJMP
+ cpp_define (pfile, "__LIBGCC_DONT_USE_BUILTIN_SETJMP__");
+#endif
+#ifdef DWARF_ALT_FRAME_RETURN_COLUMN
+ builtin_define_with_int_value ("__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__",
+ DWARF_ALT_FRAME_RETURN_COLUMN);
+#endif
+ builtin_define_with_int_value ("__LIBGCC_DWARF_FRAME_REGISTERS__",
+ DWARF_FRAME_REGISTERS);
+#ifdef EH_RETURN_STACKADJ_RTX
+ cpp_define (pfile, "__LIBGCC_EH_RETURN_STACKADJ_RTX__");
+#endif
+#ifdef JMP_BUF_SIZE
+ builtin_define_with_int_value ("__LIBGCC_JMP_BUF_SIZE__",
+ JMP_BUF_SIZE);
+#endif
+ builtin_define_with_int_value ("__LIBGCC_STACK_POINTER_REGNUM__",
+ STACK_POINTER_REGNUM);
+
+ /* For libgcov. */
+ builtin_define_with_int_value ("__LIBGCC_VTABLE_USES_DESCRIPTORS__",
+ TARGET_VTABLE_USES_DESCRIPTORS);
+
/* For use in assembly language. */
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);

View File

@ -0,0 +1,286 @@
SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
SPDX-FileCopyrightText: 2012 H.J. Lu <hongjiu.lu@intel.com>
SPDX-License-Identifier: GPL-3.0-or-later
Backport of the commit:
[PATCH] Add -mlong-double-64/-mlong-double-80 to i386
to GCC 4.7.
GCC 10 uses this argument to ensure some files are compiled with long
double length = 80. This is almost universally true for i386, so it
could be patched out; but the use of this flag is rather extensive,
and if removed will break future added architectures anyway, so it
makes more sense to simply add in support to GCC 4.7.
diff --git gcc/config/i386/i386-c.c gcc/config/i386/i386-c.c
index d00e0ba54b939..edd64ff7ae388 100644
--- gcc/config/i386/i386-c.c
+++ gcc/config/i386/i386-c.c
@@ -418,6 +418,9 @@
builtin_define_std ("i386");
}
+ if (TARGET_LONG_DOUBLE_64)
+ cpp_define (parse_in, "__LONG_DOUBLE_64__");
+
ix86_target_macros_internal (ix86_isa_flags,
ix86_arch,
ix86_tune,
diff --git gcc/config/i386/i386.c gcc/config/i386/i386.c
index a6fc45b047a94..da931ee153745 100644
--- gcc/config/i386/i386.c
+++ gcc/config/i386/i386.c
@@ -2786,6 +2786,7 @@ ix86_target_string (HOST_WIDE_INT isa, int flags, const char *arch,
static struct ix86_target_opts flag_opts[] =
{
{ "-m128bit-long-double", MASK_128BIT_LONG_DOUBLE },
+ { "-mlong-double-64", MASK_LONG_DOUBLE_64 },
{ "-m80387", MASK_80387 },
{ "-maccumulate-outgoing-args", MASK_ACCUMULATE_OUTGOING_ARGS },
{ "-malign-double", MASK_ALIGN_DOUBLE },
@@ -4084,6 +4085,11 @@ ix86_option_override_internal (bool main_args_p)
else if (target_flags_explicit & MASK_RECIP)
recip_mask &= ~(RECIP_MASK_ALL & ~recip_mask_explicit);
+ /* Default long double to 64-bit for Bionic. */
+ if (TARGET_HAS_BIONIC
+ && !(target_flags_explicit & MASK_LONG_DOUBLE_64))
+ target_flags |= MASK_LONG_DOUBLE_64;
+
/* Save the initial options in case the user does function specific
options. */
if (main_args_p)
diff --git gcc/config/i386/i386.h gcc/config/i386/i386.h
index 11f79e3f670af..3a41a43e308bf 100644
--- gcc/config/i386/i386.h
+++ gcc/config/i386/i386.h
@@ -671,9 +671,17 @@ enum target_cpu_default
#define LONG_LONG_TYPE_SIZE 64
#define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 64
-#define LONG_DOUBLE_TYPE_SIZE 80
+#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_64 ? 64 : 80)
-#define WIDEST_HARDWARE_FP_SIZE LONG_DOUBLE_TYPE_SIZE
+/* Define this to set long double type size to use in libgcc2.c, which can
+ not depend on target_flags. */
+#ifdef __LONG_DOUBLE_64__
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
+#else
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 80
+#endif
+
+#define WIDEST_HARDWARE_FP_SIZE 80
#if defined (TARGET_BI_ARCH) || TARGET_64BIT_DEFAULT
#define MAX_BITS_PER_WORD 64
diff --git gcc/config/i386/i386.opt gcc/config/i386/i386.opt
index e4f78f3ce50f3..6a389947d904e 100644
--- gcc/config/i386/i386.opt
+++ gcc/config/i386/i386.opt
@@ -86,6 +86,14 @@ m96bit-long-double
Target RejectNegative Report InverseMask(128BIT_LONG_DOUBLE) Save
sizeof(long double) is 12
+mlong-double-80
+Target Report RejectNegative InverseMask(LONG_DOUBLE_64) Save
+Use 80-bit long double
+
+mlong-double-64
+Target Report RejectNegative Mask(LONG_DOUBLE_64) Save
+Use 64-bit long double
+
maccumulate-outgoing-args
Target Report Mask(ACCUMULATE_OUTGOING_ARGS) Save
Reserve space for outgoing arguments in the function prologue
diff --git gcc/testsuite/gcc.target/i386/long-double-64-1.c gcc/testsuite/gcc.target/i386/long-double-64-1.c
new file mode 100644
index 0000000000000..cf933796f8aea
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-64-1.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mlong-double-64" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler-not "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-64-2.c gcc/testsuite/gcc.target/i386/long-double-64-2.c
new file mode 100644
index 0000000000000..ddf4fe656d099
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-64-2.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options "-O2 -mbionic" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler-not "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-64-3.c gcc/testsuite/gcc.target/i386/long-double-64-3.c
new file mode 100644
index 0000000000000..e748fab2edd3c
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-64-3.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options "-O2 -mandroid" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler-not "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-64-4.c gcc/testsuite/gcc.target/i386/long-double-64-4.c
new file mode 100644
index 0000000000000..d9c25aaec080c
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-64-4.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mlong-double-80 -mlong-double-64" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler-not "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-80-1.c gcc/testsuite/gcc.target/i386/long-double-80-1.c
new file mode 100644
index 0000000000000..d3b75a0be21de
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-1.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mlong-double-80" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-80-2.c gcc/testsuite/gcc.target/i386/long-double-80-2.c
new file mode 100644
index 0000000000000..954dfd15d4271
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-2.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options "-O2 -mlong-double-80 -mbionic" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-80-3.c gcc/testsuite/gcc.target/i386/long-double-80-3.c
new file mode 100644
index 0000000000000..e0e8365e32c4a
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-3.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options "-O2 -mlong-double-80 -mandroid" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-80-4.c gcc/testsuite/gcc.target/i386/long-double-80-4.c
new file mode 100644
index 0000000000000..cac2d55bc166c
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-4.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mlong-double-64 -mlong-double-80" } */
+
+long double
+foo (long double x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-80-5.c gcc/testsuite/gcc.target/i386/long-double-80-5.c
new file mode 100644
index 0000000000000..4aa606fd1ba05
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-5.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mlong-double-64" } */
+
+__float80
+foo (__float80 x)
+{
+ return x * x;
+}
+
+/* { dg-final { scan-assembler "fldt" } } */
diff --git gcc/testsuite/gcc.target/i386/long-double-80-6.c gcc/testsuite/gcc.target/i386/long-double-80-6.c
new file mode 100644
index 0000000000000..a395a265942c1
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-6.c
@@ -0,0 +1,11 @@
+/* { dg-do run } */
+/* { dg-options "-O0 -mlong-double-64 -mfpmath=387" } */
+
+int
+main ()
+{
+ __float80 a = -0.23456789;
+ if ((double) a >= 0)
+ __builtin_abort ();
+ return 0;
+}
diff --git gcc/testsuite/gcc.target/i386/long-double-80-7.c gcc/testsuite/gcc.target/i386/long-double-80-7.c
new file mode 100644
index 0000000000000..9b30fe8856786
--- /dev/null
+++ gcc/testsuite/gcc.target/i386/long-double-80-7.c
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+/* { dg-options "-O0 -mlong-double-64 -mfpmath=sse" } */
+/* { dg-require-effective-target sse2 } */
+
+#include "sse2-check.h"
+
+static void
+sse2_test (void)
+{
+ __float80 a = -0.23456789;
+ if ((double) a >= 0)
+ __builtin_abort ();
+}
diff --git libgcc/config/i386/t-linux libgcc/config/i386/t-linux
index 29b4c22398346..4f47f7bfa59cf 100644
--- libgcc/config/i386/t-linux
+++ libgcc/config/i386/t-linux
@@ -2,3 +2,5 @@
# Need to support TImode for x86. Override the settings from
# t-slibgcc-elf-ver and t-linux
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
+
+HOST_LIBGCC2_CFLAGS += -mlong-double-80

View File

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2022 Dor Askayo <dor.askayo@gmail.com>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@ -24,6 +25,12 @@ src_install() {
mkdir -p "${DESTDIR}${PREFIX}/lib"
ln -sr "${DESTDIR}${LIBDIR}/libc.so" "${DESTDIR}${PREFIX}/lib/ld-musl-i386.so.1"
# Make startup objects available in /usr/lib
# Expected by GCC 10+
for i in crt1.o crti.o crtn.o Scrt1.o rcrt1.o; do
ln -sr "${DESTDIR}${LIBDIR}/${i}" "${DESTDIR}${PREFIX}/lib/${i}"
done
# Add symlink for ldd
mkdir -p "${DESTDIR}${PREFIX}/bin"
ln -s ../lib/ld-musl-i386.so.1 "${DESTDIR}${PREFIX}/bin/ldd"

View File

@ -1,7 +1,7 @@
#!/bin/bash
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
#
@ -26,6 +26,8 @@ build xz-5.0.5
build automake-1.11.2
build file-5.44
build libtool-2.4.7
build autoconf-2.69
@ -128,6 +130,8 @@ build python-3.8.16
build python-3.11.1
build gcc-10.4.0
if [ "$FORCE_TIMESTAMPS" = True ] ; then
echo 'Forcing all files timestamps to be 0 unix time.'
canonicalise_all_files_timestamp