svn commit: r358454 - in head: . etc/mtree gnu/lib gnu/lib/libgcov gnu/lib/libgomp gnu/lib/libstdc++ gnu/lib/libsupc++ gnu/usr.bin gnu/usr.bin/cc gnu/usr.bin/gperf share/mk targets/pseudo/bootstrap...

Brooks Davis brooks at freebsd.org
Sat Feb 29 21:23:38 UTC 2020


On Sat, Feb 29, 2020 at 03:25:51AM +0000, Ed Maste wrote:
> Author: emaste
> Date: Sat Feb 29 03:25:51 2020
> New Revision: 358454
> URL: https://svnweb.freebsd.org/changeset/base/358454
> 
> Log:
>   remove GCC 4.2.1 build infrastructure
>   
>   As described in Warner's email message[1] to the FreeBSD-arch mailing
>   list we have reached GCC 4.2.1's retirement date.  At this time all
>   supported architectures either use in-tree Clang, or rely on external
>   toolchain (i.e., a contemporary GCC version from ports).
>   
>   GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later
>   that year, in r171825.  GCC has served us well, but version 4.2.1 is
>   obsolete and not used by default on any architecture in FreeBSD.  It
>   does not support modern C and does not support arm64 or RISC-V.
>   
>   Thanks to everyone responsible for maintaining, updating, and testing
>   GCC in the FreeBSD base system over the years.
>   
>   So long, and thanks for all the fish.

Thanks to everyone who made this possible.

We're approaching the 10th anniversary of the BSD Toolchain Summit held
at BSDCan 2010[0].  We'd been foundering for most of the past three
years since GCC went GPLv3, but with Clang starting to come together
it was time to make a plan.  Looking back, we didn't do a good job of
writing down the plan, but in essence, the plan was to adopt Clang
and ELF Toolchain to replace GCC and binutils.  Today we've basically
achieved that goal.

Along the way we've added support for external toolchains and in
addition to building most architectures with an integrated Clang and
LLD (powerpc32 and mips await LLVM 10.0.0 which is in progress) we
build most architectures against GCC 6 or 8 and will be migrating to GCC
9 soon.

This has been a massive effort involving too many to name and I know I'm
missing many major contributors, but I'd like to call out a few people's
contributions:
   - Roman Divacky's initial work on ClangBSD got use bootstrapped.
   - Dimitry Andric has maintained our LLVM integration for many years.
   - Ed Maste has maintained our ELF toolchain integration and put in a
     lot of work to push us over the finish line.
   - Warner Losh for sitting down and drafting a final schedule for
     GCC removal (and not to incidentally sparc64, the last poorly
     supported architecture).

For all that this has been a huge effort, moving early and aggressively
has brought us benefits.  We remain one of (if not *the*) best supported
open source operating systems when using LLVM.  This is enormously
advantageous in the research world where LLVM is the research compiler
of choice.  In the DARPA SSITH program where I'm working three of five
teams are using FreeBSD specifically due to our LLVM support.  Further,
our collaboration with Arm to bring CHERI[1] to ARMv8-A in the form of
the Morello prototype[2] would have been much harder if not impossible
without a permissively licensed operating system and toolchain.

-- Brooks

[0] https://wiki.freebsd.org/201005ToolchainSummit
[1] http://cheri-cpu.org
[2] https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheri-morello.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20200229/3306f088/attachment.sig>


More information about the svn-src-all mailing list