FreeBSD 12.0 RELEASE i386 can not build a kernel?

Warner Losh imp at bsdimp.com
Thu Feb 28 22:40:23 UTC 2019


On Thu, Feb 28, 2019 at 10:00 AM Rodney W. Grimes <
freebsd at pdx.rh.cn85.dnsmgr.net> wrote:

> [ Charset UTF-8 unsupported, converting... ]
> > On Thu, 28 Feb 2019 at 09:33, Rodney W. Grimes
> > <freebsd at pdx.rh.cn85.dnsmgr.net> wrote:
> > >
> > > LD?=ld.lld in the right place(s)?
> >
> > Perhaps, I seem to recall some issue with that, but not the specifics.
>
> sys.mk already does a LD?=ld so by the time we try
> to override it in the Makefile.i386 it is too late
> as already defined.
>
> *sigh*
>

Yes, the problem is that ?= only works once. There's some gross things we
can do, but they aren't worthwhile, imho.

eg

.if defined(KERNEL_LD_OVERRIDE)
LD=${KERNEL_LD_OVERRIDE}
.else
LD=ld.lld
.endif

or other variations on that. We could do it without the .else clause and
just add KERNEL_LD_OVERRIDE=ld.lld to GENERIC on i386 as a build-time
override. This would give people a way out, but would violate POLA a little
bit. Given the frequency of overriding LD=, it may be OK. People
sophisticated enough to do that surely are sophisticated enough to read
changes to the kernel config files. This wouldn't help everybody
(especially those with custom kernel configs), but short of adding it to
DEFAULTS, it's likely pushing the edge of how disruptive one can be in a
stable branch.

So there's a number of variations on this theme. I'm not convinced they are
worthwhile for this issue because none are side-effect free, but it's
certainly a solution space others can noodle through to see if they can
find the "just so" mix of POLA and bug fixing.

Warner


More information about the freebsd-stable mailing list