mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-28 23:50:10 +01:00
build: detect compiler features _Generic() and __auto_type in configure script
There is still a fallback detection in "shared/nm-utils/nm-macros-internal.h",
so that VPN-plugins and applet don't need to bother about adding these
configure checks.
(cherry picked from commit 557d83bf2d)
This commit is contained in:
parent
5282469098
commit
d9c5f7c9fb
2 changed files with 24 additions and 1 deletions
16
configure.ac
16
configure.ac
|
|
@ -1213,6 +1213,22 @@ fi
|
|||
|
||||
AC_SUBST(SANITIZERS, [$sanitizers])
|
||||
|
||||
AC_MSG_CHECKING([CC support C11 _Generic()])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int foo(void); int foo() { int a = 0; int b = _Generic (a, int: 4); return b + a; }]],
|
||||
[[foo();]])],
|
||||
[cc_support_generic=1],
|
||||
[cc_support_generic=0])
|
||||
AC_MSG_RESULT($cc_support_generic)
|
||||
AC_DEFINE_UNQUOTED(_NM_CC_SUPPORT_GENERIC, $cc_support_generic, [Define whether the compiler supports C11 _Generic()])
|
||||
|
||||
AC_MSG_CHECKING([CC support gcc __auto_type])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int foo(void); int foo() { int a = 0; __auto_type b = a; return b + a; }]],
|
||||
[[foo();]])],
|
||||
[cc_support_auto_type=1],
|
||||
[cc_support_auto_type=0])
|
||||
AC_MSG_RESULT($cc_support_auto_type)
|
||||
AC_DEFINE_UNQUOTED(_NM_CC_SUPPORT_AUTO_TYPE, $cc_support_auto_type, [Define whether the compiler support gcc __auto_type])
|
||||
|
||||
dnl -------------------------
|
||||
dnl Vala bindings
|
||||
dnl -------------------------
|
||||
|
|
|
|||
|
|
@ -263,18 +263,25 @@ NM_G_ERROR_MSG (GError *error)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
#ifndef _NM_CC_SUPPORT_AUTO_TYPE
|
||||
#if (defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9 )))
|
||||
#define _NM_CC_SUPPORT_AUTO_TYPE 1
|
||||
#define _nm_auto_type __auto_type
|
||||
#else
|
||||
#define _NM_CC_SUPPORT_AUTO_TYPE 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _NM_CC_SUPPORT_GENERIC
|
||||
#if (defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9 ))) || (defined (__clang__))
|
||||
#define _NM_CC_SUPPORT_GENERIC 1
|
||||
#else
|
||||
#define _NM_CC_SUPPORT_GENERIC 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if _NM_CC_SUPPORT_AUTO_TYPE
|
||||
#define _nm_auto_type __auto_type
|
||||
#endif
|
||||
|
||||
#if _NM_CC_SUPPORT_GENERIC
|
||||
#define _NM_CONSTCAST_FULL_1(type, obj_expr, obj) \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue