Date: Mon, 25 Feb 2019 20:24:27 +0000 From: Brooks Davis <brooks@freebsd.org> To: John Baldwin <jhb@FreeBSD.org> Cc: Brandon Bergren <freebsd@bdragon.rtk0.net>, "freebsd-toolchain@FreeBSD.org" <freebsd-toolchain@freebsd.org> Subject: Re: External GCC Update Message-ID: <20190225202427.GD47081@spindle.one-eyed-alien.net> In-Reply-To: <3153f8b9-5873-8ff1-a63f-b57cab887556@FreeBSD.org> References: <e8d1431f-cf99-1986-7f23-6ff0f4cd8314@FreeBSD.org> <b8f8b304-d7af-4c53-82ac-ed4e9e6b78dc@www.fastmail.com> <3153f8b9-5873-8ff1-a63f-b57cab887556@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
On Mon, Feb 25, 2019 at 10:50:40AM -0800, John Baldwin wrote:
> On 2/22/19 6:03 PM, Brandon Bergren wrote:
> >
> >
> > On Fri, Feb 22, 2019, at 1:01 PM, John Baldwin wrote:
> >> 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.
> >
> > Not sure if I like this. Can't src.opts.mk just call `pkg info -e base/binutils` and so forth and use the exit result to adjust the defaults?
>
> That requires src.opts.mk to encode the policy that each package wants to
> enforce rather than letting the package choose the policy it wants to
> enforce. I think we want the latter.
>
> >> 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
> >
> > I don't like the concept of packages messing with anything related to src.conf. I have a bunch of conditional stuff in mine broken out by ${TARGET_ARCH} and extra config suddenly appearing would break a lot of my cross compiling stuff, even if it is in a separate *.d folder.
> >
> > Seems to me that just influencing src.opts.mk's defaults would be more robust.
>
> Hmm, cross compiling is indeed a bear. My original version of this was to
> have base/gcc install a special 'freebsd-gcc.mk' toolchain file to
> /usr/share/toolchains and modify Makefile.inc1 to use this as the default
> CROSS_TOOLCHAIN if present. I mostly didn't like this because it would be
> a single file that so you can't set separate policy if, for example, some
> arch or install only wanted base/binutils and not base/gcc. On the other
> hand, it had the advantage that setting an explicit CROSS_TOOLCHAIN when you
> are cross compiling would work correctly.
>
> Perhaps I can rework this to use two files in /usr/share/toolchains and have
> Makefile.inc1 explicitly include any files in that directory if
> CROSS_TOOLCHAIN isn't set?
I think I like that option best.
Another way to deal with the two-files issue would be to have a
base/toolchain metaport with options that installs the consolidated file
you want. That mirrors (somewhat) the setup in devel/*xtoolchain*, but
I'm not convinced it won't just lead to confusion.
-- Brooks
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
iQEcBAEBAgAGBQJcdE76AAoJEKzQXbSebgfAvioH/iO5vzVoiZeK2sx4UFinKAn9
4vaExE7bU+zKZqsGI+/NZObNfHlFT5TtmEKVKF2UILx4H/5665tXeTjVFCZzrrJP
qmfr76Q0KrTxurcEOiAMkS6JvARIunKxv8buiGyzKKuvKG9UYQg3AWMt8K4fOR0Z
nECWoZHZ/+k47DjUKrjpctPp3Gd6+4g84+Ryr+mLoUEUFYBtL1DJx1O3GG6K7Mzd
d2hmi3v6eUwiqsXn7MET5mos8HugpQvPe2T3wa66bseEMYaZ4YD42KkI044Z8clm
TsrNVRcreKCTopRQJnLxCxqN3YOt+PV+EEVTMGrrpzBsbV/on/i30XTZOZPB0aw=
=Jv5f
-----END PGP SIGNATURE-----
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190225202427.GD47081>
