From 7f6b1e9abd5dd14c4cb304b06f55c72bc87a6b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 7 Apr 2010 15:53:34 +0000 Subject: [PATCH] GCC 4.4: Fix shared library support of sparc64-linux-gnu cross-compiler. svn path=/nixpkgs/trunk/; revision=20975 --- .../development/compilers/gcc-4.4/default.nix | 3 ++- .../compilers/gcc-4.4/pr41818.patch | 26 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 --- 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 pkgs/development/compilers/gcc-4.4/pr41818.patch diff --git a/pkgs/development/compilers/gcc-4.4/default.nix b/pkgs/development/compilers/gcc-4.4/default.nix index 9ec2c4859921..b1b7aaa33601 100644 --- a/pkgs/development/compilers/gcc-4.4/default.nix +++ b/pkgs/development/compilers/gcc-4.4/default.nix @@ -120,7 +120,8 @@ stdenv.mkDerivation ({ # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its # target libraries and tools. ++ optional langAda ./gnat-cflags.patch - ++ optional langVhdl ./ghdl-ortho-cflags.patch; + ++ optional langVhdl ./ghdl-ortho-cflags.patch + ++ optional (cross != null && cross.arch == "sparc64") ./pr41818.patch; inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic libcCross; diff --git a/pkgs/development/compilers/gcc-4.4/pr41818.patch b/pkgs/development/compilers/gcc-4.4/pr41818.patch new file mode 100644 index 000000000000..98731c460679 --- /dev/null +++ b/pkgs/development/compilers/gcc-4.4/pr41818.patch @@ -0,0 +1,26 @@ +From . This fixes compilation +of the sparc64-linux-gnu cross-compiler with shared libraries. + +--- trunk/Makefile.in 2010/01/07 19:21:46 155705 ++++ trunk/Makefile.in 2010/01/07 19:53:50 155706 +@@ -259,7 +259,7 @@ + # directories built for the target. + TARGET_CONFIGARGS = @target_configargs@ --with-target-subdir="$(TARGET_SUBDIR)" + # This is the list of variables to export in the environment when +-# configuring subdirectories for the host system. ++# configuring subdirectories for the target system. + BASE_TARGET_EXPORTS = \ + $(BASE_EXPORTS) \ + AR="$(AR_FOR_TARGET)"; export AR; \ +@@ -281,7 +281,10 @@ + STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \ +- $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); ++@if gcc-bootstrap ++ $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \ ++@endif gcc-bootstrap ++ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); + + RAW_CXX_TARGET_EXPORTS = \ + $(BASE_TARGET_EXPORTS) \ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2fb62c64dbff..f10e7a3a2780 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1988,9 +1988,6 @@ let libcCross = libcCross; profiledCompiler = false; enableMultilib = false; - # cross-building for ultrasparc in 4.4.3 will require disabling shared due to a gcc bug. - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41818 - enableShared = if (crossSystem.arch == "sparc64") then false else true; crossStageStatic = false; cross = assert crossSystem != null; crossSystem; });