From 9b5ce27c3b517c501bb13a534d50476e11751262 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 16 Oct 2008 14:59:26 +0200 Subject: configure.ac: check if "struct ucred" is available By default, glibc 2.8 hides struct ucred behind the _GNU_SOURCE macro. I don't want to enable that globally, because it may encourage the use of non-portable functions. Test if "struct ucred" is available, and enable _GNU_SOURCE if required. For details about that issue, see glib's bug database: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6545 --- m4/ucred.m4 | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 m4/ucred.m4 (limited to 'm4') diff --git a/m4/ucred.m4 b/m4/ucred.m4 new file mode 100644 index 00000000..3a824524 --- /dev/null +++ b/m4/ucred.m4 @@ -0,0 +1,32 @@ +# Check if "struct ucred" is available. If not, try harder with +# _GNU_SOURCE. +# +# Author: Max Kellermann + +AC_DEFUN([STRUCT_UCRED],[ + AC_MSG_CHECKING([for struct ucred]) + AC_CACHE_VAL(mpd_cv_have_struct_ucred, [ + AC_TRY_COMPILE([#include ], + [struct ucred cred;], + mpd_cv_have_struct_ucred=yes, + mpd_cv_have_struct_ucred=no) + if test x$mpd_cv_have_struct_ucred = xno; then + # glibc 2.8 forces _GNU_SOURCE on us + AC_TRY_COMPILE( + [#define _GNU_SOURCE + #include ], + [struct ucred cred;], + mpd_cv_have_struct_ucred=yes, + mpd_cv_have_struct_ucred=no) + if test x$mpd_cv_have_struct_ucred = xyes; then + # :( + MPD_CFLAGS="$MPD_CFLAGS -D_GNU_SOURCE" + fi + fi + ]) + + AC_MSG_RESULT($mpd_cv_have_struct_ucred) + if test x$mpd_cv_have_struct_ucred = xyes; then + AC_DEFINE(HAVE_STRUCT_UCRED, 1, [Define if struct ucred is present from sys/socket.h]) + fi +]) -- cgit v1.2.3