diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-02-15 19:06:01 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-02-16 15:22:06 +0100 |
commit | de085700502b372767fa4c83b91a02522e198897 (patch) | |
tree | 6b3fd197eb3b558d075eb6606418cd9abbe56c1c | |
parent | 61ecb465b1c803316cb55bae0c2d7cf3c0008589 (diff) |
build-sys: fix type detection
Before this patch existence of char16_t, char32_t, key_serial_t was checked
with AC_CHECK_DECLS() which doesn't actually work for types. Correct this to
use AC_CHECK_TYPES() instead.
Also, while we are at it, change the check for memfd_create() to use
AC_CHECK_DECLS() instead of AC_CHECK_FUNCS(). This is a better choice, since a
couple of syscalls are defined by glibc but not exported in the header files
(pivot_root() for example), and we hence should probably be more picky with
memfd_create() too, which glibc might decide to expose one day, but not
necessarily in the headers too.
-rw-r--r-- | configure.ac | 9 | ||||
-rw-r--r-- | src/basic/missing.h | 8 |
2 files changed, 10 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac index e72470a199..614f0553b8 100644 --- a/configure.ac +++ b/configure.ac @@ -295,10 +295,8 @@ CAP_LIBS="$LIBS" LIBS="$save_LIBS" AC_SUBST(CAP_LIBS) -AC_CHECK_FUNCS([memfd_create]) AC_CHECK_FUNCS([__secure_getenv secure_getenv]) -AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, getrandom, renameat2, - kcmp, keyctl, key_serial_t, char16_t, char32_t, LO_FLAGS_PARTSCAN], +AC_CHECK_DECLS([memfd_create, gettid, pivot_root, name_to_handle_at, setns, getrandom, renameat2, kcmp, keyctl, LO_FLAGS_PARTSCAN], [], [], [[ #include <sys/types.h> #include <unistd.h> @@ -309,6 +307,11 @@ AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns, getrandom, renamea #include <linux/random.h> ]]) +AC_CHECK_TYPES([char16_t, char32_t, key_serial_t], + [], [], [[ +#include <uchar.h> +]]) + AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE, IFLA_MACVLAN_FLAGS, IFLA_IPVLAN_MODE, diff --git a/src/basic/missing.h b/src/basic/missing.h index 4d3764c022..f3d32362bd 100644 --- a/src/basic/missing.h +++ b/src/basic/missing.h @@ -167,7 +167,7 @@ static inline int pivot_root(const char *new_root, const char *put_old) { # endif #endif -#ifndef HAVE_MEMFD_CREATE +#if !HAVE_DECL_MEMFD_CREATE static inline int memfd_create(const char *name, unsigned int flags) { return syscall(__NR_memfd_create, name, flags); } @@ -1089,7 +1089,7 @@ static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, uns #define INPUT_PROP_ACCELEROMETER 0x06 #endif -#if !HAVE_DECL_KEY_SERIAL_T +#ifndef HAVE_KEY_SERIAL_T typedef int32_t key_serial_t; #endif @@ -1160,11 +1160,11 @@ static inline key_serial_t request_key(const char *type, const char *description #ifndef IF_OPER_UP #define IF_OPER_UP 6 -#ifndef HAVE_DECL_CHAR32_T +#ifndef HAVE_CHAR32_T #define char32_t uint32_t #endif -#ifndef HAVE_DECL_CHAR16_T +#ifndef HAVE_CHAR16_T #define char16_t uint16_t #endif |