From 370a438c6b652e458f1fd11d4dcb7c08db61d416 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 18 Jun 2008 02:31:53 +0200 Subject: [PATCH] New macro gl_DISABLE_THREADS. --- ChangeLog | 8 ++++++++ m4/lock.m4 | 37 ++++++++++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index e6f31b88a..696c96100 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2008-06-17 Bruno Haible + New macro gl_DISABLE_THREADS. + * m4/lock.m4 (gl_LOCK_EARLY_BODY): Use value gl_use_threads_default + if the user did not pass --enable-threads or --disable-threads option. + (gl_DISABLE_THREADS): New macro. + Reported by Eric Blake . + +2008-06-17 Bruno Haible + * lib/tls.h (gl_tls_key_init): Evaluate the destructor argument also when the macro ignores it. Based on a patch by Eric Blake . diff --git a/m4/lock.m4 b/m4/lock.m4 index 911193353..d59028953 100644 --- a/m4/lock.m4 +++ b/m4/lock.m4 @@ -1,11 +1,13 @@ -# lock.m4 serial 7 (gettext-0.17) -dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. +# lock.m4 serial 8 (gettext-0.18) +dnl Copyright (C) 2005-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. +dnl gl_LOCK +dnl ------- dnl Tests for a multithreading library to be used. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WIN32_THREADS @@ -42,17 +44,22 @@ AC_DEFUN([gl_LOCK_EARLY_BODY], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. + m4_divert_text([DEFAULTS], [gl_use_threads_default=]) AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) AC_HELP_STRING([--disable-threads], [build without multithread safety]), [gl_use_threads=$enableval], - [case "$host_os" in - dnl Disable multithreading by default on OSF/1, because it interferes - dnl with fork()/exec(): When msgexec is linked with -lpthread, its child - dnl process gets an endless segmentation fault inside execvp(). - osf*) gl_use_threads=no ;; - *) gl_use_threads=yes ;; - esac + [if test -n "$gl_use_threads_default"; then + gl_use_threads="$gl_use_threads_default" + else + case "$host_os" in + dnl Disable multithreading by default on OSF/1, because it interferes + dnl with fork()/exec(): When msgexec is linked with -lpthread, its + dnl child process gets an endless segmentation fault inside execvp(). + osf*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : @@ -262,6 +269,18 @@ AC_DEFUN([gl_PREREQ_LOCK], [ AC_REQUIRE([AC_C_INLINE]) ]) + +dnl gl_DISABLE_THREADS +dnl ------------------ +dnl Sets the gl_LOCK default so that threads are not used by default. +dnl The user can still override it at installation time, by using the +dnl configure option '--enable-threads'. + +AC_DEFUN([gl_DISABLE_THREADS], [ + m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) +]) + + dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock -- 2.11.0