From owner-cvs-all@FreeBSD.ORG Mon Dec 13 00:49:52 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 43C6516A4CE; Mon, 13 Dec 2004 00:49:52 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3107443D31; Mon, 13 Dec 2004 00:49:52 +0000 (GMT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id iBD0nqnM095803; Mon, 13 Dec 2004 00:49:52 GMT (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id iBD0nq8o095802; Mon, 13 Dec 2004 00:49:52 GMT (envelope-from marcel) Message-Id: <200412130049.iBD0nq8o095802@repoman.freebsd.org> From: Marcel Moolenaar Date: Mon, 13 Dec 2004 00:49:52 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src Makefile X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Dec 2004 00:49:52 -0000 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