Re: New external GCC toolchain ports/packages

From: John Baldwin <>
Date: Fri, 20 Dec 2019 09:24:00 -0800
On 12/19/19 12:06 PM, Ryan Libby wrote:
> On Wed, Dec 18, 2019 at 1:49 PM John Baldwin <> wrote:
>> In the interest of supporting newer versions of GCC for a base system
>> toolchain, I've renamed the external GCC packages from <arch>-gcc
>> to <arch>-gcc6.  These are built as flavors of a new devel/freebsd-gcc6
>> port.  The xtoolchain package is not used for these new packages, instead
>> one does 'pkg install mips-gcc6' to get the GCC 6.x MIPS compiler and
>> uses 'CROSS_TOOLCHAIN=mips-gcc6'.  I've also gone ahead and updated this
>> compiler to 6.5.0.
>> I will leave the old ports/packages around for now to permit an easy
>> transition, but going forward, the <arch>-gcc6 packages should be preferred
>> to <arch>-xtoolchain-gcc for all but riscv (riscv64-gcc and riscv64-xtoolchain-gcc
>> are separate from the powerpc64-gcc set of packages).
>> In addition, I've also just added a devel/freebsd-gcc9 package which
>> builds <arch>-gcc9 packages.  It adds powerpc and riscv flavors relative
>> to freebsd-gcc6 and uses GCC 9.2.0.  To date in my testing I've yet to
>> be able to finish a buildworld on any of the platforms I've tried
>> (amd64, mips, sparc64), but the packages should permit other developers
>> to get the tree building with GCC 9.  To use these packages one would do
>> something like:
>> # pkg install amd64-gcc9
>> # make buildworld CROSS_TOOLCHAIN=amd64-gcc9
>> You can install both the gcc6 and gcc9 versions of a package at the same
>> time, e.g. amd64-gcc6 and amd64-gcc9.  Having different packages for major
>> versions is similar to llvm and will also let us keep a known-good
>> toolchain package for older releases while using newer major versions on
>> newer FreeBSD releases (e.g gcc9 for 13.0 and gcc6 for 12.x).
>> I do plan to switch the default toolchains for make universe/tinderbox
>> for targets using <arch>-xtoolchain-gcc based on GCC 6 over to the
>> freebsd-gcc6 variants in the next week or so.
>> --
>> John Baldwin
> Awesome, thanks!  I was able to get amd64 buildworld and buildkernel to
> succeed with just a few changes, and none to the port.  I'll work on
> getting the changes in.

I have been able to get it building as well, mostly by muting a few
warnings, adding libcompiler_rt to rtld's link for i386, disabling
googletest (needs an upstream patch to stop using signed wchar_t),
and a hack to jemalloc.  I was able to build riscv as well with those
same changes and am working through builds of other platforms.

I'm happy to compare notes.  The jemalloc one is a bit weird.

John Baldwin
Received on Fri Dec 20 2019 - 16:24:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:22 UTC