| 3 Oct 2025 |
K900 | This should not affect the non-bootstrap-tools GCC at least? | 11:57:39 |
Vladimír Čunát | It shouldn't affect anything practical until we regenerate the bootrap GCC, yes. | 11:58:18 |
Vladimír Čunát | * It shouldn't affect anything practical until we regenerate the bootstrap GCC, yes. | 11:58:31 |
K900 | What I'm saying is I don't think we care about the PIE-ness of bootstrap-tools GCC? | 11:58:52 |
Vladimír Čunát |
It results in a compiler that opportunistically enables pie whenever it does not conflict with other flags.
| 11:59:49 |
Vladimír Čunát | i.e. it affects things compiled with this GCC. | 11:59:59 |
Vladimír Čunát | So that's why I was mentioning that I'm not sure how many times we roll things during bootstrapping. Some tools in the final package set are not built by the final GCC, of course. | 12:00:46 |
Vladimír Čunát | * So that's why I was mentioning that I'm not sure how many times we roll things during bootstrapping. Some stuff in the final package set are not built by the final GCC, of course. | 12:00:53 |
K900 | Oof | 12:01:01 |
K900 | OK | 12:01:02 |
K900 | That makes things worse | 12:01:05 |
K900 | But probably fine given our current bootstrap GCC is also like this? | 12:01:16 |
Vladimír Čunát | We don't immediately use the new tools anyway. | 12:04:16 |
Vladimír Čunát | * We don't immediately use the new bootstrap tools anyway. | 12:04:40 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | its also strictly better than a revert: Not as big of a rebuild, and at least some things get pie | 12:05:10 |
Vladimír Čunát | We just test that the new tools would work, at least a little, and that's a channel blocker. | 12:05:13 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | i don't want to claim this is the best fix. But unless anyone more competent proposes a better fix, then this is the best we have | 12:06:25 |
dramforever | suspecting something weird going on with https://github.com/gcc-mirror/gcc/commit/b6cb10af12cf869c1ae348c0e5cb2d364ef0abce | 12:09:01 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | https://github.com/NixOS/nixpkgs/pull/448220
do what you want with it XD | 12:14:54 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | darwin probably needs an all-new bisect | 12:15:06 |
dramforever | found it https://github.com/gcc-mirror/gcc/commit/3f1f99ef82a65d66e3aaa429bf4fb746b93da0db | 12:26:24 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | but we can't reasonably fetch that without a gcc rebuild, right? | 12:27:56 |
dramforever | yeah we can do that next cycle | 12:28:27 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | or you suggesting an overrideAttrs { patches = ....; } ? | 12:28:29 |
dramforever | well it's less of a suggestion of action, and more of a "good" news: we (nixpkgs) didn't do something wrong | 12:29:45 |
dramforever | so just to confirm, we don't actually use stdenvBootstrapTools, right | 12:31:29 |
dramforever | oh, already mentioned | 12:31:53 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | just checking to be sure:
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 6a1507df734d..9cb28012d849 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -47,10 +47,17 @@ rec {
'';
};
- bootGCC = pkgs.gcc.cc.override {
+ bootGCC = (pkgs.gcc.cc.override {
enableLTO = false;
isl = null;
- };
+ }).overrideAttrs (old: {
+ patches = old.patches or [] ++ [
+ (pkgs.fetchpatch {
+ url = "https://github.com/gcc-mirror/gcc/commit/3f1f99ef82a65d66e3aaa429bf4fb746b93da0db.patch";
+ hash = "sha256-wKVuwrW22gSN1woYFYxsyVk49oYmbogIN6FWbU8cVds=";
+ })
+ ];
+ });
bootBinutils = pkgs.binutils.bintools.override {
withAllTargets = false;
| 12:36:24 |
Grimmauld (migrated to @grimmauld:m.grimmauld.de) | might be the better fix, but at the very least it'll confirm whether it is indeed fixed by that commit | 12:37:12 |
dramforever | i don't think it's necessarily worthwhile to make this "good" | 12:38:35 |