[Piglit] [PATCH] cmake: Check for asprintf.

Vinson Lee vlee at freedesktop.org
Sat Dec 21 13:32:52 PST 2013


Newer versions of MinGW provide asprintf in stdio.h. Do not define
asprintf if it already exists.

This patch fixes the Fedora 20 MinGW build.

Signed-off-by: Vinson Lee <vlee at freedesktop.org>
---
 CMakeLists.txt           | 1 +
 tests/util/config.h.in   | 1 +
 tests/util/piglit-util.c | 4 ++--
 tests/util/piglit-util.h | 4 ++--
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e952e24..6092f99 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -324,6 +324,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${piglit_BINARY_DIR}/bin)
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${piglit_BINARY_DIR}/bin)
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${piglit_BINARY_DIR}/bin)
 
+check_function_exists(asprintf  HAVE_ASPRINTF)
 check_function_exists(strchrnul HAVE_STRCHRNUL)
 check_function_exists(strndup   HAVE_STRNDUP)
 check_function_exists(fopen_s   HAVE_FOPEN_S)
diff --git a/tests/util/config.h.in b/tests/util/config.h.in
index 2e8262a..691a249 100644
--- a/tests/util/config.h.in
+++ b/tests/util/config.h.in
@@ -1,3 +1,4 @@
+#cmakedefine HAVE_ASPRINTF
 #cmakedefine HAVE_STRCHRNUL
 #cmakedefine HAVE_FOPEN_S
 #cmakedefine HAVE_SETRLIMIT
diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
index 1c7f118..fe49fed 100644
--- a/tests/util/piglit-util.c
+++ b/tests/util/piglit-util.c
@@ -56,7 +56,7 @@
 #include "piglit-util.h"
 
 
-#if defined(_WIN32)
+#ifndef HAVE_ASPRINTF
 
 /* Some versions of MinGW are missing _vscprintf's declaration, although they
  * still provide the symbol in the import library.
@@ -103,7 +103,7 @@ int asprintf(char **strp, const char *fmt, ...)
 	return length;
 }
 
-#endif /* _WIN32 */
+#endif /* HAVE_ASPRINTF */
 
 /**
  * \brief Split \a string into an array of strings.
diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
index 4535fad..db880c7 100644
--- a/tests/util/piglit-util.h
+++ b/tests/util/piglit-util.h
@@ -84,9 +84,9 @@ lround(double x) {
 #define PRINTFLIKE(f, a)
 #endif
 
-#ifdef _WIN32
+#ifndef HAVE_ASPRINTF
 int asprintf(char **strp, const char *fmt, ...) PRINTFLIKE(2, 3);
-#endif /* _WIN32 */
+#endif /* HAVE_ASPRINTF */
 
 // Trick from http://tdistler.com/2011/03/24/how-to-define-nan-not-a-number-on-windows
 #ifndef INFINITY
-- 
1.8.4.2



More information about the Piglit mailing list