[ 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*> > And is this still an issue for stable/12 i386? > > or has ld been changed to ld.lld? > > stable/12 i386 still has GNU ld as /usr/bin/ld and there are a small > number of ports (particularly Free Pascal ones) which fail to build > with lld. > > They're tracked as children of PR 214864: > https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=214864&hide_resolved=1 > The Lazarus / Free Pascal issue is in PR 233413. > > In my opinion we should merge the switch to lld as /usr/bin/ld to > stable/12 now and iterate on fixing the remaining ports fallout, but > would like re/portmgr's assent. >-- Rod Grimes rgrimes at freebsd.org
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
[ Charset UTF-8 unsupported, converting... ]> 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.I would be happy with expanding the error that is emitted by pre.mk to add the text "You can fix this with LD=ld.lld make ..." and an entry in UPDATING that specifically says for 12.0 on i386 you need...> Warner-- Rod Grimes rgrimes at freebsd.org
Lucas Nali de Magalhães
2019-Mar-01 21:17 UTC
FreeBSD 12.0 RELEASE i386 can not build a kernel?
> On Feb 28, 2019, at 7:40 PM, Warner Losh <imp at bsdimp.com> wrote: > > On Thu, Feb 28, 2019 at 10:00 AM Rodney W. Grimes < > freebsd at pdx.rh.cn85.dnsmgr.net> wrote: > > .if defined(KERNEL_LD_OVERRIDE) > LD=${KERNEL_LD_OVERRIDE} > .else > LD=ld.lld > .endifMy suggestion would be to test $LD == ld and then use LD=ld.lld with a comment about the reason but my makefile syntax knowledge is limited. Lc -- rollingbits ? ? rollingbits at gmail.com ? rollingbits at terra.com.br ? rollingbits at yahoo.com ? rollingbits at globo.com ? rollingbits at icloud.com