summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac17
-rw-r--r--src/egl/main/Makefile.am1
-rw-r--r--src/gallium/auxiliary/Makefile.am7
-rw-r--r--src/gallium/drivers/llvmpipe/Makefile.am6
-rw-r--r--src/gallium/state_trackers/egl/Makefile.am3
-rw-r--r--src/gallium/targets/egl-static/Makefile.am3
-rw-r--r--src/glsl/Makefile.am8
-rw-r--r--src/loader/Makefile.am1
-rw-r--r--src/mapi/Makefile.am4
-rw-r--r--src/mesa/Makefile.am10
-rw-r--r--src/util/Makefile.am3
11 files changed, 51 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 5fbb7bc31da..22dc023abc7 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 85f2ac1b785..51c3f052acd 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) \