Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Jun 2013 12:10:36 +0100
From:      Chris Rees <crees@FreeBSD.org>
To:        freebsd-toolchain@freebsd.org, tech-toolchain@netbsd.org,  "Simon J. Gerraty" <sjg@freebsd.org>
Subject:   bmake exports disallowed environment variables
Message-ID:  <CADLo838uS=XqsL576rFFpd21=pzO-eSJjoCQzZcSb0=Vbh70aQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
[Hope I got the NetBSD list right...]

Hi all,

bmake appears to export ${.MAKE.LEVEL} into the environment, which sh
doesn't support, due to the leading '.'.   Normally this is ignored,
but for example Tinderbox cleans the environment by unsetting
everything except a small list of variables, resulting in an error.

pmake (FreeBSD's make) exports it as ${__MKLVL__} (IIRC), which is
more portable.

I've worked around it in Tinderbox by adding .MAKE.LEVEL to the 'safe'
variable list, but I think exporting incompatible envars to sh(1) is
undesirable.

Can anyone come up with a possibly solution?  My preferred solution is
to export __MKLVL__ and allow ${.MAKE.LEVEL} to be recognised as
${__MKLVL__} in Makefiles, possibly with a warning?

I'll see if I can make a patch for this behaviour, unless anyone has a
better idea.

Chris

http://svnweb.freebsd.org/base/head/contrib/bmake/var.c?revision=251422&view=markup#l970



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo838uS=XqsL576rFFpd21=pzO-eSJjoCQzZcSb0=Vbh70aQ>