diff --git a/doc/src/sgml/regress.sgml b/doc/src/sgml/regress.sgml
index ebf17683735546bfa486a375c0578ac69f61ed26..239250ae848fb2df91933ea254ded4856e1571f5 100644
--- a/doc/src/sgml/regress.sgml
+++ b/doc/src/sgml/regress.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/regress.sgml,v 1.12 2000/10/22 19:11:05 tgl Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/regress.sgml,v 1.13 2000/11/21 23:40:27 petere Exp $ -->
 
  <chapter id="regress">
   <title id="regress-title">Regression Tests</title>
@@ -272,52 +272,61 @@ diff results/random.out expected/random.out
 
 <!-- We might want to move the following section into the developer's guide. -->
   <sect1 id="regress-platform">
-    <title>Platform-specific comparison files</title>
+   <title>Platform-specific comparison files</title>
 
-     <para>
-  Since some of the tests inherently produce platform-specific results,
-  we have provided a way to supply platform-specific result comparison
-  files.  Frequently, the same variation applies to multiple platforms;
-  rather than supplying a separate comparison file for every platform,
-  there is a mapping file that defines which comparison file to use.
-  So, to eliminate bogus test "failures" for a particular platform,
-  you must choose or make a variant result file, and then add a line
-  to the mapping file, which is "resultmap".
-     </para>
+   <para>
+    Since some of the tests inherently produce platform-specific
+    results, we have provided a way to supply platform-specific result
+    comparison files.  Frequently, the same variation applies to
+    multiple platforms; rather than supplying a separate comparison
+    file for every platform, there is a mapping file that defines
+    which comparison file to use.  So, to eliminate bogus test
+    <quote>failures</quote> for a particular platform, you must choose
+    or make a variant result file, and then add a line to the mapping
+    file, which is <filename>resultmap</filename>.
+   </para>
 
-     <para>
-  Each line in the mapping file is of the form
-	<programlisting>
-		testname/platformnamepattern=comparisonfilename
-	</programlisting>
-  The test name is just the name of the particular regression test module.
-  The platform name pattern is a pattern in the style of expr(1) (that is,
-  a regular expression with an implicit ^ anchor at the start).  It is matched
-  against the platform name as printed by config.guess.  The comparison
-  file name is the name of the substitute result comparison file.
-     </para>
+   <para>
+    Each line in the mapping file is of the form
+<synopsis>
+testname/platformnamepattern=comparisonfilename
+</synopsis>
+    The test name is just the name of the particular regression test
+    module.  The platform name pattern is a pattern in the style of
+    expr(1) (that is, a regular expression with an implicit ^ anchor
+    at the start).  It is matched against the platform name as printed
+    by <filename>config.guess</filename> with an appended
+    <literal>:gcc</literal> or <literal>:cc</literal>, depending on
+    whether you use the GNU compiler or the system's native compiler
+    (on systems where there is a difference).  The comparison file
+    name is the name of the substitute result comparison file.
+   </para>
 
-     <para>
-  For example: the int2 regress test includes a deliberate entry of a value
-  that is too large to fit in int2.  The specific error message that is
-  produced is platform-dependent; our reference platform emits
-	<programlisting>
-    ERROR:  pg_atoi: error reading "100000": Numerical result out of range
-	</programlisting>
-  but a fair number of other Unix platforms emit
-	<programlisting>
-    ERROR:  pg_atoi: error reading "100000": Result too large
-	</programlisting>
-  Therefore, we provide a variant comparison file, int2-too-large.out,
-  that includes this spelling of the error message.  To silence the
-  bogus "failure" message on HPPA platforms,  resultmap includes
-	<programlisting>
-		int2/hppa=int2-too-large
-	</programlisting>
-  which will trigger on any machine for which config.guess's output
-  begins with 'hppa'.  Other lines in resultmap select the variant
-  comparison file for other platforms where it's appropriate.
-     </para>
+   <para>
+    For example: the int2 regression test includes a deliberate entry
+    of a value that is too large to fit in int2.  The specific error
+    message that is produced is platform-dependent; our reference
+    platform emits
+<screen>
+<computeroutput>ERROR:  pg_atoi: error reading "100000": Numerical result out of range</computeroutput>
+</screen>
+    but a fair number of other Unix platforms emit
+<screen>
+<computeroutput>ERROR:  pg_atoi: error reading "100000": Result too large</computeroutput>
+</screen>
+    Therefore, we provide a variant comparison file,
+    <filename>int2-too-large.out</filename>, that includes this
+    spelling of the error message.  To silence the bogus
+    <quote>failure</quote> message on HPPA platforms, resultmap
+    includes
+<programlisting>
+int2/hppa=int2-too-large
+</programlisting>
+    which will trigger on any machine for which config.guess's output
+    begins with <quote><literal>hppa</literal></quote>.  Other lines
+    in resultmap select the variant comparison file for other
+    platforms where it's appropriate.
+   </para>
     
   </sect1>
   
diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile
index b7af6883de8d28a293c5fc77851de78ada0318d3..21b514c31bd22c3b74fb60a6fd993665cfe21485 100644
--- a/src/test/regress/GNUmakefile
+++ b/src/test/regress/GNUmakefile
@@ -7,7 +7,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/test/regress/GNUmakefile,v 1.30 2000/10/27 20:00:19 petere Exp $
+#    $Header: /cvsroot/pgsql/src/test/regress/GNUmakefile,v 1.31 2000/11/21 23:40:28 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -37,6 +37,7 @@ pg_regress: pg_regress.sh GNUmakefile
 	    -e 's/@host_tuple@/$(host_tuple)/g' \
 	    -e 's,@GMAKE@,$(MAKE),g' \
 	    -e 's/@enable_shared@/$(enable_shared)/g' \
+	    -e 's/@GCC@/$(GCC)/g' \
 	  $< >$@
 	chmod a+x $@
 
diff --git a/src/test/regress/pg_regress.sh b/src/test/regress/pg_regress.sh
index 55017cc5352f77f5f54509c919b99b314c9e47a4..c0f2204d25c5f49e2e8dfcfdf34f9f97b91ee286 100644
--- a/src/test/regress/pg_regress.sh
+++ b/src/test/regress/pg_regress.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.11 2000/11/21 17:34:21 petere Exp $
+# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.12 2000/11/21 23:40:28 petere Exp $
 
 me=`basename $0`
 : ${TMPDIR=/tmp}
@@ -74,6 +74,13 @@ bindir='@bindir@'
 datadir='@datadir@'
 host_platform='@host_tuple@'
 enable_shared='@enable_shared@'
+GCC=@GCC@
+
+if [ "$GCC" = yes ]; then
+    compiler=gcc
+else
+    compiler=cc
+fi
 
 unset mode
 unset schedule
@@ -223,9 +230,12 @@ trap '
 # ----------
 # Scan resultmap file to find which platform-specific expected files to use.
 # The format of each line of the file is
-#               testname/hostplatformpattern=substitutefile
+#         testname/hostplatformpattern=substitutefile
 # where the hostplatformpattern is evaluated per the rules of expr(1),
 # namely, it is a standard regular expression with an implicit ^ at the start.
+# What hostplatformpattern will be matched against is the config.guess output
+# followed by either ':gcc' or ':cc' (independent of the actual name of the
+# compiler executable).
 #
 # The tempfile hackery is needed because some shells will run the loop
 # inside a subshell, whereupon shell variables set therein aren't seen
@@ -236,7 +246,7 @@ cat /dev/null >$TMPFILE
 while read LINE
 do
     HOSTPAT=`expr "$LINE" : '.*/\(.*\)='`
-    if [ `expr "$host_platform" : "$HOSTPAT"` -ne 0 ]
+    if [ `expr "$host_platform:$compiler" : "$HOSTPAT"` -ne 0 ]
     then
         # remove hostnamepattern from line so that there are no shell
         # wildcards in SUBSTLIST; else later 'for' could expand them!