Re: git: 22ca6db50f4e - main - config.mk: Add MK_VIMAGE knob
- In reply to: Bjoern A. Zeeb: "Re: git: 22ca6db50f4e - main - config.mk: Add MK_VIMAGE knob"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 13 Apr 2024 17:07:25 UTC
On Fri, Apr 12, 2024 at 1:29 PM Bjoern A. Zeeb < bzeeb-lists@lists.zabbadoz.net> wrote: > On Tue, 9 Apr 2024, Stephen J. Kiernan wrote: > > > The branch main has been updated by stevek: > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=22ca6db50f4e6bd75a141f57cf953d8de6531a06 > > > > commit 22ca6db50f4e6bd75a141f57cf953d8de6531a06 > > Author: Stephen J. Kiernan <stevek@FreeBSD.org> > > AuthorDate: 2024-04-09 17:04:24 +0000 > > Commit: Stephen J. Kiernan <stevek@FreeBSD.org> > > CommitDate: 2024-04-09 17:05:56 +0000 > > > > config.mk: Add MK_VIMAGE knob > > > > Default to VIMAGE as yes. > > Add VIMAGE to __DEFAULT_DEPENDENT_OPTIONS (to define VIMAGE_SUPPORT) > > > > Only output VIMAGE to opt_global.h when VIMAGE support is wanted. > > > > Obtained from: Juniper Networks, Inc. > > Differential Revision: https://reviews.freebsd.org/D39636 > > --- > > share/mk/src.opts.mk | 2 ++ > > sys/conf/config.mk | 2 ++ > > sys/conf/kern.opts.mk | 4 +++- > > 3 files changed, 7 insertions(+), 1 deletion(-) > > I now see: > > cat: /usr/obj/usr/src/src.git/amd64.amd64/sys/FOO/opt_vimage.h: No such > file or directory > > during builds. I made sure I cleaned the sys/FOO obj tree. Any ideas? > I see this too... :( The problem is that VIMAGE is in opt_global.h, not in opt_vimage, so it was improper to add it here: for var in \ INET \ INET6 \ VIMAGE .if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no" MK_${var}_SUPPORT:= no .else .if defined(KERNBUILDDIR) # See if there's an opt_foo.h .if !defined(OPT_${var}) OPT_${var}!= cat ${KERNBUILDDIR}/opt_${var:tl}.h; echo <----------------- opt_vimage.h isn't a thing, it lives in opt_global.h .export OPT_${var} .endif .if ${OPT_${var}} == "" # nothing -> no MK_${var}_SUPPORT:= no .else MK_${var}_SUPPORT:= yes .endif .else # otherwise, yes MK_${var}_SUPPORT:= yes .endif .endif .endfor So prior to this addition, this was abusing our build system somewhat, but it worked. Now, it doesn't work and can only work with more abuse: diff --git a/sys/conf/kern.opts.mk b/sys/conf/kern.opts.mk index 8b1151f3d624..99e4433ec3cf 100644 --- a/sys/conf/kern.opts.mk +++ b/sys/conf/kern.opts.mk @@ -188,9 +188,13 @@ OPT_${opt}:= ${rep} .if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no" MK_${var}_SUPPORT:= no .else -.if defined(KERNBUILDDIR) # See if there's an opt_foo.h +.if defined(KERNBUILDDIR) # See if there's an opt_foo.h or opt_global.h .if !defined(OPT_${var}) +.if exists(${KERNBUILDDIR}/opt_${var:tl}.h) OPT_${var}!= cat ${KERNBUILDDIR}/opt_${var:tl}.h; echo +.else +OPT_${var}!= cat ${KERNBUILDDIR}/opt_global.h; echo +.endif .export OPT_${var} .endif .if ${OPT_${var}} == "" # nothing -> no which I think gets us past the present problem... But I think that config(8) should be generating a canonical list of options so we don't have to do this crazy gymnastics of kludgitude. Warner Warner