# HG changeset patch # User Bruno Haible # Date 1213749113 -7200 # Node ID e2d27ec15b00ffb353c4f2fd569b80308869c801 # Parent 5af483b0ae69e341ea650af3736ab92f7c04ee5a New macro gl_DISABLE_THREADS. diff -r 5af483b0ae69 -r e2d27ec15b00 ChangeLog --- a/ChangeLog Wed Jun 18 02:06:26 2008 +0200 +++ b/ChangeLog Wed Jun 18 02:31:53 2008 +0200 @@ -1,3 +1,11 @@ +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 diff -r 5af483b0ae69 -r e2d27ec15b00 m4/lock.m4 --- a/m4/lock.m4 Wed Jun 18 02:06:26 2008 +0200 +++ b/m4/lock.m4 Wed Jun 18 02:31:53 2008 +0200 @@ -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_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_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