aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-12-23 18:40:53 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-12-23 18:40:53 +0000
commitbaee5f75c5ab2dbd8ae0e84c7172ee0021d0996c (patch)
treece264f0ad2e3826fa9445df00f6f248bf415d8bf
parent9adaf64da343f84ca4659e6ff9be926daf628a43 (diff)
downloadpostgresql-baee5f75c5ab2dbd8ae0e84c7172ee0021d0996c.tar.gz
postgresql-baee5f75c5ab2dbd8ae0e84c7172ee0021d0996c.zip
Push responsibility for selecting out-of-line-assembler TAS code out to
the platform template files, instead of doing it directly in configure.in. This seems cleaner, and also opens the door to making the choice be dependent on the compiler being used.
-rwxr-xr-xconfigure38
-rw-r--r--configure.in36
-rw-r--r--src/template/hpux5
-rw-r--r--src/template/solaris6
4 files changed, 52 insertions, 33 deletions
diff --git a/configure b/configure
index 8eb1cfcdb75..ffa04eeab11 100755
--- a/configure
+++ b/configure
@@ -1448,22 +1448,11 @@ echo "${ECHO_T}$template" >&6
PORTNAME=$template
-# Pick right test-and-set (TAS) code. Most platforms have inline
-# assembler code in src/include/storage/s_lock.h, so we just use
-# a dummy file here.
-case $host in
- hppa*-*-hpux*) need_tas=yes; tas_file=hpux_hppa.s ;;
- sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;;
- i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;;
- *) need_tas=no; tas_file=dummy.s ;;
-esac
-ac_config_links="$ac_config_links src/backend/port/tas.s:src/backend/port/tas/${tas_file}"
-
-
-if test "$need_tas" = yes ; then
- TAS=tas.o
-fi
-
+# Initialize default assumption that we do not need separate assembly code
+# for TAS (test-and-set). This can be overridden by the template file
+# when it's executed.
+need_tas=no
+tas_file=dummy.s
@@ -2825,6 +2814,21 @@ _ACEOF
#
+# Set up TAS assembly code if needed; the template file has now had its
+# chance to request this.
+#
+ac_config_links="$ac_config_links src/backend/port/tas.s:src/backend/port/tas/${tas_file}"
+
+
+if test "$need_tas" = yes ; then
+ TAS=tas.o
+else
+ TAS=""
+fi
+
+
+
+#
# Automatic dependency tracking
#
@@ -18223,7 +18227,6 @@ s,@host_cpu@,$host_cpu,;t t
s,@host_vendor@,$host_vendor,;t t
s,@host_os@,$host_os,;t t
s,@PORTNAME@,$PORTNAME,;t t
-s,@TAS@,$TAS,;t t
s,@docdir@,$docdir,;t t
s,@enable_nls@,$enable_nls,;t t
s,@WANTED_LANGUAGES@,$WANTED_LANGUAGES,;t t
@@ -18240,6 +18243,7 @@ s,@EXEEXT@,$EXEEXT,;t t
s,@OBJEXT@,$OBJEXT,;t t
s,@CPP@,$CPP,;t t
s,@GCC@,$GCC,;t t
+s,@TAS@,$TAS,;t t
s,@autodepend@,$autodepend,;t t
s,@INCLUDES@,$INCLUDES,;t t
s,@enable_thread_safety@,$enable_thread_safety,;t t
diff --git a/configure.in b/configure.in
index 8251ccc2f1c..a10e83298ce 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-dnl $PostgreSQL: pgsql/configure.in,v 1.308 2003/11/29 19:51:16 pgsql Exp $
+dnl $PostgreSQL: pgsql/configure.in,v 1.309 2003/12/23 18:40:52 tgl Exp $
dnl
dnl Developers, please strive to achieve this order:
dnl
@@ -97,21 +97,11 @@ AC_MSG_RESULT([$template])
PORTNAME=$template
AC_SUBST(PORTNAME)
-# Pick right test-and-set (TAS) code. Most platforms have inline
-# assembler code in src/include/storage/s_lock.h, so we just use
-# a dummy file here.
-case $host in
- hppa*-*-hpux*) need_tas=yes; tas_file=hpux_hppa.s ;;
- sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;;
- i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;;
- *) need_tas=no; tas_file=dummy.s ;;
-esac
-AC_CONFIG_LINKS([src/backend/port/tas.s:src/backend/port/tas/${tas_file}])
-
-if test "$need_tas" = yes ; then
- TAS=tas.o
-fi
-AC_SUBST(TAS)
+# Initialize default assumption that we do not need separate assembly code
+# for TAS (test-and-set). This can be overridden by the template file
+# when it's executed.
+need_tas=no
+tas_file=dummy.s
@@ -303,6 +293,20 @@ AC_DEFINE_UNQUOTED(PG_VERSION_STR,
#
+# Set up TAS assembly code if needed; the template file has now had its
+# chance to request this.
+#
+AC_CONFIG_LINKS([src/backend/port/tas.s:src/backend/port/tas/${tas_file}])
+
+if test "$need_tas" = yes ; then
+ TAS=tas.o
+else
+ TAS=""
+fi
+AC_SUBST(TAS)
+
+
+#
# Automatic dependency tracking
#
PGAC_ARG_BOOL(enable, depend, no, [ --enable-depend turn on automatic dependency tracking],
diff --git a/src/template/hpux b/src/template/hpux
index 28d836e0120..154b5743aa8 100644
--- a/src/template/hpux
+++ b/src/template/hpux
@@ -4,3 +4,8 @@ if test "$GCC" != yes ; then
CC="$CC -Ae"
CFLAGS="+O2"
fi
+
+# Pick right test-and-set (TAS) code.
+case $host in
+ hppa*-*-hpux*) need_tas=yes; tas_file=hpux_hppa.s ;;
+esac
diff --git a/src/template/solaris b/src/template/solaris
index 7609d0e2cbd..7338878e835 100644
--- a/src/template/solaris
+++ b/src/template/solaris
@@ -3,6 +3,12 @@ if test "$GCC" != yes ; then
CFLAGS="-O -v" # -v is like gcc -Wall
fi
+# Pick right test-and-set (TAS) code.
+case $host in
+ sparc-*-solaris*) need_tas=yes; tas_file=solaris_sparc.s ;;
+ i?86-*-solaris*) need_tas=yes; tas_file=solaris_i386.s ;;
+esac
+
THREAD_SUPPORT=yes
NEED_REENTRANT_FUNCS=yes # 5.6 2003-09-13
THREAD_LIBS="-pthread"