-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gcc: if isPower64, add --with-long-double-64 --without-long-double-128 #170857
Commits on Apr 20, 2022
-
stdenv: force gmp to rebuild in stage4 of the bootstrap
As explained in the comment, this ensures that stage4-coreutils does not leak a reference to the bootstrap-files by way of libgmp. This will allow the next patch in this series to build stage4-coreutils using a dynamically-linked (rather than statically-linked) libgmp.
Adam Joseph committedApr 20, 2022 Configuration menu - View commit details
-
Copy full SHA for c527af1 - Browse repository at this point
Copy the full SHA c527af1View commit details -
stdenv: cause makeStaticLibraries usage to agree with usage spec
The usage of `makeStaticLibraries` in stdenv/linux/default.nix is prefaced by this comment: # Link GCC statically against GMP etc. This makes sense because # these builds of the libraries are only used by GCC, so it # reduces the size of the stdenv closure. However "these builds of the libraries are only used by GCC" is not actually true. As currently written, the stage4 coreutils links against these customized, static-ified libraries. Beside the fact that the code doesn't actually do what it says, this causes other problems as well. One example is #168983, which arises because have a dynamically-linked binary (coreutils) which is built from statically-linked libraries (libgmp.a); doing this causes mayhem on platforms where `-fstack-protector` needs an auxiliary `libssp.{so,a}` library; we end up with link failures because some parts of the resulting binary want `libssp.so` and other parts want `libssp_nonshared.a`. Let's make the code actually do what the comment says, by moving these definitions into the `gcc-unwrapped` override. This will cause the stage4-coreutils to link against libgmp dynamically, rather than statically. For this reason this commit depends on the previous commit, which allows that to be done without creating a forbidden reference from stdenv-final to the bootstrap-files.
Adam Joseph committedApr 20, 2022 Configuration menu - View commit details
-
Copy full SHA for cad68ef - Browse repository at this point
Copy the full SHA cad68efView commit details -
stdenv: label the ephemeral coreutils-stage4 package
During stdenv bootstrapping, coreutils is built twice. This makes troubleshooting very difficult, because both packages have name="coreutils", so it is a hassle to figure out "which coreutils am I using / is not building"? The first of these builds is used only in stage4, and is not part of the final stdenv. Let's label that one with a different `name` attribute to make it obvious which is which.
Adam Joseph committedApr 20, 2022 Configuration menu - View commit details
-
Copy full SHA for 9dd7908 - Browse repository at this point
Copy the full SHA 9dd7908View commit details -
Update pkgs/stdenv/linux/default.nix
Co-authored-by: sternenseemann <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 502d902 - Browse repository at this point
Copy the full SHA 502d902View commit details
Commits on Apr 27, 2022
-
stdenv: add -stageX markers to gmp, mpfr, libmpc, and isl
Adam Joseph committedApr 27, 2022 Configuration menu - View commit details
-
Copy full SHA for 5d2aa78 - Browse repository at this point
Copy the full SHA 5d2aa78View commit details
Commits on Apr 29, 2022
-
gcc: backport cda41ce0 from gcc 11.1.0 if isPower64 && isMusl
A bug in libgcc which manifests when building static binaries using musl-libc was fixed in gcc 11.1.0, but the fix has not been backported to gcc 10. This commit cherry-picks the commit from upstream and applies it in the case (isPower64 && isMusl) where it matters: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=cda41ce0e8414aec59e6b9fbe645d96e6e8193e2
Adam Joseph committedApr 29, 2022 Configuration menu - View commit details
-
Copy full SHA for fde903a - Browse repository at this point
Copy the full SHA fde903aView commit details -
gcc: if isPower64, add --with-long-double-64 --without-long-double-128
This commit causes powerpc*-*-gnu to be configured with 64-bit IEEE-compliant `long double` (the same as ordinary `double`) rather than the nonstandard, non-IEEE "IBM double" format from AIX. Support for using only IEEE 128-bit doubles in glibc is not yet ready. This resolves several package test failures caused by weird nonstandard floating-point semantics. It also eliminates a lot of difficulties that arise when using glibc-linked tools to compile for musl-libc and vice versa. There is a long comment included in gcc/common/platform-flags.nix explaining the situation and the reasoning.
Adam Joseph committedApr 29, 2022 Configuration menu - View commit details
-
Copy full SHA for 14af95e - Browse repository at this point
Copy the full SHA 14af95eView commit details