summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2014-01-09 21:20:44 +0100
committerMichael Stahl <mstahl@redhat.com>2014-01-10 00:21:51 +0100
commit3bdb781018c9a9a6778b1771a3e9346c2426e4f2 (patch)
tree89609c0e59f49a01187bbba41ed6a4d6b97a2395
parent913bf64b0bf1330a5055c26770faedf2ad7fc3c5 (diff)
compilerplugins: strip out -m32/-m64 from CXX
These are not part of LO and need to be built with native bitness of the compiler. Change-Id: I41fdec130a63e0c0d07f1df228031014cd2351c2
-rw-r--r--compilerplugins/Makefile-clang.mk5
-rw-r--r--configure.ac5
2 files changed, 8 insertions, 2 deletions
diff --git a/compilerplugins/Makefile-clang.mk b/compilerplugins/Makefile-clang.mk
index 82a4351bf34d..1121d32a3da7 100644
--- a/compilerplugins/Makefile-clang.mk
+++ b/compilerplugins/Makefile-clang.mk
@@ -9,6 +9,7 @@
# Make sure variables in this Makefile do not conflict with other variables (e.g. from gbuild).
# You may occassionally want to override some of these
+CLANGCXX=$(filter-out -m32 -m64,$(CXX))
# Compile flags ('make CLANGCXXFLAGS=-g' if you need to debug the plugin)
CLANGCXXFLAGS=-O2 -Wall -Wextra -g
@@ -73,7 +74,7 @@ CLANGOBJS=
define clangbuildsrc
$(3): $(2) $(SRCDIR)/compilerplugins/Makefile-clang.mk $(CLANGOUTDIR)/clang-timestamp
@echo [build CXX] $(subst $(SRCDIR)/,,$(2))
- $(QUIET)$(CXX) $(CLANGCXXFLAGS) $(CLANGWERROR) $(CLANGDEFS) $(CLANGINCLUDES) -I$(BUILDDIR)/config_host $(2) -fPIC $(CXXFLAGS_CXX11) -c -o $(3) -MMD -MT $(3) -MP -MF $(CLANGOUTDIR)/$(1).d
+ $(QUIET)$(CLANGCXX) $(CLANGCXXFLAGS) $(CLANGWERROR) $(CLANGDEFS) $(CLANGINCLUDES) -I$(BUILDDIR)/config_host $(2) -fPIC $(CXXFLAGS_CXX11) -c -o $(3) -MMD -MT $(3) -MP -MF $(CLANGOUTDIR)/$(1).d
-include $(CLANGOUTDIR)/$(1).d
@@ -85,7 +86,7 @@ $(foreach src, $(CLANGSRC), $(eval $(call clangbuildsrc,$(src),$(CLANGINDIR)/$(s
$(CLANGOUTDIR)/plugin.so: $(CLANGOBJS)
@echo [build LNK] $(subst $(BUILDDIR)/,,$@)
- $(QUIET)$(CXX) -shared $(CLANGOBJS) -o $@
+ $(QUIET)$(CLANGCXX) -shared $(CLANGOBJS) -o $@
# Clang most probably doesn't maintain binary compatibility, so rebuild when clang changes.
$(CLANGOUTDIR)/clang-timestamp: $(CLANGBUILD)/bin/clang
diff --git a/configure.ac b/configure.ac
index fcf8fd1f684b..1b81ee1f70f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5628,6 +5628,10 @@ if test "$COM_GCC_IS_CLANG" = "TRUE"; then
fi
AC_LANG_PUSH([C++])
save_CPPFLAGS=$CPPFLAGS
+ save_CXX=$CXX
+ # compiler plugins must be built with "native" bitness of clang
+ # because they link against clang libraries
+ CXX=`echo $CXX | sed -e s/-m64// -e s/-m32//`
CPPFLAGS="$CPPFLAGS -I$CLANGDIR/include -I$CLANGDIR/tools/clang/include -I$CLANGBUILD/include -I$CLANGBUILD/tools/clang/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"
AC_CHECK_HEADER(clang/AST/RecursiveASTVisitor.h,
[COMPILER_PLUGINS=TRUE],
@@ -5639,6 +5643,7 @@ if test "$COM_GCC_IS_CLANG" = "TRUE"; then
add_warning "Cannot find Clang headers to build compiler plugins, plugins disabled."
fi
])
+ CXX=$save_CXX
CPPFLAGS=$save_CPPFLAGS
AC_LANG_POP([C++])
fi