World broken in stage 1.1

Harti Brandt harti at freebsd.org
Thu Aug 12 00:19:31 PDT 2004


On Wed, 11 Aug 2004, M. Warner Losh wrote:

MWL>In message: <20040811221348.GB93983 at ip.net.ua>
MWL>            Ruslan Ermilov <ru at FreeBSD.org> writes:
MWL>: On Wed, Aug 11, 2004 at 04:04:20PM -0600, M. Warner Losh wrote:
MWL>: > In message: <20040810231044.GA70020 at xor.obsecurity.org>
MWL>: >             Kris Kennaway <kris at obsecurity.org> writes:
MWL>: > : More fallout from the wonderful new make(1) semantics? 
MWL>: > 
MWL>: > I think it is speficially related to the changes to src/Makefile and
MWL>: > src/Makefile.inc1.  If I s/${_+_}//g on those two files, it appears
MWL>: > that I can buildworld again (at least it doesn't die right away).
MWL>: > 
MWL>: How exactly does it die for you, please provide some logs.
MWL>
MWL>The problem is due to the following in share/mk/sys.mk:
MWL>
MWL>.if !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
MWL>_+_             ?=
MWL>.else
MWL>_+_             ?=      +
MWL>.endif
MWL>
MWL>This should have a third clause:
MWL>
MWL>.if ${MAKE_VERSION} >= 5200408030 && !empty(.MAKEFLAGS:M-n) && ${.MAKEFLAGS:M-n} == "-n"
MWL>
MWL>so that _+_ is defined to be nothing for those versions of make that
MWL>don't yet support this new feature of posix.

That should just 'not happen'. There has been one problem here: a bug in 
crunchgen emitting a line causing the wrong make to be used. This should 
not and was not fixed by causing the new .mk files to be usable with the 
old make but causing the right make to use in rescue. Otherwise you should 
obviously not forcibly use the old make with new .mk scripts or the other 
way around. The makefiles are usually smart enough to use either the new 
make and the new .mk files or the old, installed make and the old, 
installed .mk scripts. Any mismatch is either cause by a bug somewhere (as 
in the case of crunchgen) or forced by the user.

harti


More information about the freebsd-current mailing list