From 5c5ae42a0061a25ef258186c728bb77a1dbeea86 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 4 Oct 2006 16:38:45 +0000 Subject: [PATCH] Make it possible to invoke AC_GNU_SOURCE after gl_LOCK_EARLY. --- m4/ChangeLog | 10 ++++++++++ m4/lock.m4 | 58 +++++++++++++++++++++++++++++++++------------------------- 2 files changed, 43 insertions(+), 25 deletions(-) diff --git a/m4/ChangeLog b/m4/ChangeLog index 2cac1acdc..ae7d506ad 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,13 @@ +2006-10-01 Bruno Haible + + Make it possible to invoke AC_GNU_SOURCE after gl_LOCK_EARLY. + * lock.m4 (gl_LOCK_EARLY_BODY): New macro, extracted code from + gl_LOCK_BODY. + (gl_LOCK_EARLY): Require gl_LOCK_EARLY_BODY, not gl_LOCK_BODY. + (gl_LOCK_BODY): Remove settings of CPPFLAGS, now done in + gl_LOCK_EARLY_BODY. + (gl_LOCK): Require gl_LOCK_BODY. + 2006-10-02 Eric Blake * extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Use autoconf's diff --git a/m4/lock.m4 b/m4/lock.m4 index 94c1870da..e03141585 100644 --- a/m4/lock.m4 +++ b/m4/lock.m4 @@ -1,4 +1,4 @@ -# lock.m4 serial 5 (gettext-0.15.1) +# lock.m4 serial 6 (gettext-0.15.1) dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -21,12 +21,12 @@ dnl multithread-safe programs. AC_DEFUN([gl_LOCK_EARLY], [ - AC_REQUIRE([gl_LOCK_BODY]) + AC_REQUIRE([gl_LOCK_EARLY_BODY]) ]) dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. -AC_DEFUN([gl_LOCK_BODY], +AC_DEFUN([gl_LOCK_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked @@ -49,6 +49,34 @@ AC_HELP_STRING([--disable-threads], [build without multithread safety]), *) gl_use_threads=yes ;; esac ]) + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # For using : + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_TRY_LINK test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + fi +]) + +dnl The guts of gl_LOCK. Needs to be expanded only once. + +AC_DEFUN([gl_LOCK_BODY], +[ + AC_REQUIRE([gl_LOCK_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= @@ -63,26 +91,12 @@ AC_HELP_STRING([--disable-threads], [build without multithread safety]), AC_MSG_RESULT([$gl_have_weak]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that - # it groks . - gl_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_REENTRANT" + # it groks . It's added above, in gl_LOCK_EARLY_BODY. AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) - CPPFLAGS="$gl_save_CPPFLAGS" if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_TRY_LINK test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but @@ -151,13 +165,6 @@ return !x; #endif], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac fi fi fi @@ -241,6 +248,7 @@ return !x; AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_LOCK_EARLY]) + AC_REQUIRE([gl_LOCK_BODY]) gl_PREREQ_LOCK ]) -- 2.11.0