67 lines
2.0 KiB
Diff
67 lines
2.0 KiB
Diff
|
|
From b4f29807225cf3744c2f4f971902fbdd7486fc19 Mon Sep 17 00:00:00 2001
|
||
|
|
From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= <j@v6e.pt>
|
||
|
|
Date: Fri, 26 May 2023 13:29:23 +0100
|
||
|
|
Subject: [PATCH] CMake: Fix a try_run() test when cross-compiling
|
||
|
|
|
||
|
|
Upstream-Status: Backport
|
||
|
|
Signed-off-by: Armin Kuster <akuster808@gmail.com>
|
||
|
|
|
||
|
|
---
|
||
|
|
ConfigureChecks.cmake | 36 ++++++++++++++++++++----------------
|
||
|
|
1 file changed, 20 insertions(+), 16 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
|
||
|
|
index dd8268e077..d8bca54115 100644
|
||
|
|
--- a/ConfigureChecks.cmake
|
||
|
|
+++ b/ConfigureChecks.cmake
|
||
|
|
@@ -122,26 +122,30 @@ check_type_size("ssize_t" SSIZE_T)
|
||
|
|
# Check if the libc vsnprintf() conforms to C99. If this fails we may
|
||
|
|
# need to fall-back on GLib I/O.
|
||
|
|
#
|
||
|
|
-check_c_source_runs("
|
||
|
|
- #include <stdio.h>
|
||
|
|
- int main(void)
|
||
|
|
- {
|
||
|
|
- /* Check that snprintf() and vsnprintf() don't return
|
||
|
|
- * -1 if the buffer is too small. C99 says this value
|
||
|
|
- * is the length that would be written not including
|
||
|
|
- * the nul byte. */
|
||
|
|
- char buf[3];
|
||
|
|
- return snprintf(buf, sizeof(buf), \"%s\", \"ABCDEF\") > 0 ? 0 : 1;
|
||
|
|
- }"
|
||
|
|
- HAVE_C99_VSNPRINTF
|
||
|
|
-)
|
||
|
|
-if (NOT HAVE_C99_VSNPRINTF)
|
||
|
|
- message(FATAL_ERROR
|
||
|
|
+# If cross-compiling we can't check so just assume this requirement is met.
|
||
|
|
+#
|
||
|
|
+if(NOT CMAKE_CROSSCOMPILING)
|
||
|
|
+ check_c_source_runs("
|
||
|
|
+ #include <stdio.h>
|
||
|
|
+ int main(void)
|
||
|
|
+ {
|
||
|
|
+ /* Check that snprintf() and vsnprintf() don't return
|
||
|
|
+ * -1 if the buffer is too small. C99 says this value
|
||
|
|
+ * is the length that would be written not including
|
||
|
|
+ * the nul byte. */
|
||
|
|
+ char buf[3];
|
||
|
|
+ return snprintf(buf, sizeof(buf), \"%s\", \"ABCDEF\") > 0 ? 0 : 1;
|
||
|
|
+ }"
|
||
|
|
+ HAVE_C99_VSNPRINTF
|
||
|
|
+ )
|
||
|
|
+ if (NOT HAVE_C99_VSNPRINTF)
|
||
|
|
+ message(FATAL_ERROR
|
||
|
|
"Building Wireshark requires a C99 compliant vsnprintf() and this \
|
||
|
|
target does not meet that requirement. Compiling for ${CMAKE_SYSTEM} \
|
||
|
|
using ${CMAKE_C_COMPILER_ID}. Please report this issue to the Wireshark \
|
||
|
|
developers at wireshark-dev@wireshark.org."
|
||
|
|
- )
|
||
|
|
+ )
|
||
|
|
+ endif()
|
||
|
|
endif()
|
||
|
|
|
||
|
|
#
|
||
|
|
--
|
||
|
|
2.25.1
|
||
|
|
|