gcc-wrapper: parameterize setup-hook
The default setup-hook for gcc-wrapper adds include directories with -isystem, which upsets the order -I flags are processed. This adds an alternative setup-hook that only uses -I flags. The build system's ordering of -I flags is then respected. This is important when different packages provide includes with the same name, such as building packages that depend on Qt4 and Qt5.
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
|
||||
, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
|
||||
, zlib ? null, extraPackages ? []
|
||||
, setupHook ? ./setup-hook.sh
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
@@ -199,7 +200,7 @@ stdenv.mkDerivation {
|
||||
''
|
||||
|
||||
+ ''
|
||||
substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook
|
||||
substituteAll ${setupHook} $out/nix-support/setup-hook
|
||||
substituteAll ${./add-flags} $out/nix-support/add-flags.sh
|
||||
cp -p ${./utils.sh} $out/nix-support/utils.sh
|
||||
|
||||
|
||||
38
pkgs/build-support/gcc-wrapper/setup-hook-stdinc.sh
Normal file
38
pkgs/build-support/gcc-wrapper/setup-hook-stdinc.sh
Normal file
@@ -0,0 +1,38 @@
|
||||
export NIX_CC=@out@
|
||||
|
||||
addCVars () {
|
||||
if [ -d $1/include ]; then
|
||||
export NIX_CFLAGS_COMPILE+=" -I $1/include"
|
||||
fi
|
||||
|
||||
if [ -d $1/lib64 -a ! -L $1/lib64 ]; then
|
||||
export NIX_LDFLAGS+=" -L$1/lib64"
|
||||
fi
|
||||
|
||||
if [ -d $1/lib ]; then
|
||||
export NIX_LDFLAGS+=" -L$1/lib"
|
||||
fi
|
||||
}
|
||||
|
||||
envHooks+=(addCVars)
|
||||
|
||||
# Note: these come *after* $out in the PATH (see setup.sh).
|
||||
|
||||
if [ -n "@gcc@" ]; then
|
||||
addToSearchPath PATH @gcc@/bin
|
||||
fi
|
||||
|
||||
if [ -n "@binutils@" ]; then
|
||||
addToSearchPath PATH @binutils@/bin
|
||||
fi
|
||||
|
||||
if [ -n "@libc@" ]; then
|
||||
addToSearchPath PATH @libc@/bin
|
||||
fi
|
||||
|
||||
if [ -n "@coreutils@" ]; then
|
||||
addToSearchPath PATH @coreutils@/bin
|
||||
fi
|
||||
|
||||
export CC=gcc
|
||||
export CXX=g++
|
||||
Reference in New Issue
Block a user