cvs commit: src Makefile
John Baldwin
jhb at FreeBSD.org
Mon Dec 13 22:11:17 PST 2004
On Sunday 12 December 2004 07:49 pm, Marcel Moolenaar wrote:
> marcel 2004-12-13 00:49:52 UTC
>
> FreeBSD src repository
>
> Modified files:
> . Makefile
> Log:
> Unbreak the MAKEOBJDIRPREFIX variable check by avoiding bugs in make(1).
> When make flags are passed to make in the environment, the string is
> chopped up in an (argc,argv) vector. This happens in brk_string() and
> the chopped up string is stored in static buffer. When this includes
> something like "-V BINMAKE", then a pointer into the static buffer is
> put on the variables list for evaluation later. However, brk_string()
> is used for more than just chopping up the MAKEFLAGS env. variable, so
> it's very likely that the static buffer is clobbered. In fact, this is
> exactly what happens.
> The result is that _MAKEOBJDIRPREFIX gets assigned whatever garbage
> the child make happens to emit, causing the test to fail. Like this:
>
> pluto2% cd /usr/src
> pluto2% make -V BINMAKE
> "/q/6.x/src/Makefile", line 94: MAKEOBJDIRPREFIX can only be set in
> environment, not as a global (in /etc/make.conf) or command-line variable.
> pluto2% make -dv -V BINMAKE | & grep _MAKEOBJDIRPREFIX
> Global:_MAKEOBJDIRPREFIX = }
>
> The fix is to not use MAKEFLAGS for this, but simple pass the flags
> as arguments. Ideally make(1) should be fixed but that's beyond the
> scope of my attention span.
>
> This fixes release.
Thanks! This should also fix anyone upgrading their sparc to 64-bit time_t
using the installworld_newk script.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-all
mailing list