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