summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2003-09-27 16:24:45 +0000
committerBruce Momjian2003-09-27 16:24:45 +0000
commitd58edfd6015c50c2b97bc52a2285ba9168ab4d4f (patch)
tree4b6bcb2c98781cfbdd54aa8eaa6af26b1aa2cac1
parentc3978120c64cd2e6722f3ec5c3cea032dbbd62d6 (diff)
Finalize configuration of thread_test program.
-rwxr-xr-xconfigure4
-rw-r--r--configure.in5
-rw-r--r--src/Makefile.global.in1
-rw-r--r--src/template/bsdi2
-rw-r--r--src/template/freebsd5
-rw-r--r--src/template/linux4
-rw-r--r--src/template/netbsd2
-rw-r--r--src/template/osf2
-rw-r--r--src/template/solaris2
-rw-r--r--src/template/unixware2
-rw-r--r--src/tools/thread/Makefile7
-rw-r--r--src/tools/thread/README9
-rw-r--r--src/tools/thread/thread_test.c16
13 files changed, 35 insertions, 26 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 a3b67addc3..aedfeced7f 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-\dnl Process this file with autoconf to produce a configure script.
+dnl Process this file with autoconf to produce a configure script.
dnl $Header$
dnl
dnl Developers, please strive to achieve this order:
@@ -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 42395a29d0..80a4153a13 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -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 61665ae0e9..ac253e680c 100644
--- a/src/tools/thread/Makefile
+++ b/src/tools/thread/Makefile
@@ -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 b152162fd4..455eecc539 100644
--- a/src/tools/thread/thread_test.c
+++ b/src/tools/thread/thread_test.c
@@ -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;