commit
4b5b037718
16
parts.rst
16
parts.rst
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -123,6 +123,7 @@ src_configure() {
|
|||
--disable-64-bit-bfd \
|
||||
--prefix="${PREFIX}" \
|
||||
--libdir="${LIBDIR}" \
|
||||
--with-sysroot= \
|
||||
--srcdir=.
|
||||
cd ..
|
||||
done
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -76,6 +76,7 @@ src_configure() {
|
|||
--program-prefix="" \
|
||||
--prefix="${PREFIX}" \
|
||||
--libdir="${LIBDIR}" \
|
||||
--with-sysroot= \
|
||||
--srcdir=.
|
||||
cd ..
|
||||
done
|
||||
|
|
|
@ -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.])
|
|
@ -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
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
http://ftp.astron.com/pub/file/file-5.44.tar.gz 3751c7fba8dbc831cb8d7cc8aff21035459b8ce5155ef8b0880a27d028475f3b
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
|
@ -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.])
|
|
@ -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__
|
||||
|
|
@ -0,0 +1 @@
|
|||
http://ftp.gnu.org/gnu/gcc/gcc-10.4.0/gcc-10.4.0.tar.xz c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1
|
|
@ -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 ..
|
||||
|
|
|
@ -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
|
|
@ -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);
|
|
@ -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
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue