diff options
author | Guillem Jover | 2009-10-08 13:40:11 +0200 |
---|---|---|
committer | Karel Zak | 2009-10-09 15:16:25 +0200 |
commit | 869829e457cf7ca79c7f3f997088af8cb70aff77 (patch) | |
tree | 3cd165e9c53444ba2a5ee39869ff4582899bec84 | |
parent | build-sys: enable silent rules if automake >= 1.11 (diff) | |
download | kernel-qcow2-util-linux-869829e457cf7ca79c7f3f997088af8cb70aff77.tar.gz kernel-qcow2-util-linux-869829e457cf7ca79c7f3f997088af8cb70aff77.tar.xz kernel-qcow2-util-linux-869829e457cf7ca79c7f3f997088af8cb70aff77.zip |
build-sys: check for union semun instead of using _SEM_SEMUN_UNDEFINED
Older versions of glibc used to declare ‘union semun’ in <sys/sem.h>,
but POSIX.1-2001 requires the caller to declare it instead. Later
versions of glibc started defining _SEM_SEMUN_UNDEFINED to note that
the union was not being declared, but conforming systems are not
required to define that macro (e.g. FreeBSD). As a side effect we get
rid of some obsolete __GNU_LIBRARY__ macro usage.
[kzak@redhat.com: - use #ifndef]
Signed-off-by: Guillem Jover <guillem@hadrons.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | sys-utils/ipcrm.c | 4 | ||||
-rw-r--r-- | sys-utils/ipcs.c | 4 |
3 files changed, 7 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac index ed3c3b07c..7b11ab1fa 100644 --- a/configure.ac +++ b/configure.ac @@ -469,6 +469,11 @@ printf(__progname); ]) +AC_CHECK_TYPES([union semun], [], [], [[ +#include <sys/sem.h> +]]) + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <wchar.h> #include <wctype.h> diff --git a/sys-utils/ipcrm.c b/sys-utils/ipcrm.c index 11a5af2c5..f07eac826 100644 --- a/sys-utils/ipcrm.c +++ b/sys-utils/ipcrm.c @@ -26,9 +26,7 @@ /* for tolower and isupper */ #include <ctype.h> -#if defined (__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) -/* union semun is defined by including <sys/sem.h> */ -#else +#ifndef HAVE_UNION_SEMUN /* according to X/OPEN we have to define it ourselves */ union semun { int val; diff --git a/sys-utils/ipcs.c b/sys-utils/ipcs.c index 55d5c80f3..0e645d138 100644 --- a/sys-utils/ipcs.c +++ b/sys-utils/ipcs.c @@ -77,9 +77,7 @@ struct shm_info { /* The last arg of semctl is a union semun, but where is it defined? X/OPEN tells us to define it ourselves, but until recently Linux include files would also define it. */ -#if defined (__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) -/* union semun is defined by including <sys/sem.h> */ -#else +#ifndef HAVE_UNION_SEMUN /* according to X/OPEN we have to define it ourselves */ union semun { int val; |