From d9fdfffef9d6538cf2642777ad9027af5aeee8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Thu, 24 May 2012 19:02:27 +0000 Subject: [PATCH] Fixing the mingw cross gcc. I set it not to build shared libraries, because its specs for shared libraries are wrong. It should run "-lstdc++ -lsupc++" if libstdc++-6.dll is available, and instead it runs "-lstdc++" and therefore lack symbols. I think simply few people use shared gcc libs on mingw. svn path=/nixpkgs/trunk/; revision=34225 --- pkgs/development/compilers/gcc/4.6/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/gcc/4.6/default.nix b/pkgs/development/compilers/gcc/4.6/default.nix index 3955455df4c..b47a9457077 100644 --- a/pkgs/development/compilers/gcc/4.6/default.nix +++ b/pkgs/development/compilers/gcc/4.6/default.nix @@ -130,7 +130,11 @@ let version = "4.6.3"; " --enable-version-specific-runtime-libs" + " --disable-libssp" + " --disable-nls" + - " --with-dwarf2" + " --with-dwarf2" + + # I think noone uses shared gcc libs in mingw, so we better do the same. + # In any case, g++ linking is broken by default with shared libs, + # unless adding "-lsupc++" to any linking command. I don't know why. + " --disable-shared" else " --enable-threads=posix" + " --enable-nls" + @@ -426,7 +430,8 @@ stdenv.mkDerivation ({ installTargets = "install-gcc install-target-libgcc"; } -// optionalAttrs (!stripped) { dontStrip = true; NIX_STRIP_DEBUG = 0; } +# Strip kills static libs of other archs (hence cross != null) +// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; } // optionalAttrs langVhdl rec { name = "ghdl-0.29";