diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2011-05-23 19:15:39 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2011-05-23 19:15:39 (GMT) |
commit | 0418b80b226e22db0b8ddbfcd3754a90c8eb54f9 (patch) | |
tree | 0cb1388b845ecd5ca21f8c29da1bb711739bb65a | |
parent | 3cfec078a6d5305657380b68558900d8aa955470 (diff) | |
download | hdf5-0418b80b226e22db0b8ddbfcd3754a90c8eb54f9.zip hdf5-0418b80b226e22db0b8ddbfcd3754a90c8eb54f9.tar.gz hdf5-0418b80b226e22db0b8ddbfcd3754a90c8eb54f9.tar.bz2 |
[svn-r20894] Purpose:
Updates configure definitions on linux.
Description:
We only define _POSIX_SOURCE which only allows for the lowest level of
POSIX support (IEEE 1003.1), which is unsuitable for clock_gettime() functionality on modern linux systems. This symbol was changed to _POSIX_C_SOURCE=199506L, which gives the 1996 version of POSIX support and allows clock_gettime() and CLOCK_MONOTONIC to be found.
We do not link to the BSD compatibility library, even though we define
_BSD_SOURCE. -lbsd-compat was added to AM_LDFLAGS in accordance with GNU
recommendations. This does not appear to change anything in the current
library.
Tested on:
jam(linux32-LE) This was tested with various configure settings including
parallel, threadsafe, C++ and FORTRAN enabled.
-rwxr-xr-x | configure | 7 | ||||
-rw-r--r-- | configure.in | 18 |
2 files changed, 15 insertions, 10 deletions
@@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 20891 2011-05-23 17:02:39Z derobins . +# From configure.in Id: configure.in 20892 2011-05-23 17:29:14Z derobins . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for HDF5 1.9.82. # @@ -22506,9 +22506,10 @@ case "$host_cpu-$host_vendor-$host_os" in AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" fi - H5_CPPFLAGS="-D_POSIX_SOURCE $H5_CPPFLAGS" + H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" - AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + AM_LDFLAGS="-lbsd-compat $AM_LDFLAGS" ;; esac diff --git a/configure.in b/configure.in index c761e5a..fb488c7 100644 --- a/configure.in +++ b/configure.in @@ -1378,19 +1378,23 @@ case "$host_cpu-$host_vendor-$host_os" in dnl H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen dnl is used only by H5_debug_mask which is used only when debugging in dnl H5_init_library (all in H5.c). When the flag was removed this was - dnl the only compile failure noted; however, defining the Macro - dnl makes available the functionality from the POSIX.1 standard as well - dnl as all or the ISO C facilities, according to a discussion of - dnl defining the _POSIX_SOURCE, _BSD_SOURCE, and _POSIX_C_SOURCE Macros - dnl and their interaction found at - dnl http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html. - H5_CPPFLAGS="-D_POSIX_SOURCE $H5_CPPFLAGS" + dnl the only compile failure noted. + dnl This was originally defined as _POSIX_SOURCE which was updated to + dnl _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX + dnl functionality so clock_gettime and CLOCK_MONOTONIC are defined + dnl correctly. + dnl POSIX feature information can be found in the gcc manual at: + dnl http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html + H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS" dnl Also add BSD support on Linux systems, so <features.h> defines dnl __USE_BSD, which is required to get the prototype for strdup dnl defined correctly in <string.h> and snprintf & vsnprintf defined dnl correctly in <stdio.h> + dnl Linking to the bsd-compat library is required as per the gcc manual: + dnl http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS" + AM_LDFLAGS="-lbsd-compat $AM_LDFLAGS" ;; esac |