summary refs log tree commit diff
path: root/pkgs/stdenv/linux/make-bootstrap-tools.nix
Commit message (Collapse)AuthorAge
* Revert "Revert "Merge pull request #253760 from chivay/bootstrap-scrt""Artturin2023-09-30
| | | | This reverts commit 3f46cdcb5b903fe1c07707fea9ee24ae09d964b2.
* Revert "Merge pull request #253760 from chivay/bootstrap-scrt"Bernardo Meurer2023-09-08
| | | | | | | This reverts commit ab66640da31a80c4cfd38e8f495c23ef2f7e254b, reversing changes made to c08b005e0f6ce26d0269e9ac7e12747a29f822fb. The changes were merged without the associated bootstrap updates.
* stdenvBootstrapTools: Bundle all *.o files from libcHubert Jasudowicz2023-09-07
| | | | | | | | Include all runtime object files in output package, enabling different kinds of build modes - non-PIE, PIE, static PIE and profile-generated. Suggested by @trofi: https://github.com/NixOS/nixpkgs/pull/252310#issuecomment-1709425791
* gnugrep/stdenv: Fix PCRE support by replacing PCRE libJanne Heß2023-05-15
|
* Merge pull request #229289 from wegank/loongarch64-cross-bootstrapWeijia Wang2023-05-02
|\ | | | | pkgsCross.loongarch64-linux.freshBootstrapTools.bootstrapFiles: fix build
| * pkgsCross.loongarch64-linux.freshBootstrapTools.bootstrapFiles: fix buildWeijia Wang2023-05-02
| |
* | freshBootstrapTools: enable musl on RISC-VAlyssa Ross2023-05-01
|/ | | | | | musl now supports RISC-V. Let's centralise musl availability checks in musl.meta.platforms, so we don't have to keep cleaning up ad-hoc checks like this all over the tree.
* stdenvBootstrapTools: drop no-longer-needed, now-broken cross clauseAdam Joseph2023-04-26
| | | | | | | | | | | The comment stating that "GCC has certain things built in statically" is no longer true as of https://github.com/NixOS/nixpkgs/pull/209870. Moreover, as pointed out in https://github.com/NixOS/nixpkgs/pull/228130 this optionalString block no longer builds for pkgsCross.*.freshBootstrapTools. It is safe to drop this clause now.
* make-bootstrap-tools.nix: use a patchelf built with -static-{libgcc,libstdc++}Adam Joseph2023-04-02
| | | | | | | | | | | | | | | | | | | | Our bootstrap-files unpacker has always relied on a lot of unstated assumptions, one of them being that every library has a DT_NEEDED for librt.so, so patchelf'ing something into the RUNPATH into librt.so means that it will be searched for every library load in all of the bootstrap-files. Unfortunately that assumption is not true for libgcc. This causes problems, because patchelf links against libgcc (and against libstdc++, which links against libgcc). So we can't use patchelf on libgcc, because it needs libgcc, so patchelf doesn't work until libgcc is patchelfed. The robust solution here is to use static linking for the copy of patchelf that is shipped with the bootstrap-files. We don't have to go all the way to a statically linked libc; just -static-libgcc and -static-libstdc++ are enough to break the circular dependency.
* make-bootstrap-tools.nix: cp libgcc_s without -dAdam Joseph2023-04-02
| | | | | | We do not want to preserve the symlinks from libgcc_s, since they point to another outpath. We want to copy from that outpath rather than link to it.
* make-bootstrap-tools.nix: ship libisl.soAdam Joseph2023-04-02
| | | | | | Now that we've dropped the gcc-links-statically-to-lib{isl,mpfr,mpc,gmp} hack, our gcc needs libisl.so. Let's add it to the bootstrap-files.
* make-bootstrap-tools.nix: fix for wrapped gzipArtturin2023-01-21
|
* Merge remote-tracking branch 'origin/staging-next' into stagingSergei Trofimovich2023-01-20
|\ | | | | | | | | | | Conflicts: pkgs/development/libraries/qt-6/modules/qtbase.nix pkgs/stdenv/linux/make-bootstrap-tools.nix
| * make-bootstrap-tools.nix: don't pull in pkgs.glibc in test (#210038)sternenseemann2023-01-16
| | | | | | | | | | | | | | | | `builtins.baseNameOf` retains any string context, causing the test derivation to incorrectly depend on `pkgs.glibc`. All we really want is to know what the dynamicLinker is called, but we don't need it to be present in store. Thanks to Adam Joseph for spotting this.
* | make-bootstrap-tools: fix test to include libstdc++ -rpathSergei Trofimovich2023-01-14
|/ | | | | | | | | | | | | | | After https://github.com/NixOS/nixpkgs/pull/209054 we started moving libstdc++.so out of default glibc's paths. This exposed bootstrap tools build failure as: $ nix build --no-link -f ./pkgs/stdenv/linux/make-bootstrap-tools.nix ... > .../bin/bar: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory Note that bootstrap itself did not break. The change only expands handcrafted `-rpath` entries.
* make-bootstrap-tools.nix: drop libelf.so from tootstrap tarballsSergei Trofimovich2022-08-18
| | | | | | | gcc stopped using libelf in commit 48215350c24 ("re PR lto/46273 (Failed to bootstrap)") around 2010, before gcc-4.6.0. Bootstrap tools don't use it either.
* stdenvBootstrapTools: inherit {cross,local}SystemAlyssa Ross2022-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | It's expected that attributes in the top-level package set will all use that package set, but this wasn't the case for the bootstrap tools. This led some very confusing behaviour: - pkgsMusl.stdenvBootstrapTools would build glibc bootstrap tools - stdenvBootstrapTools was _always_ cross compiled, even if Nixpkgs wasn't, because it always set crossSystem. This also didn't match the behaviour of using make-bootstrap-tools.nix as an entrypoint, where crossSystem would default to null. For the Linux stdenv, I've made the ideal fix, which is to make pkgs an argument rather than taking the arguments for pkgs, and then re-importing it. This means it'll always use exactly the same package set that's calling it, and should also mean faster eval due to not importing Nixpkgs twice. The Darwin stdenv is more complicated, and I'm not able to easily test it, so I wasn't confident in making the same fix there. Instead, I've just made sure crossSystem and localSystem are set to the correct values so they're not always cross compiled and match the parent package set's. It would still be preferable if somebody could make Darwin's make-bootstrap-tools.nix take pkgs as an argument, rather than all the arguments for pkgs.
* config.contentAddressedByDefault: init optionArtturin2022-04-27
|
* Merge remote-tracking branch 'origin/staging-next' into stagingMartin Weinelt2022-04-05
|\
| * stdenv bootstrap tools: adjust with glibc-2.34 (2nd try)Vladimír Čunát2022-04-04
| | | | | | | | This time without rebuilding stdenvs.
* | binutils: rename gold to enableGoldBernardo Meurer2022-03-28
| |
* | stdenv: fix binutils' bootstrapBernardo Meurer2022-03-28
|/ | | | Co-authored-by: TredwellGit <tredwell@tutanota.com>
* make-bootstrap-tools: produce libatomic on riscv platformoxalica2021-11-26
|
* stdenv/make-bootstrap-tools: nuke yet another headerVladimír Čunát2021-07-16
| | | | This is needed after glibc bump from PR #111616.
* Also make the bootstrap tools generation CAregnat2021-04-28
| | | | (And fix an ofborg eval error btw)
* stdenv/bootstrap-tools: remove powerpc64 special caseRyan Burns2021-03-15
| | | | | Now that powerpc64 is always ELFv2, we can unconditionally use musl tools here.
* Merge pull request #111345 from r-burns/ppc64-big-endianJohn Ericson2021-01-30
|\ | | | | Enable PPC64 (big-endian)
| * bootstrap-tools-cross: add powerpc64-linuxRyan Burns2021-01-30
| | | | | | | | Also check for powerpc64-linux-elfv1, which does not support musl.
* | Merge #104742: linux bootstrap tools: fix tests on ppc64Vladimír Čunát2021-01-26
|\ \ | |/ |/|
| * linux bootstrap tools: fix tests on ppc64Ryan Burns2020-11-24
| | | | | | | | | | | | | | | | The dynamic loader on powerpc64 is called ld64.so.2 rather than ld-linux.so.*, and was not matched by the existing pattern. We reuse the dynamicLinker name from binutils to match a wider set of platforms and to avoid specifying this information in two places.
* | makeBootstrapTools: set schedulingPriorityFrederik Rietdijk2020-12-02
|/ | | | | | | | | | | | | | | Increase schedulingPriority of the bootstrap tools to unblock the nixpkgs-unstable channel. The channel is repeatedly blocked by the makeBootstrapTools job for aarch64. The cause is lack of resources. By increasing the priority, it should become the first job Hydra would build, allowing the channel to advance quicker. Of course, it does mean that while the channel advances, nothing else has been built. This should be a temporary solution until we have more capacity for aarch64.
* gcc: update to isl 0.20.0 for bootstrapping and recent versions (#103311)Arnout Engelen2020-11-17
|
* make-bootstrap-tools: add libssp to allow stack protector to workBen Wolsieffer2020-02-18
|
* make-bootstrap-tools: fixup after glibc updateVladimír Čunát2020-02-10
| | | | | | There's a generated header that got comment about the source header from glibc.dev, which added unwanted runtime dependency. Tested: nix build -f pkgs/top-level/release.nix stdenvBootstrapTools.{aarch64,i686,x86_64}-linux.test
* make-bootstrap-tools: use 'extreme' option to reduce size but not costWill Dietz2019-11-03
| | | | | | | Apparently this option trades compression time for size, and explicitly does so without increasing resources needed in decomp. Doesn't make tarball creation unbearable, so add it to options!
* binutils: offer "for bootstrap" variant that's less.. feature-completeWill Dietz2019-11-03
|
* gcc7: make building w/LTO support optional, don't use in bootstrap toolsWill Dietz2019-11-03
|
* Merge branch 'pr-46056' into stagingLéo Gaspard2018-11-28
|\ | | | | | | | | | | * pr-46056: binutils: use shared libs binutils: fix #44936 the huge size regression
| * binutils: use shared libsVladimír Čunát2018-09-04
| |
* | Merge remote-tracking branch 'upstream/master' into release-lib-cleanupJohn Ericson2018-11-01
|\ \
| * | make-bootstrap-tools: fix with latest coreutilsWill Dietz2018-09-23
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since gcc.lib/lib64 is a symlink to 'lib', the use of "lib*/libgcc_s.so*" triggered a warning (error) with the latest coreutils. Essentially we were doing: $ cp a/x b/x y/ And latest coreutils rejects such invocations. Just copy from 'lib', lib64 is a link to it anyway. * Nothing else in this file bothers looking at lib* * AFAICT lib* only ever possibly matched lib64 anyway
* | linux bootstrap tools: Use right system for some raw derivationsJohn Ericson2018-11-01
| | | | | | | | | | | | This allows cross builds to work. Evidentallyy this has been done wrong since I combined the bootstrap tool creation files in ab651d2c9bab620ebe5e515476fbd70d2c5b0c61. Oops!
* | linux bootstrap-tools: use `stdenv.*Platform` to avoid deprecation warningJohn Ericson2018-11-01
|/
* musl bootstrap: remove libiconvWill Dietz2018-04-24
|
* make-bootstrap-tools: preserve coreutils symlinksWill Dietz2018-03-06
| | | | | | We go out of our way (see top of file) to build a single binary with symlinks for all of the tools, but were losing them when preparing the bootstrap tools.
* Merge branch 'master' into gcc-7Shea Levy2018-02-18
|\
| * Enable building riscv64 cross bootstrap toolsShea Levy2018-02-18
|/ | | | Fixes #35089
* make-bootstrap-tools: set XZ to maximum level, big winsWill Dietz2018-02-13
| | | | x86_64 bootstrap tarball goes from 37M -> 21M (!)
* make-bootstrap-tools: grab libc from stdenv.cc.libcWill Dietz2018-02-13
| | | | | This is the same in current cases AFAICT, other than uses musl instead of glibc when musl-native.
* bootstrap-tools-musl: WIPWill Dietz2018-02-13
|