World broken in stage 1.1
M. Warner Losh
imp at bsdimp.com
Wed Aug 11 15:54:03 PDT 2004
In message: <20040811224317.GE96867 at ip.net.ua>
Ruslan Ermilov <ru at freebsd.org> writes:
: On Wed, Aug 11, 2004 at 04:26:40PM -0600, M. Warner Losh wrote:
: > In message: <20040811221348.GB93983 at ip.net.ua>
: > Ruslan Ermilov <ru at FreeBSD.org> writes:
: > : On Wed, Aug 11, 2004 at 04:04:20PM -0600, M. Warner Losh wrote:
: > : > In message: <20040810231044.GA70020 at xor.obsecurity.org>
: > : > Kris Kennaway <kris at 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
More information about the freebsd-current
mailing list