cvs commit: src Makefile

Marcel Moolenaar marcel at FreeBSD.org
Sun Dec 12 16:49:52 PST 2004


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


More information about the cvs-all mailing list