ubootTools: fix build by fixing -idirafter ordering

`ubootTools` build broke after https://github.com/NixOS/nixpkgs/pull/210004
where we started dropping default libc include path and switched to
`-idirafter` way of specifying libc headers.

Unfortunately the way it's implemented it injects -idirafter after
user's flags, not before. That allows users to inject their paths before
libc include paths, not after (as it would notmally happen).

The change works it around for u-boot by pulling -idirafter libc flags
before user's flags.
This commit is contained in:
Sergei Trofimovich 2023-01-27 07:59:13 +00:00
parent 578f1ba854
commit 8b3a31f923

View File

@ -92,6 +92,16 @@ let
passAsFile = [ "extraConfig" ]; passAsFile = [ "extraConfig" ];
# Workaround '-idirafter' ordering bug in staging-next:
# https://github.com/NixOS/nixpkgs/pull/210004
# where libc '-idirafter' gets added after user's idirafter and
# breaks.
# TODO(trofi): remove it in staging once fixed in cc-wrapper.
preConfigure = ''
export NIX_CFLAGS_COMPILE_BEFORE_${lib.replaceStrings ["-" "."] ["_" "_"] buildPackages.stdenv.hostPlatform.config}=$(< ${buildPackages.stdenv.cc}/nix-support/libc-cflags)
export NIX_CFLAGS_COMPILE_BEFORE_${lib.replaceStrings ["-" "."] ["_" "_"] stdenv.hostPlatform.config}=$(< ${stdenv.cc}/nix-support/libc-cflags)
'';
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure