External GCC Update
John Baldwin
jhb at FreeBSD.org
Fri Feb 22 19:01:19 UTC 2019
I was recently able to install base/binutils and base/gcc into an amd64 VM
and do a self-hosted build and install. Some of the port patches have been
committed from this, but I have some source patches before the final ports
patches can be finished.
The source patches are here:
https://github.com/bsdjhb/freebsd/compare/master...base_gcc
They do a couple of things I'd like some feedback on:
1) MK_GDB no longer depends on MK_BINUTILS so that /usr/libexec/gdb can
still be built/installed when WITHOUT_BINUTILS=yes is true
2) WITH_BASE_GCC and WITH_BASE_BINUTILS knobs can be set in src.conf to
ensure that 'make delete-old' doesn't delete files installed by the
base/* packages if you also set WITHOUT_BINUTILS=yes, and similar
knobs (because you don't want to build/install the ones from src)
3) I add support for an /etc/src.conf.d dir that can hold files that get
treated as if they are part of /etc/src.conf. The current patch on
github for this only fixes world and not yet kern.pre.mk and probably
needs the most review if we want to go forward with this route. With
this, I plan to have the base/* packages install suitable files in this
dir that disable build of the src-based components and also set
WITH_BASE_<foo> to make sure 'delete-old' DTRT.
The file for base/binutils would be:
CROSS_BINUTILS_PREFIX=/usr/bin/
WITH_BASE_BINUTILS=yes
WITHOUT_BINUTILS=yes
WITHOUT_LLD_IS_LD=yes
The file for base/gcc would be:
XCC=/usr/bin/cc
XCXX=/usr/bin/c++
XCPP=/usr/bin/cpp
X_COMPILER_TYPE=gcc
WITH_BASE_GCC=yes
WITHOUT_GCC=yes
WITHOUT_CLANG_IS_CC=yes
Thoughts?
--
John Baldwin
More information about the freebsd-toolchain
mailing list