diff options
author | Adam Jackson <ajax@benzedrine.nwnk.net> | 2007-01-22 17:58:37 -0500 |
---|---|---|
committer | Adam Jackson <ajax@benzedrine.nwnk.net> | 2007-01-22 17:58:37 -0500 |
commit | fd838c02be3b3755efb872fd05a51fce99c46ae3 (patch) | |
tree | af4d273ae328973f121bfdeedeafc5d887fc35a6 | |
parent | fd77f9cbbade5e2e4516c2d755425d07a90d1923 (diff) |
Bug #9555: Always define _GNU_SOURCE in glibc environments.
This keeps us from having to define _POSIX_C_SOURCE, _BSD_SOURCE, and
_XOPEN_SORUCE to get the C environment we want in different places. It also
fixes the build on linux due to RTLD_DEFAULT having not been defined.
(cherry picked from 7fccec91c46baac4f8d2965180dc535b4eb7d65c commit)
-rw-r--r-- | configure.ac | 21 | ||||
-rw-r--r-- | include/dix-config.h.in | 12 | ||||
-rw-r--r-- | os/utils.c | 18 |
3 files changed, 10 insertions, 41 deletions
diff --git a/configure.ac b/configure.ac index 4c29909b7..d72c74ff2 100644 --- a/configure.ac +++ b/configure.ac @@ -1599,20 +1599,13 @@ dnl and the rest of these are generic, so they're in config.h AC_DEFINE(XFreeXDGA, 1, [Build XDGA support]) AC_DEFINE(XResExtension, 1, [Build XRes extension]) -dnl CYGWIN does not define fd_set if _POSIX_SOURCE is defined -dnl _*_SOURCE on Solaris restricts to the standards, and removes non-standard -dnl functions which X uses -case $host_os in - cygwin*) ;; - solaris*) ;; - darwin*) ;; - freebsd*|netbsd*|openbsd*) ;; - *) - AC_DEFINE(_POSIX_SOURCE, 1, [POSIX-compliant source]) - AC_DEFINE(_XOPEN_SOURCE, 500, [X/Open-compliant source]) - AC_DEFINE(_BSD_SOURCE, 1, [BSD-compliant source]) - ;; -esac +AC_TRY_COMPILE([ +#include <features.h> +#ifndef __GLIBC__ +#error not glibc +#endif +], [], [AC_DEFINE(_GNU_SOURCE, 1, + [ Enable GNU and other extensions to the C environment for glibc])]) AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix]) diff --git a/include/dix-config.h.in b/include/dix-config.h.in index 35700e460..5efd356b1 100644 --- a/include/dix-config.h.in +++ b/include/dix-config.h.in @@ -410,16 +410,8 @@ /* Endian order */ #undef X_BYTE_ORDER -/* BSD-compliant source */ -#undef _BSD_SOURCE - -/* POSIX-compliant source */ -#undef _POSIX_SOURCE - -#ifndef _XOPEN_SOURCE -/* X/Open-compliant source */ -#undef _XOPEN_SOURCE -#endif +/* Enable GNU and other extensions to the C environment for GLIBC */ +#undef _GNU_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const diff --git a/os/utils.c b/os/utils.c index 9824501e7..7c725e38d 100644 --- a/os/utils.c +++ b/os/utils.c @@ -53,23 +53,6 @@ OR PERFORMANCE OF THIS SOFTWARE. #include <dix-config.h> #endif -/* The world's most shocking hack, to ensure we get clock_gettime() and - * CLOCK_MONOTONIC. */ -#ifdef sun /* Needed to tell Solaris headers not to restrict to */ -#define __EXTENSIONS__ /* only the functions defined in POSIX 199309. */ -#endif - -#ifdef _POSIX_C_SOURCE -#define _SAVED_POSIX_C_SOURCE _POSIX_C_SOURCE -#undef _POSIX_C_SOURCE -#endif -#define _POSIX_C_SOURCE 199309L -#include <time.h> -#undef _POSIX_C_SOURCE -#ifdef _SAVED_POSIX_C_SOURCE -#define _POSIX_C_SOURCE _SAVED_POSIX_C_SOURCE -#endif - #ifdef __CYGWIN__ #include <stdlib.h> #include <signal.h> @@ -80,6 +63,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #endif #include <X11/Xos.h> #include <stdio.h> +#include <time.h> #include "misc.h" #include <X11/X.h> #define XSERV_t |