Attempt #2 to fix mingw crossbuild. This time with more ugly hacks!
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 22 Dec 2011 22:50:44 +0000 (22:50 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 22 Dec 2011 22:50:44 +0000 (22:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147196 91177308-0d34-0410-b5e6-96231b3b80d8

autoconf/m4/visibility_inlines_hidden.m4
configure

index ee3d61bc82d2f26f7db6ca47f090c67d3055484e..65dd503e203fc8713eecb58739c5c928623981ae 100644 (file)
@@ -8,9 +8,9 @@ AC_DEFUN([AC_CXX_USE_VISIBILITY_INLINES_HIDDEN],
                 [llvm_cv_cxx_visibility_inlines_hidden],
 [ AC_LANG_PUSH([C++])
   oldcxxflags="$CXXFLAGS"
                 [llvm_cv_cxx_visibility_inlines_hidden],
 [ AC_LANG_PUSH([C++])
   oldcxxflags="$CXXFLAGS"
-  CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
+  CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden -Werror"
   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
   AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-    [template <typename T> struct X { inline void f() {} };],
+    [template <typename T> struct X { void __attribute__((noinline)) f() {} };],
     [X<int>().f();])],
     [llvm_cv_cxx_visibility_inlines_hidden=yes],[llvm_cv_cxx_visibility_inlines_hidden=no])
   CXXFLAGS="$oldcxxflags"
     [X<int>().f();])],
     [llvm_cv_cxx_visibility_inlines_hidden=yes],[llvm_cv_cxx_visibility_inlines_hidden=no])
   CXXFLAGS="$oldcxxflags"
index 62b2d1cc9bee4db11f27806a1ceb3067bf4644a3..7c86dbf8160b68c378789b662028a70092cc9a94 100755 (executable)
--- a/configure
+++ b/configure
@@ -20986,14 +20986,14 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
   oldcxxflags="$CXXFLAGS"
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
   oldcxxflags="$CXXFLAGS"
-  CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
+  CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden -Werror"
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-template <typename T> struct X { inline void f() {} };
+template <typename T> struct X { void __attribute__((noinline)) f() {} };
 int
 main ()
 {
 int
 main ()
 {