logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: dfb3ae04e232d4001ebb601c8f93b4918811529a
parent 1ada7a101ebc381ee2336e4dc2da52987aaf5258
Author: Samuel Tyler <fosslinux@aussies.space>
Date:   Fri,  7 Feb 2025 16:48:02 +1100

Merge pull request #496 from fosslinux/gcc-fixes

GCC fixes: Updates & Regenerations

Diffstat:

Mparts.rst2+-
Msteps/SHA256SUMS.pkgs30+++++++++++++++---------------
Dsteps/gcc-10.4.0/pass1.sh100-------------------------------------------------------------------------------
Dsteps/gcc-10.4.0/patches/fix-autoreconf.patch37-------------------------------------
Dsteps/gcc-10.4.0/patches/includes.patch25-------------------------
Dsteps/gcc-10.4.0/patches/libgcc-xfmode.patch120-------------------------------------------------------------------------------
Dsteps/gcc-10.4.0/patches/new-gettext.patch17-----------------
Dsteps/gcc-10.4.0/patches/no-isolate-erroneous-paths-dereference.patch18------------------
Dsteps/gcc-10.4.0/sources1-
Asteps/gcc-10.5.0/files/decDPD.h.preamble2++
Asteps/gcc-10.5.0/files/decDPD_generate.c2++
Asteps/gcc-10.5.0/pass1.sh193+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asteps/gcc-10.5.0/patches/fix-autoreconf.patch37+++++++++++++++++++++++++++++++++++++
Asteps/gcc-10.5.0/patches/includes.patch25+++++++++++++++++++++++++
Asteps/gcc-10.5.0/patches/libgcc-xfmode.patch120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asteps/gcc-10.5.0/patches/new-gettext.patch17+++++++++++++++++
Asteps/gcc-10.5.0/patches/no-isolate-erroneous-paths-dereference.patch18++++++++++++++++++
Asteps/gcc-10.5.0/sources1+
Dsteps/gcc-13.1.0/pass1.sh99-------------------------------------------------------------------------------
Dsteps/gcc-13.1.0/patches/new-gettext.patch17-----------------
Dsteps/gcc-13.1.0/sources1-
Asteps/gcc-13.3.0/files/decDPD.h.preamble2++
Asteps/gcc-13.3.0/files/decDPD_generate.c2++
Asteps/gcc-13.3.0/pass1.sh228+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asteps/gcc-13.3.0/patches/new-gettext.patch17+++++++++++++++++
Asteps/gcc-13.3.0/sources1+
Msteps/gcc-4.0.4/pass1.sh13++++++++++---
Msteps/gcc-4.0.4/pass2.sh11++++++++++-
Asteps/gcc-4.7.4/files/decDPD.h.preamble59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asteps/gcc-4.7.4/files/decDPD_generate.c228+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msteps/gcc-4.7.4/pass1.sh83++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
Msteps/manifest4++--
32 files changed, 1068 insertions(+), 462 deletions(-)

diff --git a/parts.rst b/parts.rst @@ -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 diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs @@ -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 diff --git a/steps/gcc-10.4.0/pass1.sh b/steps/gcc-10.4.0/pass1.sh @@ -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 -} diff --git a/steps/gcc-10.4.0/patches/fix-autoreconf.patch b/steps/gcc-10.4.0/patches/fix-autoreconf.patch @@ -1,37 +0,0 @@ -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-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 -@@ -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` ---- 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 -@@ -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 diff --git a/steps/gcc-10.4.0/patches/includes.patch b/steps/gcc-10.4.0/patches/includes.patch @@ -1,25 +0,0 @@ -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. - ---- 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 -@@ -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) - diff --git a/steps/gcc-10.4.0/patches/libgcc-xfmode.patch b/steps/gcc-10.4.0/patches/libgcc-xfmode.patch @@ -1,120 +0,0 @@ -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 ---- gcc-10.4.0/libgcc/config/libbid/_dd_to_xf.c -+++ gcc-10.4.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" - -+#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 ---- gcc-10.4.0/libgcc/config/libbid/_sd_to_xf.c -+++ gcc-10.4.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" - -+#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 ---- gcc-10.4.0/libgcc/config/libbid/_td_to_xf.c -+++ gcc-10.4.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" - -+#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 ---- gcc-10.4.0/libgcc/config/libbid/_xf_to_dd.c -+++ gcc-10.4.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" - -+#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 ---- gcc-10.4.0/libgcc/config/libbid/_xf_to_sd.c -+++ gcc-10.4.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" - -+#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 ---- gcc-10.4.0/libgcc/config/libbid/_xf_to_td.c -+++ gcc-10.4.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" - -+#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 - diff --git a/steps/gcc-10.4.0/patches/new-gettext.patch b/steps/gcc-10.4.0/patches/new-gettext.patch @@ -1,17 +0,0 @@ -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. - ---- 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 -@@ -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.]) diff --git a/steps/gcc-10.4.0/patches/no-isolate-erroneous-paths-dereference.patch b/steps/gcc-10.4.0/patches/no-isolate-erroneous-paths-dereference.patch @@ -1,18 +0,0 @@ -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. - ---- 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 -@@ -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__ - diff --git a/steps/gcc-10.4.0/sources b/steps/gcc-10.4.0/sources @@ -1 +0,0 @@ -http://mirrors.kernel.org/gnu/gcc/gcc-10.4.0/gcc-10.4.0.tar.xz c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1 diff --git a/steps/gcc-10.5.0/files/decDPD.h.preamble b/steps/gcc-10.5.0/files/decDPD.h.preamble @@ -0,0 +1 @@ +../../gcc-4.7.4/files/decDPD.h.preamble +\ No newline at end of file diff --git a/steps/gcc-10.5.0/files/decDPD_generate.c b/steps/gcc-10.5.0/files/decDPD_generate.c @@ -0,0 +1 @@ +../../gcc-4.7.4/files/decDPD_generate.c +\ No newline at end of file diff --git a/steps/gcc-10.5.0/pass1.sh b/steps/gcc-10.5.0/pass1.sh @@ -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 +} diff --git a/steps/gcc-10.5.0/patches/fix-autoreconf.patch b/steps/gcc-10.5.0/patches/fix-autoreconf.patch @@ -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-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 + AC_CONFIG_SRCDIR(tree.c) ++AC_CONFIG_MACRO_DIRS([../config] [..]) + AC_CONFIG_HEADER(auto-host.h:config.in) + + gcc_version=`cat $srcdir/BASE-VER` +--- 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) + 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 diff --git a/steps/gcc-10.5.0/patches/includes.patch b/steps/gcc-10.5.0/patches/includes.patch @@ -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. + +--- 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 + # 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) + diff --git a/steps/gcc-10.5.0/patches/libgcc-xfmode.patch b/steps/gcc-10.5.0/patches/libgcc-xfmode.patch @@ -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 +--- 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" + ++#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 +--- 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" + ++#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 +--- 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" + ++#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 +--- 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" + ++#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 +--- 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" + ++#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 +--- 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" + ++#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 + diff --git a/steps/gcc-10.5.0/patches/new-gettext.patch b/steps/gcc-10.5.0/patches/new-gettext.patch @@ -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. + +--- 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) + 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.]) diff --git a/steps/gcc-10.5.0/patches/no-isolate-erroneous-paths-dereference.patch b/steps/gcc-10.5.0/patches/no-isolate-erroneous-paths-dereference.patch @@ -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. + +--- 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/>. */ + +-#pragma GCC optimize ("no-isolate-erroneous-paths-dereference") +- + /* powerpc 32-bit not supported. */ + #if !defined __powerpc__ || defined __powerpc64__ + diff --git a/steps/gcc-10.5.0/sources b/steps/gcc-10.5.0/sources @@ -0,0 +1 @@ +http://ftp.gnu.org/gnu/gcc/gcc-10.5.0/gcc-10.5.0.tar.xz 25109543fdf46f397c347b5d8b7a2c7e5694a5a51cce4b9c6e1ea8a71ca307c1 diff --git a/steps/gcc-13.1.0/pass1.sh b/steps/gcc-13.1.0/pass1.sh @@ -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" -} diff --git a/steps/gcc-13.1.0/patches/new-gettext.patch b/steps/gcc-13.1.0/patches/new-gettext.patch @@ -1,17 +0,0 @@ -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. - ---- 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 -@@ -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.]) diff --git a/steps/gcc-13.1.0/sources b/steps/gcc-13.1.0/sources @@ -1 +0,0 @@ -https://mirrors.kernel.org/gnu/gcc/gcc-13.1.0/gcc-13.1.0.tar.xz 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 diff --git a/steps/gcc-13.3.0/files/decDPD.h.preamble b/steps/gcc-13.3.0/files/decDPD.h.preamble @@ -0,0 +1 @@ +../../gcc-10.5.0/files/decDPD.h.preamble +\ No newline at end of file diff --git a/steps/gcc-13.3.0/files/decDPD_generate.c b/steps/gcc-13.3.0/files/decDPD_generate.c @@ -0,0 +1 @@ +../../gcc-10.5.0/files/decDPD_generate.c +\ No newline at end of file diff --git a/steps/gcc-13.3.0/pass1.sh b/steps/gcc-13.3.0/pass1.sh @@ -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" +} diff --git a/steps/gcc-13.3.0/patches/new-gettext.patch b/steps/gcc-13.3.0/patches/new-gettext.patch @@ -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. + +--- 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) + 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.]) diff --git a/steps/gcc-13.3.0/sources b/steps/gcc-13.3.0/sources @@ -0,0 +1 @@ +https://mirrors.kernel.org/gnu/gcc/gcc-13.3.0/gcc-13.3.0.tar.xz 0845e9621c9543a13f484e94584a49ffc0129970e9914624235fc1d061a0c083 diff --git a/steps/gcc-4.0.4/pass1.sh b/steps/gcc-4.0.4/pass1.sh @@ -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 diff --git a/steps/gcc-4.0.4/pass2.sh b/steps/gcc-4.0.4/pass2.sh @@ -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 diff --git a/steps/gcc-4.7.4/files/decDPD.h.preamble b/steps/gcc-4.7.4/files/decDPD.h.preamble @@ -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. */ +/* ------------------------------------------------------------------------ */ diff --git a/steps/gcc-4.7.4/files/decDPD_generate.c b/steps/gcc-4.7.4/files/decDPD_generate.c @@ -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"); + } +} diff --git a/steps/gcc-4.7.4/pass1.sh b/steps/gcc-4.7.4/pass1.sh @@ -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() { diff --git a/steps/manifest b/steps/manifest @@ -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