提交 8b8fcdea 编写于 作者: V Viktor Mihajlovski 提交者: Daniel P. Berrange

build: Check for broken GCC -Wlogical-op in configure

Some older versions of GCC report a false positive on code like
  char * haystack, needle;
  strchr(haystack, needle);

Added an extra check in configure.ac which will
  #define BROKEN_GCC_WLOGICALOP 1
in this case, allowing to special handle "offending" code.
Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
上级 41bd91f8
...@@ -255,6 +255,29 @@ AC_CHECK_TYPE([struct ifreq], ...@@ -255,6 +255,29 @@ AC_CHECK_TYPE([struct ifreq],
#include <net/if.h> #include <net/if.h>
]]) ]])
dnl Check whether strchr(s, char variable) causes a bogus compile warning
dnl which is the case with a certain range of GCC versions
AC_MSG_CHECKING([whether GCC -Wlogical-op is broken])
save_CFLAGS="$CFLAGS"
CFLAGS="-O2 -Wlogical-op -Werror"
AC_TRY_COMPILE([#include <string.h>],
[const char *haystack;
char needle;
return strchr(haystack, needle) == haystack;],
[gcc_false_strchr_warning=no],
[gcc_false_strchr_warning=yes])
CFLAGS="$save_CFLAGS"
if test "x$gcc_false_strchr_warning" = xyes; then
AC_DEFINE_UNQUOTED([BROKEN_GCC_WLOGICALOP], 1,
[GCC -Wlogical-op is reporting false positive on strchr])
fi
AC_MSG_RESULT([$gcc_false_strchr_warning])
dnl Our only use of libtasn1.h is in the testsuite, and can be skipped dnl Our only use of libtasn1.h is in the testsuite, and can be skipped
dnl if the header is not present. Assume -ltasn1 is present if the dnl if the header is not present. Assume -ltasn1 is present if the
dnl header could be found. dnl header could be found.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册