From 4c8902cdf0dee80c05f20a953e96c5a70c95d2f5 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Mon, 7 Sep 2015 18:44:41 -0500 Subject: [svn-r27692] Changed the autotools files so that the high-level library is unsupported when building the thread-safe library. Configure will quit with an error when --disable-hl or --enable-unsupported is not used with --enable-threadsafe. Fixes HDFFV-8719 Tested on: h5committest configure w/ various combinations of --enable-threadsafe, --disable-hl, and --enable-unsupported --- configure | 16 +++++++++++++--- configure.ac | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/configure b/configure index f029b0b..35f86f3 100755 --- a/configure +++ b/configure @@ -1581,9 +1581,8 @@ Optional Features: --disable-sharedlib-rpath Disable use of the '=Wl,-rpath' linker option --enable-production Determines how to run the compiler. - --enable-threadsafe Enable thread-safe capability. This will disable the - high-level library. You can override this behavior - by specifying --enable-hl and --enable-unsupported. + --enable-threadsafe Enable thread-safe capability. Not compatible with + the high-level library, Fortran, or C++ wrappers. [default=no] --enable-debug=all Turn on debugging in all packages. One may also specify a comma-separated list of package names @@ -25846,6 +25845,17 @@ fi ## with the thread-safety option because the lock is not hoisted ## into the higher-level API calls. +## --enable-threadsafe is incompatible with --enable-hl unless +## --enable-unsupported has been specified on the configure line. +## +## Note that the high-level library is enabled by default so most +## users will have to add --disable-hl to the configure options. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF5_HL}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + as_fn_error $? "The thread-safe library is incompatible with the high-level library. --disable-hl can be used to prevent building the high-level library (recommended). Alternatively, --enable-unsupported will allow building the high-level library, though this configuration is not supported by The HDF Group." "$LINENO" 5 + fi +fi + ## The --enable-threadsafe flag is not compatible with --enable-cxx. ## If the user tried to specify both flags, throw an error, unless ## they also provided the --enable-unsupported flag. diff --git a/configure.ac b/configure.ac index df14cec..a4f1457 100644 --- a/configure.ac +++ b/configure.ac @@ -1504,8 +1504,7 @@ AC_CACHE_SAVE AC_MSG_CHECKING([for thread safe support]) AC_ARG_ENABLE([threadsafe], [AS_HELP_STRING([--enable-threadsafe], - [Enable thread-safe capability. This will disable the high-level library. - You can override this behavior by specifying --enable-hl and --enable-unsupported. + [Enable thread-safe capability. Not compatible with the high-level library, Fortran, or C++ wrappers. [default=no]])], [THREADSAFE=$enableval]) @@ -1513,6 +1512,17 @@ AC_ARG_ENABLE([threadsafe], ## with the thread-safety option because the lock is not hoisted ## into the higher-level API calls. +## --enable-threadsafe is incompatible with --enable-hl unless +## --enable-unsupported has been specified on the configure line. +## +## Note that the high-level library is enabled by default so most +## users will have to add --disable-hl to the configure options. +if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then + if test "X${HDF5_HL}" = "Xyes" -a "X${enable_threadsafe}" = "Xyes"; then + AC_MSG_ERROR([The thread-safe library is incompatible with the high-level library. --disable-hl can be used to prevent building the high-level library (recommended). Alternatively, --enable-unsupported will allow building the high-level library, though this configuration is not supported by The HDF Group.]) + fi +fi + ## The --enable-threadsafe flag is not compatible with --enable-cxx. ## If the user tried to specify both flags, throw an error, unless ## they also provided the --enable-unsupported flag. -- cgit v0.12