cc-wrapper: adding a cc-wrapper-hook to the cc-wrapper
This commit is contained in:
parent
abfd2fe8a8
commit
77bd639c4c
2 changed files with 13 additions and 0 deletions
|
@ -1140,6 +1140,13 @@ Here are some more packages that provide a setup hook. Since the list of hooks i
|
||||||
Many other packages provide hooks, that are not part of `stdenv`. You can find
|
Many other packages provide hooks, that are not part of `stdenv`. You can find
|
||||||
these in the [Hooks Reference](#chap-hooks).
|
these in the [Hooks Reference](#chap-hooks).
|
||||||
|
|
||||||
|
### Compiler and Linker wrapper hooks {#compiler-linker-wrapper-hooks}
|
||||||
|
|
||||||
|
If the file `${cc}/nix-support/cc-wrapper-hook` exists, it will be run at the end of the [compiler wrapper](#cc-wrapper).
|
||||||
|
If the file `${binutils}/nix-support/post-link-hook` exists, it will be run at the end of the linker wrapper.
|
||||||
|
These hooks allow a user to inject code into the wrappers.
|
||||||
|
As an example, these hooks can be used to extract `extraBefore`, `params` and `extraAfter` which store all the command line arguments passed to the compiler and linker respectively.
|
||||||
|
|
||||||
## Purity in Nixpkgs {#sec-purity-in-nixpkgs}
|
## Purity in Nixpkgs {#sec-purity-in-nixpkgs}
|
||||||
|
|
||||||
*Measures taken to prevent dependencies on packages outside the store, and what you can do to prevent them.*
|
*Measures taken to prevent dependencies on packages outside the store, and what you can do to prevent them.*
|
||||||
|
|
|
@ -219,6 +219,12 @@ fi
|
||||||
PATH="$path_backup"
|
PATH="$path_backup"
|
||||||
# Old bash workaround, see above.
|
# Old bash workaround, see above.
|
||||||
|
|
||||||
|
# if a cc-wrapper-hook exists, run it.
|
||||||
|
if [[ -e @out@/nix-support/cc-wrapper-hook ]]; then
|
||||||
|
compiler=@prog@
|
||||||
|
source @out@/nix-support/cc-wrapper-hook
|
||||||
|
fi
|
||||||
|
|
||||||
if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then
|
if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then
|
||||||
exec @prog@ @<(printf "%q\n" \
|
exec @prog@ @<(printf "%q\n" \
|
||||||
${extraBefore+"${extraBefore[@]}"} \
|
${extraBefore+"${extraBefore[@]}"} \
|
||||||
|
|
Loading…
Reference in a new issue