From aa26710b444a2a976aa21ea983a09224c4c9cfa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 19 May 2010 21:31:21 +0000 Subject: [PATCH] GCC 4.5: Add patch to fix GNU/Hurd builds. svn path=/nixpkgs/trunk/; revision=21903 --- .../development/compilers/gcc-4.5/default.nix | 2 +- .../compilers/gcc-4.5/softfp-hurd.patch | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/compilers/gcc-4.5/softfp-hurd.patch diff --git a/pkgs/development/compilers/gcc-4.5/default.nix b/pkgs/development/compilers/gcc-4.5/default.nix index 9ef82293242..8ec79d7c43d 100644 --- a/pkgs/development/compilers/gcc-4.5/default.nix +++ b/pkgs/development/compilers/gcc-4.5/default.nix @@ -132,7 +132,7 @@ stdenv.mkDerivation ({ }; patches = - [ ] + [ ./softfp-hurd.patch ] ++ optional (cross != null) ./libstdc++-target.patch ++ optional noSysDirs ./no-sys-dirs.patch # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its diff --git a/pkgs/development/compilers/gcc-4.5/softfp-hurd.patch b/pkgs/development/compilers/gcc-4.5/softfp-hurd.patch new file mode 100644 index 00000000000..7e2a8a9c290 --- /dev/null +++ b/pkgs/development/compilers/gcc-4.5/softfp-hurd.patch @@ -0,0 +1,32 @@ +This patch fixes undefined references to softp symbols (__multf3, __fixunstfsi, +__subtf3, etc.) in libgcc_s.so on GNU/Hurd. + +Taken from , with second +hunk adjusted so that it applies to GCC 4.5.0. + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 9e499cb..9aec392 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -3070,7 +3070,9 @@ case ${target} in + i[34567]86-*-darwin* | x86_64-*-darwin*) + tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" + ;; +- i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu) ++ i[34567]86-*-linux* | x86_64-*-linux* | \ ++ i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \ ++ i[34567]86-*-gnu*) + tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux" + ;; + ia64*-*-linux*) +diff --git a/libgcc/config.host b/libgcc/config.host +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -600,6 +600,7 @@ case ${host} in + i[34567]86-*-darwin* | x86_64-*-darwin* | \ + i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \ + i[34567]86-*-linux* | x86_64-*-linux* | \ ++ i[34567]86-*-gnu* | \ + i[34567]86-*-solaris2* | \ + i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*) + if test "${host_address}" = 32; then