summary refs log tree commit diff
path: root/pkgs/build-support/bintools-wrapper/default.nix
Commit message (Collapse)AuthorAge
* Merge pull request #83180 from matthewbauer/only-add-ldflags-for-macosMatthew Bauer2020-05-13
|\ | | | | bintools: only add macos flags when targeting macOS
| * bintools: only add macos flags when targeting macOSMatthew Bauer2020-03-23
| | | | | | | | | | | | | | | | | | We can’t set this for cross-compiling since we use the GNU linker. Instead, set these flags only when targetPlatform is macOS. Fixes #80754 Fixes #83141
* | *-wrapper; Switch from `infixSalt` to `suffixSalt`John Ericson2020-05-12
| | | | | | | | | | | | | | I hate the thing too even though I made it, and rather just get rid of it. But we can't do that yet. In the meantime, this brings us more inline with autoconf and will make it slightly easier for me to write a pkg-config wrapper, which we need.
* | bintools-wrapper: only propagate .info output if it exists in the originalDmitry Kalinkin2020-04-20
|/
* 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.
* / {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.
* [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
* 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 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.
| * | treewide: isArm -> isAarch32John Ericson2018-04-25
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following legacy packing conventions, `isArm` was defined just for 32-bit ARM instruction set. This is confusing to non packagers though, because Aarch64 is an ARM instruction set. The official ARM overview for ARMv8[1] is surprisingly not confusing, given the overall state of affairs for ARM naming conventions, and offers us a solution. It divides the nomenclature into three levels: ``` ISA: ARMv8 {-A, -R, -M} / \ Mode: Aarch32 Aarch64 | / \ Encoding: A64 A32 T32 ``` At the top is the overall v8 instruction set archicture. Second are the two modes, defined by bitwidth but differing in other semantics too, and buttom are the encodings, (hopefully?) isomorphic if they encode the same mode. The 32 bit encodings are mostly backwards compatible with previous non-Thumb and Thumb encodings, and if so we can pun the mode names to instead mean "sets of compatable or isomorphic encodings", and then voilà we have nice names for 32-bit and 64-bit arm instruction sets which do not use the word ARM so as to not confused either laymen or experienced ARM packages. [1]: https://developer.arm.com/products/architecture/a-profile
| * Added bionic dynamic linkerWill Fancher2018-03-27
| |
| * Merge remote-tracking branch 'upstream/master' into stagingTuomas Tynkkynen2018-02-28
| |\ | | | | | | | | | | | | | | | | | | Conflicts: pkgs/applications/misc/pytrainer/default.nix pkgs/development/tools/pew/default.nix pkgs/tools/misc/you-get/default.nix