Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Dec 2004 00:49:52 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src Makefile
Message-ID:  <200412130049.iBD0nq8o095802@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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.
  
  Revision  Changes    Path
  1.312     +1 -2      src/Makefile



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412130049.iBD0nq8o095802>