| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
One should do this when needed executables at build time. It is more
honest and cross-friendly than refering to binutils directly.
|
|
|
|
|
|
| |
This requires some small changes in the stdenv, then working around the
weird choice LLVM made to hardcode @rpath in its install name, and then
lets us remove a ton of annoying workaround hacks in many of our Go
packages. With any luck this will mean less hackery going forward.
|
|
|
|
|
| |
It's better layering to do everything in ld-wrapper. Also, use numeric
comparisons for `relocatable`.
|
|
|
|
|
|
|
|
|
|
| |
cc-wrapper may wrap a cc-compiler, but it doesn't need one to build
itself. (c.f. expand-response-params is a separate derivation.) This
helps avoid cycles on the cross stuff, in addition to removing a
useless dependency edge.
I could have been super careful with overrides in the stdenv to avoid
the mass rebuild, but I don't think it's worth it.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. `crossDrv` is now the default so we don't need to worry about that in
build != host builds.
2. shell is the build time shell, so `wrapCCCross` doesn't need to
worry, as build == host.
3. `shell.shellPath` will always be appended where useful.
4. Complicated `shell == ""` logic served no purpose.
|
|
|
|
|
| |
In practice, this is correct because iOS is on ARM and puts the loader
there.
|
|
|
|
| |
This was just causing evaluation problems on cross.
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 0a944b345e89ca0096974d168f49e1c6830c3fc2, reversing
changes made to 61733ed6ccde3427016720f2e0cd191d3d95152c.
I dislike these massive stdenv changes with unclear motivation,
especially when they involve gratuitous mass renames like NIX_CC ->
NIX_BINUTILS. The previous such rename (NIX_GCC -> NIX_CC) caused
months of pain, so let's not do that again.
|
| |
|
|
|
|
|
|
| |
Factor a binutils wrapper out of cc-wrapper. While only LD is wrapped,
the setup hook defines environment variables on behalf of other
utilites.
|
|
|
|
| |
This avoids any `NIX_FOOBAR=1 1` not triggering conditions.
|
|
|
|
| |
In preparation for splitting out binutils-wrapper
|
|
|
|
| |
It's better layering to do everything in ld-wrapper.
|
|
|
|
| |
It has long been deprecated
|
|
|
|
| |
These are no longer used by anything
|
|
|
|
|
|
|
|
|
| |
This becomes necessary if more wrappers besides cc-wrapper start
supporting hardening flags. Also good to make the warning into an
error.
Also ensure interface is being used right: Not as a string, not just in
bash.
|
|
|
|
|
|
| |
GCC just passes `-z ...` flags to ld unaltered, and they are already
passed to LD anyways. On the other hand, `-pie` affects gcc behavior
too.
|
|
|
|
| |
NIX_COREFOUNDATION_RPATH
|
| |
|
| |
|
| |
|
|
|
|
| |
No hashes were changed
|
|\
| |
| | |
cc-wrapper: Remove dead code
|
| |
| |
| |
| |
| |
| |
| | |
ccPath is only defined below, so this condition would never be true.
Worse, that's not quite true: what if somebody happend to have `/clang`
and no sandboxing. Boy, wouldn't that be annoying to debug!
|
|/
|
|
| |
No need for silly differences.
|
|\
| |
| |
| | |
That way the tarball job succeeds
|
| |
| |
| |
| | |
Ensured hashes unchanged and eval succeeds in tarball job
|
|/
|
|
|
|
| |
libDirs can be empty, which in combination with "set -u" of
9f1e009975dc2d58541de435c74a26afe011542a will cause a variable unbound
error on old bash versions
|
|
|
|
|
|
|
| |
CPP defaults to $(CC) -E and setting it explicitly seems to cause
issues in a number of packages like gcc and gdb.
https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Having multiple compilers in the build environment would result in an
invalid LD_DYLD_PATH like /usr/lib/dyld/usr/lib/dyld.
Since the path is hardcoded in XNU it can't be anything but
/usr/lib/dyld anyway.
|
| |
| |
| |
| |
| | |
Revert https://github.com/NixOS/nixpkgs/pull/27657#issuecomment-318161946
due to https://github.com/NixOS/nixpkgs/pull/28021#issuecomment-321045542
|
| | |
|
| |
| |
| |
| |
| | |
This ensures that all salted variables are defined even if the wrapped program
is invoked outside nix-build environment.
|
| |
| |
| |
| |
| |
| | |
This fixes a bug introduced in #27831: `for path in "$dir"/lib*.so` assumed that
all libs match `lib*.so`, but 07674788d6932fe702117649b4cd16512d2da8a9 started
adding libs that match `*.so` and `*.so.*`.
|
| |
| |
| |
| |
| |
| | |
This reverts commit 67a41eafe9c92269c9f6788f5f54a4b0d282cb96.
see #28021 for discussion
|
| |
| |
| |
| | |
cc @Ericson2314
|
| |
| |
| |
| |
| | |
Otherwise we end with a definition like `1 1`, which doesn't trigger the right
conditional.
|
| |
| |
| |
| |
| |
| | |
Now is an opportune time to do this, as the infixSalt conversion in
`add-flags.sh` ensures that all the relevant `NIX_*` vars will be
defined even if empty.
|
| |
| |
| |
| | |
See the added comments for what exactly has been done.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is basically a sed job, in preparation of the next commit. The
rules are more or less:
- s"NIX_(.._WRAPPER_)?([a-zA-Z0-9@]*)"NIX_\1@infixSalt@_\2"g
- except for non-cc-wrapper-specific vars like `NIX_DEBUG`
|
| |
| |
| |
| |
| |
| | |
This is an ugly temp hack for cross compilation, but now we have something better on the way.
Bind `infixSalt` as an environment variable as it will be used in it.
|
| |\
| | |
| | |
| | | |
Let's drop i686-linux here as well.
|
| | |\ |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As described in https://github.com/NixOS/nixpkgs/issues/18461, MacOS no
longer accepts dylibs which only reexport other dylibs, because their
symbol tables are empty. To get around this, we define an object file
with a single "private extern" symbol, which hopefully won't clobber
anything.
|