On 11/17/2015 10:59 AM, Daniel P. Berrange wrote: > Suggested in > > https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg03298.html > > The config.status script is auto-generated by configure upon > completion. The intention is that config.status can be later > invoked by the developer to re-detect the same environment > that configure originally used. The current config.status > script, however, only contains a record of the command line > arguments to configure. Various environment variables have > an effect on what configure will find. In particular the > PKG_CONFIG_LIBDIR & PKG_CONFIG_PATH vars will affect what > libraries pkg-config finds. The PATH var will affect what > toolchain binaries and XXXX-config scripts are found. The > LD_LIBRARY_PATH var will affect what libraries are found. > All these key env variables should be recorded in the > config.status script. > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > --- > > Open question: are there more env vars we should preserve ?
Yes - anything that autoconf would mark as precious. See below. > +++ b/configure > @@ -5925,6 +5925,24 @@ cat <<EOD >config.status > # Compiler output produced by configure, useful for debugging > # configure, is in config.log if it exists. > EOD > + > +preserve_env() { > + envname=$1 > + > + if test -n "${!envname}" Bashism, but configure is /bin/sh. This won't work on dash :( I think you'll have to use eval, and we'll just have to audit that preserve_env can never be called with suspicious text where eval would open a security hole. > + then > + echo "$envname=\"${!envname}\"" >> config.status Another use of the bashism. > + echo "export $envname" >> config.status > + fi > +} > + > +# Preserve various env variables that influence what > +# features/build target configure will detect > +preserve_env PATH > +preserve_env LD_LIBRARY_PATH > +preserve_env PKG_CONFIG_LIBDIR > +preserve_env PKG_CONFIG_PATH > + Autoconf preserves CC, CFLAGS, LDFLAGS, LIBS, CPPFLAGS, and CPP by default. Also, PKG_CONFIG is typically preserved. If you run libvirt's './configure --help', you'll also notice a bunch of *_CFLAGS and *_LIBS in the precious list starting under the label "Some influential environment variables". -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature