Use Autoconf's AC_USE_SYSTEM_EXTENSIONS
authorHerbert Valerio Riedel <hvr@gnu.org>
Fri, 4 Dec 2015 08:15:29 +0000 (09:15 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Fri, 4 Dec 2015 09:01:52 +0000 (10:01 +0100)
This takes care of setting feature test macros (i.e. let Autoconf decide when
those can be set safely) to allow subsequent Autoconf tests to better detect
available OS features.

This also includes a submodule update of unix which enables the use of
`AC_USE_SYSTEM_EXTENSIONS` in there as well.

Specifically, this takes care of setting `_GNU_SOURCE` (which allows to remove
two occurences where it's set manually) and `_ALL_SOURCE` (which fixes issues
on AIX).

See also

  https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Posix-Variants.html

for details.

At some point we may want to reconsider the purpose of "rts/PosixSource.h" and
rely more on Autoconf instead.

configure.ac
libraries/base/configure.ac
libraries/unix
rts/Linker.c
rts/posix/OSThreads.c

index 3889cea..57d877a 100644 (file)
@@ -58,6 +58,9 @@ dnl  #define SIZEOF_CHAR 0
 dnl recently.
 AC_PREREQ([2.60])
 
+dnl make extensions visible to allow feature-tests to detect them lateron
+AC_USE_SYSTEM_EXTENSIONS
+
 # -------------------------------------------------------------------------
 # Prepare to generate the following header files
 #
index 85b2f2e..99474a6 100644 (file)
@@ -3,6 +3,11 @@ AC_INIT([Haskell base package], [1.0], [libraries@haskell.org], [base])
 # Safety check: Ensure that we are in the correct source directory.
 AC_CONFIG_SRCDIR([include/HsBase.h])
 
+AC_PREREQ([2.60])
+
+dnl make extensions visible to allow feature-tests to detect them lateron
+AC_USE_SYSTEM_EXTENSIONS
+
 AC_CONFIG_HEADERS([include/HsBaseConfig.h include/EventConfig.h])
 
 AC_CANONICAL_BUILD
index 137fa1b..5740003 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 137fa1b06a79a9baa0d5fcf2ec11f964c3423f6a
+Subproject commit 5740003e06f0c585460501514f3352f5e105c98c
index 51142c5..f728f0e 100644 (file)
 #include "PosixSource.h"
 #endif
 
-/* Linux needs _GNU_SOURCE to get RTLD_DEFAULT from <dlfcn.h> and
-   MREMAP_MAYMOVE from <sys/mman.h>.
- */
-#if defined(__linux__)  || defined(__GLIBC__)
-#define _GNU_SOURCE 1
-#endif
-
 #include "Rts.h"
 #include "HsFFI.h"
 
index 8c1beda..91f9523 100644 (file)
@@ -7,12 +7,6 @@
  *
  * --------------------------------------------------------------------------*/
 
-#if defined(__linux__) || defined(__GLIBC__)
-/* We want GNU extensions in DEBUG mode for mutex error checking */
-/* We also want the affinity API, which requires _GNU_SOURCE */
-#define _GNU_SOURCE
-#endif
-
 #include "PosixSource.h"
 
 #if defined(freebsd_HOST_OS)