3
0
Fork 0
forked from mirrors/nixpkgs

GCC 4.4: Fix shared library support of sparc64-linux-gnu cross-compiler.

svn path=/nixpkgs/trunk/; revision=20975
This commit is contained in:
Ludovic Courtès 2010-04-07 15:53:34 +00:00
parent 7b9ccbd457
commit 7f6b1e9abd
3 changed files with 28 additions and 4 deletions

View file

@ -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;

View file

@ -0,0 +1,26 @@
From <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41818>. 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) \

View file

@ -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;
});