Fixes Autotools builds on Solaris after monotonic timer changes

clock_gettime() wasn't being found, so some configure changes
were needed to set an appropriate POSIX level and use a C99
compiler. This required several compiler flag changes.

Autotools only
This commit is contained in:
Dana Robinson 2020-07-06 16:09:49 -05:00
parent d52b27ad1d
commit d9105b2fcf
2 changed files with 23 additions and 5 deletions

View File

@ -29,7 +29,9 @@ fi
# Try solaris native compiler flags
if test "X-" = "X-$cc_flags_set"; then
H5_CFLAGS="$H5_CFLAGS -erroff=%none -DBSD_COMP"
# HDF5 must be built with a C99 compiler on Solaris
# -erroff=%none turns on all warnings
H5_CFLAGS="$H5_CFLAGS -xc99=all -erroff=%none"
# Production
# NDEBUG is handled explicitly by the configure script
@ -41,17 +43,26 @@ if test "X-" = "X-$cc_flags_set"; then
DEBUG_CFLAGS=
# Symbols
# -g produces output for dbx, NOT gdb. You can use "gdb on" from
# inside gdb to use gdb commands if you need to debug.
# If you want a LOT of debugging information (at the expense of
# really slow code), try using -g3. That will even let you debug
# into macros.
# -s strips symbols, as in gcc
NO_SYMBOLS_CFLAGS="-s"
SYMBOLS_CFLAGS="-g"
# Profile
# This produces profiling output for gprof. If you want to use
# the Solaris profiler, use -xprofile instead.
PROFILE_CFLAGS="-xpg"
# Optimization
# -g produces rather slow code. "-g -O" produces much faster code with some
# loss of debugger functions such as not able to print local variables.
HIGH_OPT_CFLAGS="-O"
DEBUG_OPT_CFLAGS="-O"
# -O has switched to -xO{1|2|3|4|5}. -xO3 is probably a good compromise
# for the daily tests, but you might want to switch to -xO2 or lower
# if you are actively debugging.
HIGH_OPT_CFLAGS="-xO5"
DEBUG_OPT_CFLAGS="-xO3"
NO_OPT_CFLAGS=
cc_flags_set=yes

View File

@ -1249,6 +1249,13 @@ case "$host_cpu-$host_vendor-$host_os" in
## VFD on Linux systems.
H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
;;
*solaris*)
## Solaris also needs _POSIX_C_SOURCE set correctly to pick up
## clock_gettime().
H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS"
H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
;;
esac
## Need to add the AM_ and H5_ into CFLAGS/CPPFLAGS to make them visible