Finally,
gcc-10.3.0!
Thanks to
@barracuda156 for the pointers, iains for the porting work, and the MacPorts team for a few patches!
A few
./configure details of
note:
Code:
--enable-languages=c,c++,objc,obj-c++,fortran \
--enable-lto \
Additionally, I created a mechanism to just install the just run-time libraries without actually installing the compilers, so that users who just want to install something which was built with a recent compiler don't have to pull in the entire toolchain.
So now, instead of installing gcc-10.3.0 (or gcc-4.9.4), you can instead install gcc-libs-10.3.0 (or gcc-libs-4.9.4).
Here's a comparison of the size difference:
Installing gcc-libs-10.3.0:
Code:
$ tiger.sh gcc-libs-10.3.0
Installing gcc-libs-10.3.0.
Fetching install-gcc-libs-10.3.0.sh.
Unpacking gcc-libs-10.3.0.tiger.g3.tar.gz into /opt.
31.6MiB 0:00:35 [ 898KiB/s] [================================>] 100%
macuser@imacg3(tiger)$ ls -l /opt/
total 8
lrwxr-xr-x 1 macuser admin 15 Feb 19 01:03 gcc-10.3.0 -> gcc-libs-10.3.0
drwxr-xr-x 4 macuser admin 136 Feb 19 01:03 gcc-libs-10.3.0
drwxr-xr-x 3 macuser admin 102 Feb 19 00:41 tiger.sh
drwxr-xr-x 5 macuser admin 170 Feb 18 09:31 tigersh-deps-0.1
macuser@imacg3(tiger)$ du -sh /opt /opt/*
118M /opt
4.0K /opt/gcc-10.3.0
113M /opt/gcc-libs-10.3.0
36K /opt/tiger.sh
4.5M /opt/tigersh-deps-0.1
...vs installing gcc-10.3.0
Code:
macuser@imacg3(tiger)$ rm -rf /opt/gcc-*
macuser@imacg3(tiger)$ tiger.sh gcc-10.3.0
Installing gcc-10.3.0.
Fetching install-gcc-10.3.0.sh.
Installing gmp-6.2.1.
Fetching install-gmp-6.2.1.sh.
Installing gcc-libs-4.9.4.
Fetching install-gcc-libs-4.9.4.sh.
Unpacking gcc-libs-4.9.4.tiger.g3.tar.gz into /opt.
13.0MiB 0:00:14 [ 896KiB/s] [================================>] 100%
Unpacking gmp-6.2.1.tiger.g3.tar.gz into /opt.
718KiB 0:00:01 [ 692KiB/s] [================================>] 100%
Installing mpfr-4.1.0.
Fetching install-mpfr-4.1.0.sh.
Unpacking mpfr-4.1.0.tiger.g3.tar.gz into /opt.
647KiB 0:00:00 [ 717KiB/s] [================================>] 100%
Installing mpc-1.2.1.
Fetching install-mpc-1.2.1.sh.
Unpacking mpc-1.2.1.tiger.g3.tar.gz into /opt.
143KiB 0:00:00 [ 341KiB/s] [================================>] 100%
Installing isl-0.24.
Fetching install-isl-0.24.sh.
Unpacking isl-0.24.tiger.g3.tar.gz into /opt.
2.39MiB 0:00:03 [ 808KiB/s] [================================>] 100%
Unpacking gcc-10.3.0.tiger.g3.tar.gz into /opt.
108MiB 0:02:03 [ 894KiB/s] [================================>] 100%
Linking gcc-10.3.0 into /usr/local.
...
macuser@imacg3(tiger)$ ls -l /opt/
total 8
drwxr-xr-x 7 macuser admin 238 Feb 19 01:06 gcc-10.3.0
lrwxr-xr-x 1 macuser admin 14 Feb 19 01:04 gcc-4.9.4 -> gcc-libs-4.9.4
drwxr-xr-x 4 macuser admin 136 Feb 19 01:04 gcc-libs-4.9.4
drwxr-xr-x 5 macuser admin 170 Feb 19 01:04 gmp-6.2.1
drwxr-xr-x 5 macuser admin 170 Feb 19 01:04 isl-0.24
drwxr-xr-x 5 macuser admin 170 Feb 19 01:04 mpc-1.2.1
drwxr-xr-x 5 macuser admin 170 Feb 19 01:04 mpfr-4.1.0
drwxr-xr-x 3 macuser admin 102 Feb 19 00:41 tiger.sh
drwxr-xr-x 5 macuser admin 170 Feb 18 09:31 tigersh-deps-0.1
macuser@imacg3(tiger)$ du -sh /opt /opt/*
432M /opt
351M /opt/gcc-10.3.0
4.0K /opt/gcc-4.9.4
60M /opt/gcc-libs-4.9.4
2.1M /opt/gmp-6.2.1
9.0M /opt/isl-0.24
432K /opt/mpc-1.2.1
1.7M /opt/mpfr-4.1.0
36K /opt/tiger.sh
4.5M /opt/tigersh-deps-0.1
However, this is all transparent to the user, as I tweaked the install scripts for all of the existing packages which relied on gcc-4.9.4 (e.g. quickjs-20210327, janet-1.25.1, python-3.11.2, luajit-2.1.0-beta3, etc) to only depend on gcc-libs-4.9.4, so this space savings is all automatic. (There aren't any packages yet which rely on gcc-10.3.0).
Of course, this is a "feature" which has been implemented by every linux distro since the beginning of time, so really I'm just playing catch-up here
Other updates:
- pkg-config-0.29.2 (needed by a few configure scripts, I don't plan on supporting a full pkg-config workflow)
- autogen-5.18.16
- gc-8.2.2 (the garbage collector library)
- guile-2.0.14
- guile-1.8.8
- bc-1.07.1
- bison-3.8.2
- flex-2.6.4
- cctools-667.3 (for Tiger, this is the version which shipped with Leopard)
- macports-legacy-support-20221029 (adds missing headers which ease compiling modern software)
- I got distcc to compile, but the distccd server throws a bus error.
A few updates have been made to the package manager scripts themselves (tiger.sh and leopard.sh).