summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch')
-rw-r--r--dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch b/dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch
new file mode 100644
index 000000000000..37bfab110fd0
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-6.12.3-ia64-fixed-relax.patch
@@ -0,0 +1,35 @@
+commit 7b45030b81fb0588b858400c051f9f7c10ef2760
+Author: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Tue Jul 6 11:39:18 2010 +0300
+
+ Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
+
+ /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
+ dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
+ /usr/bin/ld: unrecognized option '-Wl,--relax'
+
+ If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
+
+ Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
+ Removing ia64 specific path.
+
+ Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+
+diff --git a/compiler/ghc.mk b/compiler/ghc.mk
+index 6b25efa..29d3ade 100644
+--- a/compiler/ghc.mk
++++ b/compiler/ghc.mk
+@@ -337,13 +337,6 @@ ifeq "$(TargetOS_CPP)" "openbsd"
+ compiler_CONFIGURE_OPTS += --ld-options=-E
+ endif
+
+-ifeq "$(GhcUnregisterised)" "NO"
+-ifeq "$(HOSTPLATFORM)" "ia64-unknown-linux"
+-# needed for generating proper relocation in large binaries: trac #856
+-compiler_CONFIGURE_OPTS += --ld-option=-Wl,--relax
+-endif
+-endif
+-
+ # We need to turn on profiling either if we have been asked to
+ # (GhcLibProfiled = YES) or if we want GHC itself to be compiled with
+ # profiling enabled (GhcProfiled = YES).