summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2013-06-26 15:13:54 +0200
committerLuboš Luňák <l.lunak@suse.cz>2013-06-28 14:06:32 +0200
commitc6f67833bd79f267afb83ce51939f7f084337a44 (patch)
treea2b0a0f4a22855e973cb4aebdc6f41aa6e109ff2
parentda11528150df545a31df3c9863bd4c3925ccdf21 (diff)
prevent cairo from using -flto with clang, cairo uses it incorrectly
The option should be used also at link time (as e.g. the gcc man page says), but cairo doesn't do so, and since -flto makes clang generate .o with LLVM bytecode, plain ld chokes on it. Change-Id: Ia5ce9a98afa4f88b8d0943a5971450d7009af913 Signed-off-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--cairo/UnpackedTarball_cairo.mk6
-rw-r--r--cairo/cairo/no-flto-clang.patch11
2 files changed, 17 insertions, 0 deletions
diff --git a/cairo/UnpackedTarball_cairo.mk b/cairo/UnpackedTarball_cairo.mk
index fd14ffe4c7dd..93cd015bca8e 100644
--- a/cairo/UnpackedTarball_cairo.mk
+++ b/cairo/UnpackedTarball_cairo.mk
@@ -41,4 +41,10 @@ ifneq (,$(filter ANDROID IOS,$(OS)))
$(eval $(call gb_UnpackedTarball_add_file,cairo,.,cairo/cairo/dummy_pkg_config))
endif
+ifeq ($(COM_GCC_IS_CLANG),TRUE)
+$(eval $(call gb_UnpackedTarball_add_patches,cairo,\
+ cairo/cairo/no-flto-clang.patch \
+))
+endif
+
# vim: set noet sw=4 ts=4:
diff --git a/cairo/cairo/no-flto-clang.patch b/cairo/cairo/no-flto-clang.patch
new file mode 100644
index 000000000000..725f4843eda9
--- /dev/null
+++ b/cairo/cairo/no-flto-clang.patch
@@ -0,0 +1,11 @@
+--- misc/cairo-1.10.2/configure.sav 2013-06-26 15:00:42.000000000 +0200
++++ misc/cairo-1.10.2/configure 2013-06-26 15:03:36.995117032 +0200
+@@ -17236,7 +17236,7 @@ MAYBE_WARN="-Wall -Wextra \
+ MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \
+ -erroff=E_ENUM_TYPE_MISMATCH_OP"
+
+-MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common -flto"
++MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common"
+
+ MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2"
+