Age | Commit message (Collapse) | Author | Files | Lines |
|
the same
when enableParallelBuildingByDefault is enabled
verified with
`nix-diff $(nix eval ".#gcc-unwrapped.drvPath") $(nix eval --expr 'with import ./. { config = { enableParallelBuildingByDefault = true; }; }; gcc-unwrapped.drvPath' --impure)`
|
|
|
|
Suggested-by: Jörg Thalheim <joerg@thalheim.io>
|
|
By default, pkg-config output will not include Requires.private
dependencies (which specify dependencies that only apply when building
statically). It will only do this when passed --static. In
pkgsStatic, let's ensure pkg-config is always operating in static
mode, because pkgsStatic will ensure that any libraries pkg-config
might find will always be static, and so will always need their
Requires.private dependencies.
This is very useful for Meson builds, because otherwise Meson will
only pass --static to pkg-config if the dependency was explicitly
"static : true", which is not likely to be the case for most stuff
we're building.
An alternative proposal was to patch Meson to add a special
environment variable to force dependencies to be "static : true". I
feel that the approach I've taken here is less invasive.
|
|
I've tried to be consistent, using four or eight spaces to line up
with existing code.
|
|
Previously, mangleVarList would be used which would concatenate the
variables using a space as a separator. Paths are however separated by
`:` in PKG_CONFIG_PATH leading to entries being broken.
This is fixed by introducing mangleVarListGeneric which allows us to
specify the desired separator.
Reproducer for the issue prior to this change:
$ nix-shell -A pkgsLLVM.wayland
[nix-shell] $ pkg-config --libs expat
Package expat was not found in the pkg-config search path.
Perhaps you should add the directory containing `expat.pc'
to the PKG_CONFIG_PATH environment variable
No package 'expat' found
$ printf 'Host: %s\nBuild: %s' $PKG_CONFIG_PATH $PKG_CONFIG_PATH_FOR_BUILD
Host: /nix/store/5h308a4ab8w7prcp8iflh5pnl78mayi2-expat-2.2.10-x86_64-unknown-linux-gnu-dev/lib/pkgconfig:/nix/store/z3y9ska2h4l1map25m195iq577g7g3gz-libxml2-x86_64-unknown-linux-gnu-2.9.12-dev/lib/pkgconfig:/nix/store/lbz5m1s0r7zn0cxvl21czfspli6ribzb-zlib-1.2.11-x86_64-unknown-linux-gnu-dev/lib/pkgconfig:/nix/store/rfhvp8r8n3ygpzh8j0l34lk8hwwi3z0h-libffi-3.3-x86_64-unknown-linux-gnu-dev/lib/pkgconfig
Build: /nix/store/dw11ywy7qwfz53qisz0dggbgix88jah2-wayland-1.19.0-bin/lib/pkgconfig
strace reveals the issue:
stat("/nix/store/dw11ywy7qwfz53qisz0dggbgix88jah2-wayland-1.19.0-bin/lib/pkgconfig /nix/store/5h308a4ab8w7prcp8iflh5pnl78mayi2-expat-2.2.10-x86_64-unknown-linux-gnu-dev/lib/pkgconfig/expat-uninstalled.pc", 0x7fff49829fa0) = -1 ENOENT (No such file or directory)
In the pkg-config wrapper $PKG_CONFIG_PATH_FOR_BUILD and
$PKG_CONFIG_PATH are concatenated with a space which leads to two paths
being messed up. This issue likely only affects native cross
compilation.
|
|
|
|
|
|
Follow up to the revert in e560459c5b06ce1351ae5eb8988f8ce87602058a.
This reverts commit 1936b11f63d2f58ef0c7216e53e56deb804a715e.
|
|
|
|
This is much better because then we can freely keep the comments up to
date without causing mass rebuilds.
Someday, somebody should make the same change with `cc-wrapper` and
`bintools-wrapper`.
|
|
|
|
This fixes libarchive, and probably numerous other builds.
|
|
This is good practice, and will help with tests. Wrapper adjust to match
bintools-wrapper re these new outputs.
|
|
This fixes longstanding build issues
|