Closed tadeokondrak closed 5 years ago
Got the same error when rebuilding my system on nixos-unstable channel
relevant log: https://hydra.nixos.org/build/95394915/nixlog/1
I think previously this was fixed by using gcc6 instead of gcc7. Something like this for qtbase:
// (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
}))
I am also having this problem. I have bisected it to 1a6e572529595d146a259fa433785ebb3215d8d2
I attempted to apply @matthewbauer 's suggestion to only qt packages. The failure is the same. Perhaps a dependency also needs to compile with gcc6? Is there a way to default the i686 packages to gcc6?
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7241,7 +7241,7 @@ in
gerbil-unstable = callPackage ../development/compilers/gerbil/unstable.nix { stdenv = gccStdenv; };
gccFun = callPackage ../development/compilers/gcc/7;
- gcc = gcc7;
+ gcc = if stdenv.isi686 then gcc6 else gcc7;
gcc-unwrapped = gcc.cc;
gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
Maybe that would be a usable workaround. EDIT: at least it does make pkgsi686Linux.qt5.qtbase
build again (for me).
In any case, more in-depth discussion of this was in https://github.com/NixOS/nixpkgs/issues/36947
@vcunat that worked for almost everything. Except packages using -Wno-error=pointer-compare
. That causes a failure. EG: dhcp:
configure:3799: checking whether the C compiler works
configure:3821: gcc conftest.c >&5
cc1: error: -Werror=pointer-compare: no option -Wpointer-compare
configure:3825: $? = 1
configure:3863: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "DHCP"
| #define PACKAGE_TARNAME "dhcp"
| #define PACKAGE_VERSION "4.4.1"
| #define PACKAGE_STRING "DHCP 4.4.1"
<snip>
I've overrideAttr the dhcp to confirm. There are ~10 other derivations using that warning. Is it necessary to override each individually?
@tadeokondrak FWIW, wine.override { gstreamerSupport = false; }
works around this, assuming you don't need gstreamer support of course...
@Shados gstreamerSupport in wine cause more problems than solve (concretely -- wrapper with gstreamer specific variables for wine64), but it completely unrelated for this case
@avnik it is unrelated to the ultimate cause, yes. It is still a useful workaround for the symptom that tadeokondrak was dealing with (being unable to build wine). I mis-judged whether or not that would be clear from context...
qtbase still fails to build on latest unstable and latest unstable-small.
@vcunat Perhaps we can use that fix for now? Otherwise I'm not sure how to handle it without breaking something else.
That might solve on symptom of the problem but not the root cause.
If I try to build wine on my x64 machine it wants to build some version of qtbase
and that fails. Even with vcunat's patch it doesn't build.
I was able to compile (almost) the full plasma 5 desktop with:
--- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7241,7 +7241,7 @@ in gerbil-unstable = callPackage ../development/compilers/gerbil/unstable.nix { stdenv = gccStdenv; }; gccFun = callPackage ../development/compilers/gcc/7; - gcc = gcc7; + gcc = if stdenv.isi686 then gcc6 else gcc7; gcc-unwrapped = gcc.cc; gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
To get everything to build required some application of:
However, while that passes the plasma5 test on my branch I can't actually get plasma to run on my desktop. Nor can I get many QT apps to run. Those issues may be regressions from #64720 until that's verified I'm reluctant to open a PR with those workarounds.
Tho compiling and failing is better than not compiling for dev I suppose...
Issue description
Seems to be related to #36946/#36947. Makes it so I can't use
wine
, which depends on it for some reasonSteps to reproduce
nix-build '<nixpkgs>' -A pkgsi686Linux.qt5.qtbase
Technical details
Please run
nix-shell -p nix-info --run "nix-info -m"
and paste the results."x86_64-linux"
Linux 5.1.15, NixOS, 19.09.git.5500538 (Loris)
yes
yes
nix-env (Nix) 2.2.2
/etc/nixos/nixpkgs