Date: Wed, 11 Aug 2004 16:53:03 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: ru@freebsd.org Cc: kris@obsecurity.org Subject: Re: World broken in stage 1.1 Message-ID: <20040811.165303.35850140.imp@bsdimp.com> In-Reply-To: <20040811224317.GE96867@ip.net.ua> References: <20040811221348.GB93983@ip.net.ua> <20040811.162640.00482545.imp@bsdimp.com> <20040811224317.GE96867@ip.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20040811224317.GE96867@ip.net.ua> Ruslan Ermilov <ru@freebsd.org> writes: : On Wed, Aug 11, 2004 at 04:26:40PM -0600, M. Warner Losh wrote: : > In message: <20040811221348.GB93983@ip.net.ua> : > Ruslan Ermilov <ru@FreeBSD.org> writes: : > : On Wed, Aug 11, 2004 at 04:04:20PM -0600, M. Warner Losh wrote: : > : > In message: <20040810231044.GA70020@xor.obsecurity.org> : > : > Kris Kennaway <kris@obsecurity.org> writes: : > : > : More fallout from the wonderful new make(1) semantics? : > : > : > : > I think it is speficially related to the changes to src/Makefile and : > : > src/Makefile.inc1. If I s/${_+_}//g on those two files, it appears : > : > that I can buildworld again (at least it doesn't die right away). : > : > : > : How exactly does it die for you, please provide some logs. : > : > The problem is due to the following in share/mk/sys.mk: : > : > .if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n" : > _+_ ?= : > .else : > _+_ ?= + : > .endif : > : > This should have a third clause: : > : > .if ${MAKE_VERSION} >= 5200408030 && !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n" : > : > so that _+_ is defined to be nothing for those versions of make that : > don't yet support this new feature of posix. : > : Why? It's not supposed that you try an old make(1) binary with : the new share/mk/sys.mk. src/Makefile will upgrade make(1) if : necessary, then use it (or the old make if it's adequate) with : new share/mk stuff to call Makefile.inc1. If you throw away : the -m from your "make" command in your build script, it will : work. I'm not entirely sure why we have it in our build scripts. My software archiology is such that I can't find out why this was added to them (because the same code has jumped between N tools that have grown up over the years). : We want to be able to use the new make(1) features in our : share/mk files right after when they made available. That was : one of the main ideas of the make(1) regression testing feature : in src/Makefile. OK. : It's like we now handle backward issues in our C sources -- we : agreed not to pollute sources with __FreeBSD_version checks, : and we keep the necessary bootstrapping glue in a separate : place. The same applies here -- one is free to use new make(1) : features in src/ makefiles and in share/mk support files. : src/Makefile and tools/regression/usr.bin/make guarantee that : we'll always use the make(1) binary compatible with the : feature set used in our .mk and makefiles. OK. : Please update your build scripts... These build scripts have been this way since the product that used FreeBSD 3.4.1... This is the first time that there has been a problem with that :-(. I'll try to update and fixed like you suggested, however... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040811.165303.35850140.imp>