stdenvAdapters.useLibsFrom: init
This commit is contained in:
parent
c45e1b6459
commit
e6e279913c
1 changed files with 24 additions and 0 deletions
|
@ -237,6 +237,30 @@ rec {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useLibsFrom = modelStdenv: targetStdenv:
|
||||||
|
let
|
||||||
|
ccForLibs = modelStdenv.cc.cc;
|
||||||
|
cc = pkgs.wrapCCWith {
|
||||||
|
/* NOTE: cc.cc is the unwrapped compiler. Should we respect the old
|
||||||
|
* wrapper instead? */
|
||||||
|
cc = targetStdenv.cc.cc;
|
||||||
|
|
||||||
|
/* NOTE(originally by rrbutani):
|
||||||
|
* Normally the `useCcForLibs`/`gccForLibs` mechanism is used to get a
|
||||||
|
* clang based `cc` to use `libstdc++` (from gcc).
|
||||||
|
*
|
||||||
|
* Here we (ab)use it to use a `libstdc++` from a different `gcc` than our
|
||||||
|
* `cc`.
|
||||||
|
*
|
||||||
|
* Note that this does not inhibit our `cc`'s lib dir from being added to
|
||||||
|
* cflags/ldflags (see `cc_solib` in `cc-wrapper`) but this is okay: our
|
||||||
|
* `gccForLibs`'s paths should take precedence. */
|
||||||
|
useCcForLibs = true;
|
||||||
|
gccForLibs = ccForLibs;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
overrideCC targetStdenv cc;
|
||||||
|
|
||||||
useMoldLinker = stdenv: let
|
useMoldLinker = stdenv: let
|
||||||
bintools = stdenv.cc.bintools.override {
|
bintools = stdenv.cc.bintools.override {
|
||||||
extraBuildCommands = ''
|
extraBuildCommands = ''
|
||||||
|
|
Loading…
Reference in a new issue