summary refs log tree commit diff
path: root/pkgs/build-support/bintools-wrapper
Commit message (Collapse)AuthorAge
* Merge pull request #74090 from obsidiansystems/ghcjs-cross-without-ccJohn Ericson2019-12-30
|\ | | | | stdenv, haskell: bonafied GHCJS cross compilation without stdenv.cc
| * Merge remote-tracking branch 'upstream/master' into ghcjs-cross-without-ccJohn Ericson2019-11-25
| |\
| * | stdenv: Introduce hasCC attributeJohn Ericson2019-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, we'd always use `cc = null`, and check for that. The problem is this breaks for cross compilation to platforms that don't support a C compiler. It's a very subtle issue. One might think there is no problem because we have `stdenvNoCC`, and presumably one would only build derivations that use that. The problem is that one still wants to use tools at build-time that are themselves built with a C compiler, and those are gotten via "splicing". The runtime version of those deps will explode, but the build time / `buildPackages` versions of those deps will be fine, and splicing attempts to work this by using `builtins.tryEval` to filter out any broken "higher priority" packages (runtime is the default and highest priority) so that both `foo` and `foo.nativeDrv` works. However, `tryEval` only catches certain evaluation failures (e.g. exceptions), and not arbitrary failures (such as `cc.attr` when `cc` is null). This means `tryEval` fails to let us use our build time deps, and everything comes apart. The right solution is, as usually, to get rid of splicing. Or, baring that, to make it so `foo` never works and one has to explicitly do `foo.*`. But that is a much larger change, and certaily one unsuitable to be backported to stable. Given that, we instead make an exception-throwing `cc` attribute, and create a `hasCC` attribute for those derivations which wish to condtionally use a C compiler: instead of doing `stdenv.cc or null == null` or something similar, one does `stdenv.hasCC`. This allows quering without "tripping" the exception, while also allowing `tryEval` to work. No platform without a C compiler is yet wired up by default. That will be done in a following commit.
* | | Merge remote-tracking branch 'upstream/staging-next' into stagingJohn Ericson2019-11-25
|\ \ \ | | |/ | |/|
| * | Merge pull request #72657 from cleverca22/vc4John Ericson2019-11-24
| |\ \ | | | | | | | | Initial implementation of vc4 cross-compile
| | * | initial implementation of vc4 cross-compileMichael Bishop2019-11-19
| | | |
* | | | Merge pull request #74065 from Ericson2314/cc-versionsJohn Ericson2019-11-24
|\ \ \ \ | |/ / / |/| | | compilers, binutils: Add version and pname
| * | | {cc,bintools}-wrapper: Inherit compiler versionCraig Hall2019-11-24
| | |/ | |/|
* | | Merge branch 'wrapper-pname-support-19.09' into wrapper-pname-supportJohn Ericson2019-11-24
|\| |
| * | bintools-wrapper: Fix versionJohn Ericson2019-11-24
| | |
* | | Merge remote-tracking branch 'upstream/master' into wrapper-pname-supportJohn Ericson2019-11-24
|\ \ \ | |/ / |/| |
| * | cc-wrapper, bintools-wrapper: Remove now unneeded `set {+,-}u`John Ericson2019-11-04
| | |
| * | bintools-wrapper: Don't stop `set -u`-ingJohn Ericson2019-11-01
| |/ | | | | | | Same justification as previous commit.
| * bintools-wrapper: avoid subshells: glob matchAlbert Safin2019-09-20
| |
| * bintools-wrapper: avoid subshells: upcaseAlbert Safin2019-09-20
| |
* | {cc,bintools}-wrapper: use cc pname/version if setCraig Hall2019-11-24
|/
* treewide: remove redundant quotesvolth2019-08-26
|
* wasm: init cross targetMatthew Bauer2019-04-23
| | | | | | | | | Adds pkgsCross.wasm32 and pkgsCross.wasm64. Use it to build Nixpkgs with a WebAssembly toolchain. stdenv/cross: use static overlay on isWasm isWasm doesn’t make sense dynamically linked.
* Merge branch 'master' into stagingJan Tojnar2019-04-05
|\
| * systems: support TI MSP430 microcontrollersAaron Lindsay2019-03-25
| |
* | Merge pull request #56031 from matthewbauer/prioritiesMatthew Bauer2019-03-09
|\ \ | | | | | | Add some more priorities
| * | bintools-wrapper: set low priorityMatthew Bauer2019-02-18
| | |
* | | bintools-wrapper: fix unknown emulation error messageMatthew Bauer2019-02-26
| | | | | | | | | | | | | | | Using the + operator with throw doesn’t seems to work properly. You need to use antiquotes here to get the targetPlatform config included.
* | | netbsd: add cross targetMatthew Bauer2019-02-26
| |/ |/|
* | Fix alpha-embedded Target on Hydra (#55725)Vincent Weisner2019-02-19
|/
* add generic x86_32 support (#52634)Daniel Goertzen2019-01-06
| | | | | | | | | | | | | | | | * add generic x86_32 support - Add support for i386-i586. - Add `isx86_32` predicate that can replace most uses of `isi686`. - `isi686` is reinterpreted to mean "exactly i686 arch, and not say i585 or i386". - This branch was used to build working i586 kernel running on i586 hardware. * revert `isi[345]86`, remove dead code - Remove changes to dead code in `doubles.nix` and `for-meta.nix`. - Remove `isi[345]86` predicates since other cpu families don't have specific model predicates. * remove i386-linux since linux not supported on that cpu
* Merge staging-next into stagingFrederik Rietdijk2018-11-22
|\
| * bintools: use i386 on all 32 bit x86 systemsMatthew Bauer2018-11-21
| |
* | Merge pull request #46115 from oxij/stdenv/bintools-cc-symlinkMichael Raskin2018-11-22
|\ \ | |/ |/| cc-wrapper, bintools-wrapper: simply symlink man and info outputs
| * cc-wrapper, bintools-wrapper: simply symlink man and info outputsJan Malakhovski2018-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous commit `propagateDoc` is now always given the correct value (i.e. it is never set to `true` when there are no `man` and `info` outputs). Hence, we can simply symlink the original outputs to the wrapper outputs. Pros: - simpler, less indirection compared to `propagated-user-env-packages`, - uses less inodes (1 symlink, which nix then simply automatically resolves and removes, vs. two directories and a file), - makes direct references like "export MANPATH=${stdenv.cc.man}/share/man" simply work. Cons: - I'm not aware of any. This and the previous commit together almost completely revert commits fde7296a4749efadbeb8b608b7b4cc01c3a6e6d7, fa412972091538376d1d4ffd446803b5d9385cbb, and c981787db951afb11c1328461df82d4277ebec07.
* | gcc: support avrMatthew Bauer2018-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - respect libc’s incdir and libdir - make non-unix systems single threaded - set LIMITS_H_TEST to false for avr - misc updates to support new libc’s - use multilib with avr For threads we want to use: - posix on unix systems - win32 on windows - single on everything else For avr: - add library directories for avrlibc - to disable relro and bind - avr5 should have precedence over avr3 - otherwise gcc uses the wrong one
* | avr: use new compilation infrastructureMatthew Bauer2018-10-29
|/ | | | | | | | | | Gets rid of: avrbinutils avrgcc to replace with: pkgsCross.avr.buildPackages.binutils pkgsCross.avr.buildPackages.gcc
* bintools-wrapper, cc-wrapper, stdenv: infer propagateDoc automaticallyJan Malakhovski2018-09-23
| | | | | | | | | | | | | | 02c09e01712ce0b61e5c8f7159047699a434f7fc (NixOS/nixpkgs#44558) was reverted in c981787db951afb11c1328461df82d4277ebec07 but, as it turns out, it fixed an issue I didn't know about at the time: the values of `propagateDoc` options were (and now again are) inconsistent with the underlying things those wrappers wrap (see NixOS/nixpkgs#46119), which was (and now is) likely to produce more instances of NixOS/nixpkgs#43547, if not now, then eventually as stdenv changes. This patch (which is a simplified version of the original reverted patch) is the simplest solution to this whole thing: it forces wrappers to directly inspect the outputs of the things they are wrapping instead of making stdenv guess the correct values.
* Revert "Merge pull request #44767 from obsidiansystems/wrapper-env-var-path"Matthew Bauer2018-08-22
| | | | | This reverts commit 89efc27f571368b475ce87e71445be10a9d1121a, reversing changes made to d0f11020ca55dfe20ecad05005343e3a3e3cbd90.
* [RFC] ppc64le enablement (#45340)CrystalGamma2018-08-21
| | | | | | | | | | | | | | | | * ppc64le enablement * gcc, glibc: properly handle __float128 * lib/systems, stdenv: syntax cleanup * gcc7: remove ugly hack * gcc: add/update __float128 flags * stdenv: add another pair of quotes for consistency * gcc: move __float128 flag for ppc64le-glibc into common/platform-flags.nix
* Merge pull request #44767 from obsidiansystems/wrapper-env-var-pathJohn Ericson2018-08-17
|\ | | | | {cc,bintools}-wrapper, ghc, libgcc: Define wrapper env vars as full paths
| * bintools-wrapper: Define env vars with full pathJohn Ericson2018-08-08
| |
* | bintools-wrapper: propagated-build-inputs -> propagated-user-env-packagesEelco Dolstra2018-08-09
| |
* | Revert "cc-wrapper, bintools-wrapper: simply symlink man and info outputs"Eelco Dolstra2018-08-09
| | | | | | | | This reverts commit 02c09e01712ce0b61e5c8f7159047699a434f7fc.
* | cc-wrapper, bintools-wrapper: simply symlink man and info outputsJan Malakhovski2018-08-06
|/ | | | See discussion in #44516.
* {cc,bintools}-wrapper: also replace . in configMatthew Bauer2018-07-28
| | | | | Some configs will have dots for version numbers. To normalize we can just use _ again.
* systems: Allow detection of powerpc and sparcJohn Q Crosscompiler2018-07-26
|
* Merge staging-next into master (#44009)Frederik Rietdijk2018-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * substitute(): --subst-var was silently coercing to "" if the variable does not exist. * libffi: simplify using `checkInputs` * pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix * utillinux: 2.32 -> 2.32.1 https://lkml.org/lkml/2018/7/16/532 * busybox: 1.29.0 -> 1.29.1 * bind: 9.12.1-P2 -> 9.12.2 https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html * curl: 7.60.0 -> 7.61.0 * gvfs: make tests run, but disable * ilmbase: disable tests on i686. Spooky! * mdds: fix tests * git: disable checks as tests are run in installcheck * ruby: disable tests * libcommuni: disable checks as tests are run in installcheck * librdf: make tests run, but disable * neon, neon_0_29: make tests run, but disable * pciutils: 3.6.0 -> 3.6.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions. * mesa: more include fixes mostly from void-linux (thanks!) * npth: 1.5 -> 1.6 minor bump * boost167: Add lockfree next_prior patch * stdenv: cleanup darwin bootstrapping Also gets rid of the full python and some of it's dependencies in the stdenv build closure. * Revert "pciutils: use standardized equivalent for canonicalize_file_name" This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7. Patching should no longer be needed with 3.6.1. * binutils-wrapper: Try to avoid adding unnecessary -L flags (cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9) Signed-off-by: Domen Kožar <domen@dev.si> * libffi: don't check on darwin libffi usages in stdenv broken darwin. We need to disable doCheck for that case. * "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook * python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273 When `py.test` was run with a folder as argument, it would not only search for tests in that folder, but also create a .pytest-cache folder. Not only is this state we don't want, but it was also causing collisions. * parity-ui: fix after merge * python.pkgs.pytest-flake8: disable test, fix build * Revert "meson: 0.46.1 -> 0.47.0" With meson 0.47.0 (or 0.47.1, or git) things are very wrong re:rpath handling resulting in at best missing libs but even corrupt binaries :(. When we run patchelf it masks the problem by removing obviously busted paths. Which is probably why this wasn't noticed immediately. Unfortunately the binary already has a long series of paths scribbled in a space intended for a much smaller string; in my testing it was something like lengths were 67 with 300+ written to it. I think we've reported the relevant issues upstream, but unfortunately it appears our patches are what introduces the overwrite/corruption (by no longer being correct in what they assume) This doesn't look so bad to fix but it's not something I can spend more time on at the moment. -- Interestingly the overwritten string data (because it is scribbled past the bounds) remains in the binary and is why we're suddenly seeing unexpected references in various builds -- notably this is is the reason we're seeing the "extra-utils" breakage that entirely crippled NixOS on master (and probably on staging before?). Fixes #43650. This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d. (cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d) Signed-off-by: Domen Kožar <domen@dev.si>
* cc-wrapper, bintools-wrapper: use getHostRoleEnvHook instead of ↵Ben Wolsieffer2018-06-03
| | | | | | getTargetRoleEnvHook Fixes include and link paths when cross compiling.
* Merge remote-tracking branch 'upstream/staging' into strictDepsJohn Ericson2018-05-14
|\
| * Merge pull request #40139 from obsidiansystems/modular-setup-hooksJohn Ericson2018-05-07
| |\ | | | | | | treewide: Modular setup hooks
| | * {bintools,cc}-wrapper: Factor out role accumulation logicJohn Ericson2018-05-07
| | |
| | * treewide: Use pkgs/build-support/roles.bash to remove copy pastaJohn Ericson2018-05-07
| | | | | | | | | | | | | | | Also fix some setup hooks that unnecessarily used environment hooks, which revolted in the same variable being modified too many times.
| * | Merge branch 'staging' into fix-ncurses-darwin-extensionsMatthew Justin Bauer2018-05-02
| |\ \ | | |/ | |/|
| | * bintools-wrapper, cc-wrapper: don't add `targetPrefix` the second timeJan Malakhovski2018-04-26
| | | | | | | | | | | | | | | | | | | | | ... binutils and gcc add it already anyway. Without this it's easy to get cross-toolchain paths longer than 256 chars and nix-daemon will then fail to commit them to /nix/store on XFS.