Push responsibility for selecting out-of-line-assembler TAS code out to
authorTom Lane
Tue, 23 Dec 2003 18:40:53 +0000 (18:40 +0000)
committerTom Lane
Tue, 23 Dec 2003 18:40:53 +0000 (18:40 +0000)
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.

configure
configure.in
src/template/hpux
src/template/solaris

index 8eb1cfcdb754a0b09f3088739ae465f0818b5cfb..ffa04eeab1107cda5021ddb9f619c42418a11308 100755 (executable)
--- 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
 
 
 
@@ -2824,6 +2813,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
index 8251ccc2f1ca0d79170d803d9da23fc14628842a..a10e83298cef9aab4378cea272d3a8300704ce2c 100644 (file)
@@ -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
 
 
 
@@ -302,6 +292,20 @@ AC_DEFINE_UNQUOTED(PG_VERSION_STR,
                    [A string containing the version number, platform, and C compiler])
 
 
+#
+# 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
 #
index 28d836e0120483cd3721efb76f87fff14ee4ebf1..154b5743aa8cba7979ffab33d48473a37eda80e5 100644 (file)
@@ -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
index 7609d0e2cbd43769b3265629ada432e46069114a..7338878e835f4e592aed4f246733dd202f7c6fb3 100644 (file)
@@ -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"