From 391dceb462c32ccd72d4c45bef4e6839cb6c4d99 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 27 Sep 2003 16:24:45 +0000 Subject: [PATCH] Finalize configuration of thread_test program. --- configure | 4 +++- configure.in | 7 ++++--- src/Makefile.global.in | 3 ++- src/template/bsdi | 2 +- src/template/freebsd | 5 ++--- src/template/linux | 4 ++-- src/template/netbsd | 2 +- src/template/osf | 2 +- src/template/solaris | 2 +- src/template/unixware | 2 +- src/tools/thread/Makefile | 9 ++++++++- src/tools/thread/README | 9 +++++++-- src/tools/thread/thread_test.c | 18 ++++++------------ 13 files changed, 39 insertions(+), 30 deletions(-) diff --git a/configure b/configure index 1e842aeb60..999bfaed7c 100755 --- a/configure +++ b/configure @@ -13273,7 +13273,7 @@ fi -if test "$SUPPORTS_THREADS" != yes; then +if test "$THREAD_SUPPORT" != yes; then { { echo "$as_me:$LINENO: error: Cannot enable threads on your platform. Please report your platform threading info to the PostgreSQL mailing lists @@ -13299,6 +13299,7 @@ fi + # # Check for re-entrant versions of certain functions # @@ -18211,6 +18212,7 @@ s,@python_includespec@,$python_includespec,;t t s,@python_libspec@,$python_libspec,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@HAVE_IPV6@,$HAVE_IPV6,;t t +s,@THREAD_SUPPORT@,$THREAD_SUPPORT,;t t s,@THREAD_CPPFLAGS@,$THREAD_CPPFLAGS,;t t s,@THREAD_LIBS@,$THREAD_LIBS,;t t s,@HAVE_POSIX_SIGNALS@,$HAVE_POSIX_SIGNALS,;t t diff --git a/configure.in b/configure.in index 1606a54871..988b2dae68 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ -\dnl Process this file with autoconf to produce a configure script. -dnl $Header: /cvsroot/pgsql/configure.in,v 1.291 2003/09/27 15:32:47 momjian Exp $ +dnl Process this file with autoconf to produce a configure script. +dnl $Header: /cvsroot/pgsql/configure.in,v 1.292 2003/09/27 16:24:44 momjian Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -1002,7 +1002,7 @@ AC_FUNC_FSEEKO if test "$enable_thread_safety" = yes; then AC_CHECK_HEADER(pthread.h, [], [AC_MSG_ERROR([pthread.h not found, required for --enable-thread-safetys])]) -if test "$SUPPORTS_THREADS" != yes; then +if test "$THREAD_SUPPORT" != yes; then AC_MSG_ERROR([ Cannot enable threads on your platform. Please report your platform threading info to the PostgreSQL mailing lists @@ -1016,6 +1016,7 @@ else THREAD_CPPFLAGS= THREAD_LIBS= fi +AC_SUBST(THREAD_SUPPORT) AC_SUBST(THREAD_CPPFLAGS) AC_SUBST(THREAD_LIBS) diff --git a/src/Makefile.global.in b/src/Makefile.global.in index b4b2abb50e..4e75818948 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.169 2003/09/27 15:32:47 momjian Exp $ +# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.170 2003/09/27 16:24:44 momjian Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -150,6 +150,7 @@ TK_LIBS = @TK_LIBS@ TK_LIB_SPEC = @TK_LIB_SPEC@ TK_XINCLUDES = @TK_XINCLUDES@ +THREAD_SUPPORT = @THREAD_SUPPORT@ THREAD_CPPFLAGS = @THREAD_CPPFLAGS@ THREAD_LIBS = @THREAD_LIBS@ diff --git a/src/template/bsdi b/src/template/bsdi index a5996a5402..acb2c42d3c 100644 --- a/src/template/bsdi +++ b/src/template/bsdi @@ -10,5 +10,5 @@ case $host_os in ;; esac -SUPPORTS_THREADS=yes +THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=no # verified 4.3 2003-09-26 diff --git a/src/template/freebsd b/src/template/freebsd index 0711a83212..082afc077b 100644 --- a/src/template/freebsd +++ b/src/template/freebsd @@ -4,9 +4,8 @@ case $host_cpu in alpha*) CFLAGS="$CFLAGS -O" ;; esac -SUPPORTS_THREADS=yes -NEED_REENTRANT_FUNCS=yes # 4.8, 5.1 2003-09-12 - +THREAD_SUPPORT=yes +NEED_REENTRANT_FUNCS=yes THREAD_CPPFLAGS="-D_THREAD_SAFE" case $host_os in freebsd2*|freebsd3*|freebsd4*) diff --git a/src/template/linux b/src/template/linux index a690b44968..2a3209ccb0 100644 --- a/src/template/linux +++ b/src/template/linux @@ -2,8 +2,8 @@ CFLAGS=-O2 # Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise CPPFLAGS="-D_GNU_SOURCE" -SUPPORTS_THREADS=yes -NEED_REENTRANT_FUNCS=yes # verified glibc 2.1 2003-09-03 +THREAD_SUPPORT=yes +NEED_REENTRANT_FUNCS=yes THREAD_CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS" THREAD_LIBS="-lpthread" diff --git a/src/template/netbsd b/src/template/netbsd index 0fd61a70b2..f510dc9ef0 100644 --- a/src/template/netbsd +++ b/src/template/netbsd @@ -1,4 +1,4 @@ CFLAGS='-O2 -pipe' -SUPPORTS_THREADS=yes +THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=yes # 1.6 2003-09-14 diff --git a/src/template/osf b/src/template/osf index 0856f5c898..b5c60413de 100644 --- a/src/template/osf +++ b/src/template/osf @@ -5,6 +5,6 @@ else CFLAGS='-O4 -Olimit 2000' fi -SUPPORTS_THREADS=yes +THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=no # 4.0 2003-09-13 THREAD_LIBS="-pthread" diff --git a/src/template/solaris b/src/template/solaris index b333f00660..083b1d3659 100644 --- a/src/template/solaris +++ b/src/template/solaris @@ -5,7 +5,7 @@ else CFLAGS=-v # -v is like gcc -Wall fi -SUPPORTS_THREADS=yes +THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=yes # 5.6 2003-09-13 THREAD_LIBS="-pthread" diff --git a/src/template/unixware b/src/template/unixware index a228fa56ef..e1991bcc9c 100644 --- a/src/template/unixware +++ b/src/template/unixware @@ -9,6 +9,6 @@ else THREAD_CPPFLAGS="-K pthread" fi -SUPPORTS_THREADS=yes +THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=no # verified 7.1.3 2003-09-03 THREAD_CPPFLAGS="$THREAD_CPPFLAGS -D_REENTRANT" diff --git a/src/tools/thread/Makefile b/src/tools/thread/Makefile index ed5be7f5c7..339162bda0 100644 --- a/src/tools/thread/Makefile +++ b/src/tools/thread/Makefile @@ -4,7 +4,7 @@ # # Copyright (C) 2003 by PostgreSQL Global Development Team # -# $Header: /cvsroot/pgsql/src/tools/thread/Attic/Makefile,v 1.1 2003/09/27 15:32:48 momjian Exp $ +# $Header: /cvsroot/pgsql/src/tools/thread/Attic/Makefile,v 1.2 2003/09/27 16:24:45 momjian Exp $ # #------------------------------------------------------------------------- @@ -12,6 +12,13 @@ subdir = tools/thread top_builddir = ../../.. include $(top_builddir)/src/Makefile.global +ifeq ($(THREAD_SUPPORT), no) +$(error Your platform does not support threads) +endif +ifeq ($(THREAD_SUPPORT), ) +$(error You have not configured your template/$$port file. See the README) +endif + override CFLAGS += $(THREAD_CPPFLAGS) LDFLAGS += $(THREAD_LIBS) diff --git a/src/tools/thread/README b/src/tools/thread/README index f17e59248f..ac8133c108 100644 --- a/src/tools/thread/README +++ b/src/tools/thread/README @@ -4,5 +4,10 @@ new platforms. Run thread_test program to determine if your native libc functions are thread-safe, or if we should use *_r functions or thread locking. -Make sure you have added any needed 'THREAD_CPPFLAGS' and 'THREAD_LIBS' -defines to your template/${port} file before compiling this program. +To use this program, you must: + + o add "THREAD_SUPPORT=yes" to your template/${port} file + o add any THREAD_CPPFLAGS and THREAD_LIBS defines to your + template/${port} file + o run "configure --enable-thread-safety" + o compile and run this program diff --git a/src/tools/thread/thread_test.c b/src/tools/thread/thread_test.c index 7beb63dff4..b5db0e28ec 100644 --- a/src/tools/thread/thread_test.c +++ b/src/tools/thread/thread_test.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/tools/thread/Attic/thread_test.c,v 1.1 2003/09/27 15:32:48 momjian Exp $ + * $Header: /cvsroot/pgsql/src/tools/thread/Attic/thread_test.c,v 1.2 2003/09/27 16:24:45 momjian Exp $ * * This program tests to see if your standard libc functions use * pthread_setspecific()/pthread_getspecific() to be thread-safe. @@ -58,7 +58,7 @@ int main(int argc, char *argv[]) printf("\ Make sure you have added any needed 'THREAD_CPPFLAGS' and 'THREAD_LIBS'\n\ -defines to your template/${port} file before compiling this program.\n\n" +defines to your template/$port file before compiling this program.\n\n" ); pthread_create(&thread1, NULL, (void * (*)(void *)) func_call_1, NULL); pthread_create(&thread2, NULL, (void * (*)(void *)) func_call_2, NULL); @@ -82,20 +82,14 @@ defines to your template/${port} file before compiling this program.\n\n" strerror_p1 != strerror_p2) { printf("All your non-*_r functions are thread-safe.\n"); - printf("Add this to your template/${port} file:\n\n"); - printf("\ -SUPPORTS_THREADS=yes\n\ -NEED_REENTRANT_FUNCS=no\n" - ); + printf("Add this to your template/$port file:\n\n"); + printf("NEED_REENTRANT_FUNCS=no\n"); } else { printf("Not all non-*_r functions are thread-safe.\n"); - printf("Add this to your template/${port} file:\n\n"); - printf("\ -SUPPORTS_THREADS=yes\n\ -NEED_REENTRANT_FUNCS=yes\n" - ); + printf("Add this to your template/$port file:\n\n"); + printf("NEED_REENTRANT_FUNCS=yes\n"); } return 0;