about summary refs log tree commit diff
path: root/pkgs/stdenv
AgeCommit message (Collapse)AuthorFilesLines
2019-04-12Merge pull request #59338 from matthewbauer/llvm-libc++Matthew Bauer1-1/+1
llvm8: support c++ in cross case
2019-04-11llvm8: support c++ in cross caseMatthew Bauer1-1/+1
this adds libc++ to the LLVM cross, giving us access to the full Nixpkgs set. This requires 4 stages of wrapped compilers: - Clang with no libraries - Clang with just compiler-rt - Clang with Libc, and compiler-rt - Clang with Libc++, Libc, and compiler-rt
2019-04-11check-env: don't execute check-meta.nix 15,000 timesGraham Christensen2-13/+15
Generated from https://github.com/NixOS/nix/pull/2761: ``` ns calls ns/call - /home/grahamc/projects/github.com/NixOS/nixpkgs/pkgs/stdenv/generic/check-meta.nix:22:5 591200 15026 39.3451 + /home/grahamc/projects/github.com/NixOS/nixpkgs/pkgs/stdenv/generic/check-meta.nix:22:5 8744 308 28.3896 ``` more, generated by: ``` $ NIX_SHOW_STATS=1 NIX_COUNT_CALLS=1 nix-instantiate ./pkgs/top-level/release.nix -A unstable > before 2>&1 $ jq -r '.functions | map((.name + ":" + .file + ":" + (.line|tostring) + ":" + (.column|tostring) + " " + (.count|tostring))) | .[]' before | sort > before.list ``` applying this patch, then: ``` $ NIX_SHOW_STATS=1 NIX_COUNT_CALLS=1 nix-instantiate ./pkgs/top-level/release.nix -A unstable > after 2>&1 $ jq -r '.functions | map((.name + ":" + .file + ":" + (.line|tostring) + ":" + (.column|tostring) + " " + (.count|tostring))) | .[]' after | sort > after.list ``` and then diffing before.list and after.list to get: ``` calls - :/home/grahamc/projects/github.com/NixOS/nixpkgs/pkgs/stdenv/generic/check-meta.nix:4:1 7513 + :/home/grahamc/projects/github.com/NixOS/nixpkgs/pkgs/stdenv/generic/check-meta.nix:4:1 154 - mutuallyExclusive:/home/grahamc/projects/github.com/NixOS/nixpkgs/lib/lists.nix:658:23 7513 + mutuallyExclusive:/home/grahamc/projects/github.com/NixOS/nixpkgs/lib/lists.nix:658:23 154 - mutuallyExclusive:/home/grahamc/projects/github.com/NixOS/nixpkgs/lib/lists.nix:658:26 7513 + mutuallyExclusive:/home/grahamc/projects/github.com/NixOS/nixpkgs/lib/lists.nix:658:26 154 - onlyLicenses:/home/grahamc/projects/github.com/NixOS/nixpkgs/pkgs/stdenv/generic/check-meta.nix:21:18 15026 + onlyLicenses:/home/grahamc/projects/github.com/NixOS/nixpkgs/pkgs/stdenv/generic/check-meta.nix:21:18 308 ``` The following information is from `NIX_SHOW_STATS=1 GC_INITIAL_HEAP_SIZE=4g nix-env -f ./outpaths.nix -qaP --no-name --out-path --arg checkMeta true`: | stat | before | after | Δ | Δ% | |:---------------------------|---------------:|---------------:|:----------------|--------:| | **cpuTime** | 179.915 | 145.543 | 🡖 34.372 | -19.10% | | **envs-bytes** | 3,900,878,824 | 3,599,483,208 | 🡖 301,395,616 | -7.73% | | **envs-elements** | 214,426,071 | 185,881,709 | 🡖 28,544,362 | -13.31% | | **envs-number** | 136,591,891 | 132,026,846 | 🡖 4,565,045 | -3.34% | | **gc-heapSize** | 11,400,048,640 | 12,314,890,240 | 🡕 914,841,600 | 8.02% | | **gc-totalBytes** | 25,976,902,560 | 24,510,740,176 | 🡖 1,466,162,384 | -5.64% | | **list-bytes** | 1,665,290,080 | 1,665,290,080 | 0 | | | **list-concats** | 7,264,417 | 7,264,417 | 0 | | | **list-elements** | 208,161,260 | 208,161,260 | 0 | | | **nrAvoided** | 191,359,386 | 179,693,661 | 🡖 11,665,725 | -6.10% | | **nrFunctionCalls** | 119,665,062 | 116,348,547 | 🡖 3,316,515 | -2.77% | | **nrLookups** | 80,996,257 | 76,069,825 | 🡖 4,926,432 | -6.08% | | **nrOpUpdateValuesCopied** | 213,930,649 | 213,930,649 | 0 | | | **nrOpUpdates** | 12,025,937 | 12,025,937 | 0 | | | **nrPrimOpCalls** | 88,105,604 | 86,451,598 | 🡖 1,654,006 | -1.88% | | **nrThunks** | 196,842,044 | 175,126,701 | 🡖 21,715,343 | -11.03% | | **sets-bytes** | 7,678,425,776 | 7,285,767,928 | 🡖 392,657,848 | -5.11% | | **sets-elements** | 310,241,340 | 294,373,227 | 🡖 15,868,113 | -5.11% | | **sets-number** | 29,079,202 | 27,601,310 | 🡖 1,477,892 | -5.08% | | **sizes-Attr** | 24 | 24 | 0 | | | **sizes-Bindings** | 8 | 8 | 0 | | | **sizes-Env** | 16 | 16 | 0 | | | **sizes-Value** | 24 | 24 | 0 | | | **symbols-bytes** | 16,474,666 | 16,474,676 | 🡕 10 | 0.00% | | **symbols-number** | 376,426 | 376,427 | 🡕 1 | 0.00% | | **values-bytes** | 6,856,506,288 | 6,316,585,560 | 🡖 539,920,728 | -7.87% | | **values-number** | 285,687,762 | 263,191,065 | 🡖 22,496,697 | -7.87% | The following information is from `NIX_SHOW_STATS=1 GC_INITIAL_HEAP_SIZE=4g nix-instantiate ./nixos/release-combined.nix -A tested`: | stat | before | after | Δ | Δ% | |:---------------------------|---------------:|---------------:|:----------------|-------:| | **cpuTime** | 256.071 | 237.531 | 🡖 18.54 | -7.24% | | **envs-bytes** | 7,111,004,192 | 7,041,478,520 | 🡖 69,525,672 | -0.98% | | **envs-elements** | 346,236,940 | 339,588,487 | 🡖 6,648,453 | -1.92% | | **envs-number** | 271,319,292 | 270,298,164 | 🡖 1,021,128 | -0.38% | | **gc-heapSize** | 8,995,291,136 | 10,110,009,344 | 🡕 1,114,718,208 | 12.39% | | **gc-totalBytes** | 37,172,737,408 | 36,878,391,888 | 🡖 294,345,520 | -0.79% | | **list-bytes** | 1,886,162,656 | 1,886,163,472 | 🡕 816 | 0.00% | | **list-concats** | 6,898,114 | 6,898,114 | 0 | | | **list-elements** | 235,770,332 | 235,770,434 | 🡕 102 | 0.00% | | **nrAvoided** | 328,829,821 | 326,618,157 | 🡖 2,211,664 | -0.67% | | **nrFunctionCalls** | 240,850,845 | 239,998,495 | 🡖 852,350 | -0.35% | | **nrLookups** | 144,849,632 | 142,126,339 | 🡖 2,723,293 | -1.88% | | **nrOpUpdateValuesCopied** | 251,032,504 | 251,032,504 | 0 | | | **nrOpUpdates** | 17,903,110 | 17,903,110 | 0 | | | **nrPrimOpCalls** | 140,674,913 | 139,485,975 | 🡖 1,188,938 | -0.85% | | **nrThunks** | 294,643,131 | 288,678,022 | 🡖 5,965,109 | -2.02% | | **sets-bytes** | 9,464,322,192 | 9,456,172,048 | 🡖 8,150,144 | -0.09% | | **sets-elements** | 377,474,889 | 377,134,877 | 🡖 340,012 | -0.09% | | **sets-number** | 50,615,607 | 50,616,875 | 🡕 1,268 | 0.00% | | **sizes-Attr** | 24 | 24 | 0 | | | **sizes-Bindings** | 8 | 8 | 0 | | | **sizes-Env** | 16 | 16 | 0 | | | **sizes-Value** | 24 | 24 | 0 | | | **symbols-bytes** | 3,147,102 | 3,147,064 | 🡖 38 | -0.00% | | **symbols-number** | 82,819 | 82,819 | 0 | | | **values-bytes** | 11,147,448,768 | 10,996,111,512 | 🡖 151,337,256 | -1.36% | | **values-number** | 464,477,032 | 458,171,313 | 🡖 6,305,719 | -1.36% |
2019-04-10androidndk: fixup messMatthew Bauer1-1/+1
New android ndk (18) now uses clang. We were going through the wrapper that are provided. This lead to surprising errors when building. Ideally we could use the llvm linker as well, but this leads to errors as many packages don’t support the llvm linker.
2019-03-24top-level: Create `pkgs{Build,Host,Target}{Build,Host,Target}`John Ericson1-7/+19
This is needed to avoid confusing and repeated boilerplate for `fooForTarget`. The vast majority of use-cases can still use `buildPackages or `targetPackages`, which are now defined in terms of these.
2019-03-14pkgs/stdenv/booter.nix: fix a typoJan Malakhovski1-1/+1
2019-03-01Merge pull request #51628 from ju1m/armMatthew Bauer2-0/+2
stdenv: add armv7a-linux system
2019-03-01Merge staging-next into masterFrederik Rietdijk1-0/+3
2019-02-26llvm: support cross compilation with useLLVM flagMatthew Bauer2-1/+3
You can build (partially) with LLVM toolchain using the useLLVM flag. This works like so: nix-build -A hello --arg crossSystem '{ system = "aarch64-unknown-linux-musl"; useLLVM = true }' also don’t separate debug info in lldClang It doesn’t work currently with that setup hook. Missing build-id?
2019-02-14stdenv: only set __darwinAllowLocalNetworking on darwinDaiderd Jordan1-0/+3
This is a darwin only nix attribute for sandbox builds, it can be ignored on other platforms to avoid unnecessary rebuilds.
2019-02-09Merge remote-tracking branch 'origin/master' into stagingMatthew Bauer1-6/+6
2019-02-04make-derivation: only modify name when name is givenMatthew Bauer1-2/+2
This preserves Nix’s native error handling of missing name: error: derivation name missing
2019-02-01mkDerivation: cleaner handling of the `name` argumentVincent Laporte1-5/+5
2019-02-01Merge branch 'staging-next' into stagingVladimír Čunát1-16/+13
2019-02-01Merge branch 'master' into staging-nextVladimír Čunát1-16/+13
Comments on conflicts: - llvm: d6f401e1 vs. 469ecc70 - docs for 6 and 7 say the default is to build all targets, so we should be fine - some pypi hashes: they were equivalent, just base16 vs. base32
2019-01-31Merge pull request #35884 from dtzWill/fix/man-in-outputsToInstallMatthew Bauer1-1/+2
default to including "man" in outputsToInstall
2019-01-28make-derivation: fix ordering of conditionalsMatthew Bauer1-3/+3
cross should have higher precedence
2019-01-28make-derivation: try to fix stdenv.cc == null conditionalMatthew Bauer1-1/+1
sometimes this gets an infinite recursion error
2019-01-28make-derivation: fix position in traceMatthew Bauer1-12/+10
For a long time now, tracing has been broken in Nixpkgs. So when you have an eval error you would get something like this: error: while evaluating the attribute 'buildInputs' of the derivation 'hello-2.10' at /home/mbauer/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:185:11: while evaluating 'chooseDevOutputs' at /home/mbauer/nixpkgs/lib/attrsets.nix:474:22, called from undefined position: while evaluating 'optionals' at /home/mbauer/nixpkgs/lib/lists.nix:257:5, called from /home/mbauer/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:132:17: This is coming from how Nix handles string context and how make-derivation messes with the "name" attribute. This commit should restore the old behavior so you get a nice line number like: error: while evaluating the attribute 'buildInputs' of the derivation 'hello-2.10' at /home/mbauer/nixpkgs/pkgs/applications/misc/hello/default.nix:4:3: while evaluating 'chooseDevOutputs' at /home/mbauer/nixpkgs/lib/attrsets.nix:474:22, called from undefined position: while evaluating 'optionals' at /home/mbauer/nixpkgs/lib/lists.nix:257:5, called from /home/mbauer/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:132:17: NOTE: This will still be broken for cross compilation due to the prefixes we are adding to name.
2019-01-27Merge pull request #49552 from matthewbauer/setup-dedupeMatthew Bauer1-0/+8
setup.sh: avoid running the same hook twice
2019-01-27setup.sh: avoid running the same hook twiceMatthew Bauer1-0/+8
In strictDeps=false, we don’t want the same package hook to be run twice, otherwise we get duplicates in some flags. Fixes #41340
2019-01-27stdenv/make-derivation: don't hide broken packagesMatthew Bauer1-3/+1
This behavior ended up breaking the handleEvalIssue functionality by hiding those packages. So something like this: $ nix-env -iA nixpkgs.zoom-us would silently fail, without telling the user how to fix it! Regardless, this "bug" should be handled in Nix - not Nixpkgs. Fixes #38952.
2019-01-27Merge pull request #54652 from matthewbauer/shell-in-flags-arrayMatthew Bauer1-3/+4
setup.sh: put SHELL in flagsArray
2019-01-26setup.sh: put SHELL in flagsArrayMatthew Bauer1-3/+4
We don’t want to modify makeFlags, that is given to us by our environment. Adding to it could lead to duplicates after repeated use. Fixes #27533
2019-01-26Merge branch 'master' into fix/man-in-outputsToInstallMatthew Bauer21-399/+683
2019-01-13stdenv: make checkInputs nativeFrederik Rietdijk1-4/+4
We can't run the checkPhase when build != host, so we may as well make the checkInputs native. This signicantly improves the situation of Python packages when enabling strictDeps.
2019-01-11stdenv: prune libtool files by default (#51767)Orivej Desh (NixOS)1-0/+1
See the motivation in fd97db43bcb05e37f6bb77f363f1e1e239d9de53 (#41819).
2019-01-10Merge remote-tracking branch 'origin/master' into stagingFranz Pletz2-2/+2
2019-01-07stdenv: allow custom stdenv to take crossOverlaysDylan Simon1-1/+1
2019-01-06darwin.make-bootstrap-tools: remove dsymutilMatthew Bauer1-1/+1
This hopefully is not needed for the bootstrap tools. Needs more testing.
2019-01-06add generic x86_32 support (#52634)Daniel Goertzen1-1/+3
* 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
2019-01-02Merge master into staging-nextFrederik Rietdijk2-5/+5
2019-01-02stdenv/native: add missing argumentAndrew Dunham1-1/+1
2018-12-31Merge pull request #36384 from dtzWill/musl-native-bootstrapWill Dietz1-4/+4
x86_64-musl bootstrap: refresh bootstrap tools package
2018-12-25Merge branch 'master' into stagingJan Tojnar1-1/+1
2018-12-22treewide: remove paxutils from stdenvJörg Thalheim4-13/+6
More then one year ago we removed grsecurity kernels from nixpkgs: https://github.com/NixOS/nixpkgs/pull/25277 This removes now also paxutils from stdenv.
2018-12-19Merge staging-next into stagingFrederik Rietdijk1-3/+9
2018-12-18Separate androidndkpkgs from androidenvSander van der Burg1-1/+1
2018-12-18stdenv: shorten evaluation errors when in HydraGraham Christensen1-3/+9
Hydra's page showing evaluation errors is about a mile long, showing buckets of user-friendly errors, like this: in job ‘seyren.aarch64-linux’: Package ‘oraclejre-8u191’ in /nix/store/fa9zzkbljkvdavwzirkrr5irg25ymbjl-source/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix:71 has an unfree license (‘unfree’), refusing to evaluate. a) For `nixos-rebuild` you can set { nixpkgs.config.allowUnfree = true; } in configuration.nix to override this. b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add { allowUnfree = true; } to ~/.config/nixpkgs/config.nix. in job ‘jetbrains.webstorm.x86_64-linux’: Package ‘webstorm-2018.3.1’ in /nix/store/fa9zzkbljkvdavwzirkrr5irg25ymbjl-source/pkgs/applications/editors/jetbrains/default.nix:230 has an unfree license (‘unfree’), refusing to evaluate. a) For `nixos-rebuild` you can set { nixpkgs.config.allowUnfree = true; } in configuration.nix to override this. b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add { allowUnfree = true; } to ~/.config/nixpkgs/config.nix. This makes it extremely hard to find actual issues in the output. This patch set makes the output much more condensed in Hydra: Failed to evaluate nifticlib-2.0.0: «unsupported»: is not supported on ‘x86_64-apple-darwin’ Failed to evaluate dmd-2.081.2: «unsupported»: is not supported on ‘aarch64-unknown-linux-gnu’ Failed to evaluate dmdBuild-2.081.2: «unsupported»: is not supported on ‘aarch64-unknown-linux-gnu’ Failed to evaluate ldc-1.11.0: «unsupported»: is not supported on ‘aarch64-unknown-linux-gnu’ Failed to evaluate ldcBuild-1.11.0: «unsupported»: is not supported on ‘aarch64-unknown-linux-gnu’ Failed to evaluate ldc-0.17.5: «unsupported»: is not supported on ‘aarch64-unknown-linux-gnu’ Failed to evaluate ldcBuild-0.17.5: «unsupported»: is not supported on ‘aarch64-unknown-linux-gnu’
2018-12-16Merge remote-tracking branch 'upstream/master' into stagingJan Tojnar1-4/+11
2018-12-14makeStaticBinaries: add a static glibc when performing a mkDerivationJames Kay1-4/+11
2018-12-10cctools: don’t depend on clang at runtimeMatthew Bauer1-1/+0
--disable-clang-as flag disables the use of clang by cctools-port
2018-12-09stdenv: prune libtool files by defaultPiotr Bogdan1-0/+1
2018-12-07Merge master into staging-nextFrederik Rietdijk10-18/+37
2018-12-06stdenv: add armv7a-linux systemJulien Moutinho2-0/+2
2018-12-05stdenv/darwin: fix portable libsystem hookMatthew Bauer1-2/+4
Some packages don’t have /bin directories. We should only run install_name_tool if that directory exists.
2018-12-04top-level/stage.nix: add static overlayMatthew Bauer1-0/+10
Adds the static overlay that can be used to build Nixpkgs statically. Can be used like: nix build pkgsStatic.hello Not all packages build, as some rely on dynamic linking.
2018-12-04stdenv/adapters.nix: fixup makeStaticBinariesMatthew Bauer1-3/+5
- makeStaticBinaries don’t work on Darwin (no stable ABI!) - Need to make sure NIX_CFLAGS_LINK appends - isStatic is not used anymore
2018-12-04stdenv: implement crossOverlaysMatthew Bauer8-15/+20
crossOverlays only apply to the packages being built, not the build packages. It is useful when you don’t care what is used to build your packages, just what is being built. The idea relies heavily on the cross compiling infrastructure. Using this implies that we need to create a cross stdenv.
2018-11-30Merge remote-tracking branch 'upstream/master' into stagingJan Tojnar1-1/+1