diff options
-rw-r--r-- | configure.ac | 17 | ||||
-rw-r--r-- | src/egl/main/Makefile.am | 1 | ||||
-rw-r--r-- | src/gallium/auxiliary/Makefile.am | 7 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/Makefile.am | 6 | ||||
-rw-r--r-- | src/gallium/state_trackers/egl/Makefile.am | 3 | ||||
-rw-r--r-- | src/gallium/targets/egl-static/Makefile.am | 3 | ||||
-rw-r--r-- | src/glsl/Makefile.am | 8 | ||||
-rw-r--r-- | src/loader/Makefile.am | 1 | ||||
-rw-r--r-- | src/mapi/Makefile.am | 4 | ||||
-rw-r--r-- | src/mesa/Makefile.am | 10 | ||||
-rw-r--r-- | src/util/Makefile.am | 3 |
11 files changed, 51 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac index 2ba79ef7255..c5abbfd0784 100644 --- a/configure.ac +++ b/configure.ac @@ -263,6 +263,18 @@ if test "x$GCC" = xyes; then # gcc's builtin memcmp is slower than glibc's # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 CFLAGS="$CFLAGS -fno-builtin-memcmp" + + # Flags to help ensure that certain portions of the code -- and only those + # portions -- can be built with MSVC: + # - src/util, src/gallium/auxiliary, and src/gallium/drivers/llvmpipe needs + # to build with Windows SDK 7.0.7600, which bundles MSVC 2008 + # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which + # supports most of C99) + # - the rest has no compiler compiler restrictions + MSVC2013_COMPAT_CFLAGS="-Werror=vla -Werror=pointer-arith" + MSVC2013_COMPAT_CXXFLAGS="-Werror=vla -Werror=pointer-arith" + MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement" + MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS" fi if test "x$GXX" = xyes; then CXXFLAGS="$CXXFLAGS -Wall" @@ -288,6 +300,11 @@ if test "x$GXX" = xyes; then CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp" fi +AC_SUBST([MSVC2013_COMPAT_CFLAGS]) +AC_SUBST([MSVC2013_COMPAT_CXXFLAGS]) +AC_SUBST([MSVC2008_COMPAT_CFLAGS]) +AC_SUBST([MSVC2008_COMPAT_CXXFLAGS]) + dnl even if the compiler appears to support it, using visibility attributes isn't dnl going to do anything useful currently on cygwin apart from emit lots of warnings case "$host_os" in diff --git a/src/egl/main/Makefile.am b/src/egl/main/Makefile.am index d21d8a9eb5a..a4db21016e9 100644 --- a/src/egl/main/Makefile.am +++ b/src/egl/main/Makefile.am @@ -26,6 +26,7 @@ AM_CFLAGS = \ -I$(top_srcdir)/src/gbm/main \ $(DEFINES) \ $(VISIBILITY_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) \ $(EGL_CFLAGS) \ -D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM) \ -D_EGL_DRIVER_SEARCH_DIR=\"$(libdir)/egl\" \ diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am index 4b6205797ef..27a8b3fe420 100644 --- a/src/gallium/auxiliary/Makefile.am +++ b/src/gallium/auxiliary/Makefile.am @@ -12,9 +12,12 @@ noinst_LTLIBRARIES = libgallium.la AM_CFLAGS = \ -I$(top_srcdir)/src/gallium/auxiliary/util \ $(GALLIUM_CFLAGS) \ - $(VISIBILITY_CFLAGS) + $(VISIBILITY_CFLAGS) \ + $(MSVC2008_COMPAT_CXXFLAGS) -AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) +AM_CXXFLAGS = \ + $(VISIBILITY_CXXFLAGS) \ + $(MSVC2008_COMPAT_CXXFLAGS) libgallium_la_SOURCES = \ $(C_SOURCES) \ diff --git a/src/gallium/drivers/llvmpipe/Makefile.am b/src/gallium/drivers/llvmpipe/Makefile.am index 0bd4282632a..1d3853e41a6 100644 --- a/src/gallium/drivers/llvmpipe/Makefile.am +++ b/src/gallium/drivers/llvmpipe/Makefile.am @@ -25,10 +25,12 @@ include $(top_srcdir)/src/gallium/Automake.inc AM_CFLAGS = \ $(GALLIUM_DRIVER_CFLAGS) \ - $(LLVM_CFLAGS) + $(LLVM_CFLAGS) \ + $(MSVC2008_COMPAT_CFLAGS) AM_CXXFLAGS= \ $(GALLIUM_DRIVER_CXXFLAGS) \ - $(LLVM_CXXFLAGS) + $(LLVM_CXXFLAGS) \ + $(MSVC2008_COMPAT_CXXFLAGS) noinst_LTLIBRARIES = libllvmpipe.la diff --git a/src/gallium/state_trackers/egl/Makefile.am b/src/gallium/state_trackers/egl/Makefile.am index 31546a778cf..f13fcb2ccb8 100644 --- a/src/gallium/state_trackers/egl/Makefile.am +++ b/src/gallium/state_trackers/egl/Makefile.am @@ -27,7 +27,8 @@ include $(top_srcdir)/src/gallium/Automake.inc AM_CFLAGS = \ $(GALLIUM_CFLAGS) \ - $(VISIBILITY_CFLAGS) + $(VISIBILITY_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) AM_CPPFLAGS = \ -I$(top_srcdir)/src/egl/main \ diff --git a/src/gallium/targets/egl-static/Makefile.am b/src/gallium/targets/egl-static/Makefile.am index 0056276469f..653fab15104 100644 --- a/src/gallium/targets/egl-static/Makefile.am +++ b/src/gallium/targets/egl-static/Makefile.am @@ -31,7 +31,8 @@ include $(top_srcdir)/src/gallium/Automake.inc AM_CFLAGS = \ - $(GALLIUM_TARGET_CFLAGS) + $(GALLIUM_TARGET_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) AM_CPPFLAGS = \ -I$(top_srcdir)/src/gallium/state_trackers/egl \ diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am index 5a0a643daf2..b466a3b5c52 100644 --- a/src/glsl/Makefile.am +++ b/src/glsl/Makefile.am @@ -33,8 +33,12 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/gtest/include \ -I$(top_builddir)/src/glsl/nir \ $(DEFINES) -AM_CFLAGS = $(VISIBILITY_CFLAGS) -AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) +AM_CFLAGS = \ + $(VISIBILITY_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) +AM_CXXFLAGS = \ + $(VISIBILITY_CXXFLAGS) \ + $(MSVC2013_COMPAT_CXXFLAGS) EXTRA_DIST = tests glcpp/tests README TODO glcpp/README \ glsl_lexer.ll \ diff --git a/src/loader/Makefile.am b/src/loader/Makefile.am index 36ddba82bd3..3d32279ea26 100644 --- a/src/loader/Makefile.am +++ b/src/loader/Makefile.am @@ -30,6 +30,7 @@ libloader_la_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src \ $(VISIBILITY_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) \ $(LIBUDEV_CFLAGS) libloader_la_SOURCES = $(LOADER_C_FILES) diff --git a/src/mapi/Makefile.am b/src/mapi/Makefile.am index 67946829198..b0a6c8ca2d8 100644 --- a/src/mapi/Makefile.am +++ b/src/mapi/Makefile.am @@ -39,7 +39,9 @@ EXTRA_DIST = \ glapi/SConscript \ shared-glapi/SConscript -AM_CFLAGS = $(PTHREAD_CFLAGS) +AM_CFLAGS = \ + $(PTHREAD_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) AM_CPPFLAGS = \ $(DEFINES) \ $(SELINUX_CFLAGS) \ diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am index b6cb8f1117b..5e9a82098fb 100644 --- a/src/mesa/Makefile.am +++ b/src/mesa/Makefile.am @@ -136,8 +136,14 @@ noinst_LTLIBRARIES += libmesagallium.la endif AM_CPPFLAGS = $(DEFINES) $(INCLUDE_DIRS) -AM_CFLAGS = $(LLVM_CFLAGS) $(VISIBILITY_CFLAGS) -AM_CXXFLAGS = $(LLVM_CFLAGS) $(VISIBILITY_CXXFLAGS) +AM_CFLAGS = \ + $(LLVM_CFLAGS) \ + $(VISIBILITY_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) +AM_CXXFLAGS = \ + $(LLVM_CFLAGS) \ + $(VISIBILITY_CXXFLAGS) \ + $(MSVC2013_COMPAT_CXXFLAGS) ARCH_LIBS = diff --git a/src/util/Makefile.am b/src/util/Makefile.am index 9af233059bb..29b66e70e9d 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -34,7 +34,8 @@ libmesautil_la_CPPFLAGS = \ -I$(top_srcdir)/src/gallium/include \ -I$(top_srcdir)/src/gallium/auxiliary \ $(SHA1_CFLAGS) \ - $(VISIBILITY_CFLAGS) + $(VISIBILITY_CFLAGS) \ + $(MSVC2008_COMPAT_CFLAGS) libmesautil_la_SOURCES = \ $(MESA_UTIL_FILES) \ |