diff --git a/src/backend/catalog/genbki.sh b/src/backend/catalog/genbki.sh
index a07af451670660872e167d2b5bdb8d021123dede..f5445010854cdd3515e4a09525c37d58df0fc463 100644
--- a/src/backend/catalog/genbki.sh
+++ b/src/backend/catalog/genbki.sh
@@ -11,7 +11,7 @@
 #
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.44 2008/04/21 00:26:45 tgl Exp $
+#    $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.45 2008/07/19 04:01:29 tgl Exp $
 #
 # NOTES
 #    non-essential whitespace is removed from the generated file.
@@ -59,7 +59,7 @@ do
             echo "  $CMDNAME [ -I dir ] --set-version=VERSION -o prefix files..."
             echo
             echo "Options:"
-            echo "  -I  path to pg_config_manual.h file"
+            echo "  -I  path to include files"
             echo "  -o  prefix of output files"
             echo "  --set-version  PostgreSQL version number for initdb cross-check"
             echo
@@ -106,22 +106,11 @@ TMPFILE="genbkitmp$$.c"
 trap "rm -f $TMPFILE ${OUTPUT_PREFIX}.bki.$$ ${OUTPUT_PREFIX}.description.$$ ${OUTPUT_PREFIX}.shdescription.$$" 0 1 2 3 15
 
 
-# Get NAMEDATALEN from pg_config_manual.h
-for dir in $INCLUDE_DIRS; do
-    if [ -f "$dir/pg_config_manual.h" ]; then
-        NAMEDATALEN=`grep '^#define[ 	]*NAMEDATALEN' $dir/pg_config_manual.h | $AWK '{ print $3 }'`
-        break
-    fi
-done
-
-# Get FLOAT4PASSBYVAL and FLOAT8PASSBYVAL from pg_config.h
-for dir in $INCLUDE_DIRS; do
-    if [ -f "$dir/pg_config.h" ]; then
-        FLOAT4PASSBYVAL=`grep '^#define[ 	]*FLOAT4PASSBYVAL' $dir/pg_config.h | $AWK '{ print $3 }'`
-        FLOAT8PASSBYVAL=`grep '^#define[ 	]*FLOAT8PASSBYVAL' $dir/pg_config.h | $AWK '{ print $3 }'`
-        break
-    fi
-done
+# CAUTION: be wary about what symbols you substitute into the .bki file here!
+# It's okay to substitute things that are expected to be really constant
+# within a given Postgres release, such as fixed OIDs.  Do not substitute
+# anything that could depend on platform or configuration.  (The right place
+# to handle those sorts of things is in initdb.c's bootstrap_template1().)
 
 # Get BOOTSTRAP_SUPERUSERID from catalog/pg_authid.h
 for dir in $INCLUDE_DIRS; do
@@ -172,9 +161,6 @@ sed -e "s/;[ 	]*$//g" \
     -e "s/^TransactionId/xid/g" \
     -e "s/(TransactionId/(xid/g" \
     -e "s/PGUID/$BOOTSTRAP_SUPERUSERID/g" \
-    -e "s/NAMEDATALEN/$NAMEDATALEN/g" \
-    -e "s/FLOAT4PASSBYVAL/$FLOAT4PASSBYVAL/g" \
-    -e "s/FLOAT8PASSBYVAL/$FLOAT8PASSBYVAL/g" \
     -e "s/PGNSP/$PG_CATALOG_NAMESPACE/g" \
 | $AWK '
 # ----------------
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
index cc2ea273ea559a100331ae4bb0c844cce08b2431..a7ef3c9227dd7dc9b9287e19919c991a2ee37a43 100644
--- a/src/bin/initdb/initdb.c
+++ b/src/bin/initdb/initdb.c
@@ -42,7 +42,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  * Portions taken from FreeBSD.
  *
- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.157 2008/06/26 01:35:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.158 2008/07/19 04:01:29 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1313,6 +1313,7 @@ bootstrap_template1(char *short_version)
 	char	   *talkargs = "";
 	char	  **bki_lines;
 	char		headerline[MAXPGPATH];
+	char		buf[64];
 
 	printf(_("creating template1 database in %s/base/1 ... "), pg_data);
 	fflush(stdout);
@@ -1337,6 +1338,17 @@ bootstrap_template1(char *short_version)
 		exit_nicely();
 	}
 
+	/* Substitute for various symbols used in the BKI file */
+
+	sprintf(buf, "%d", NAMEDATALEN);
+	bki_lines = replace_token(bki_lines, "NAMEDATALEN", buf);
+
+	bki_lines = replace_token(bki_lines, "FLOAT4PASSBYVAL",
+							  FLOAT4PASSBYVAL ? "true" : "false");
+
+	bki_lines = replace_token(bki_lines, "FLOAT8PASSBYVAL",
+							  FLOAT8PASSBYVAL ? "true" : "false");
+
 	bki_lines = replace_token(bki_lines, "POSTGRES", username);
 
 	bki_lines = replace_token(bki_lines, "ENCODING", encodingid);
diff --git a/src/tools/msvc/Genbki.pm b/src/tools/msvc/Genbki.pm
index d8fe3027961ded55471b506946b782f69327ceed..f8a7294c7dbbe4bd17298246851472a2711e2f05 100644
--- a/src/tools/msvc/Genbki.pm
+++ b/src/tools/msvc/Genbki.pm
@@ -11,7 +11,7 @@
 #
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/tools/msvc/Genbki.pm,v 1.4 2008/04/21 00:26:47 tgl Exp $
+#    $PostgreSQL: pgsql/src/tools/msvc/Genbki.pm,v 1.5 2008/07/19 04:01:29 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -33,19 +33,6 @@ sub genbki
     $version =~ /^(\d+\.\d+)/ || die "Bad format verison $version\n";
     my $majorversion = $1;
 
-    my $pgext = read_file("src/include/pg_config_manual.h");
-    $pgext =~ /^#define\s+NAMEDATALEN\s+(\d+)$/mg
-      || die "Could not read NAMEDATALEN from pg_config_manual.h\n";
-    my $namedatalen = $1;
-
-    my $pgconf = read_file("src/include/pg_config.h");
-    $pgconf =~ /^#define\s+FLOAT4PASSBYVAL\s+(\w+)$/mg
-      || die "Could not read FLOAT4PASSBYVAL from pg_config.h\n";
-    my $float4passbyval = $1;
-    $pgconf =~ /^#define\s+FLOAT8PASSBYVAL\s+(\w+)$/mg
-      || die "Could not read FLOAT8PASSBYVAL from pg_config.h\n";
-    my $float8passbyval = $1;
-
     my $pgauthid = read_file("src/include/catalog/pg_authid.h");
     $pgauthid =~ /^#define\s+BOOTSTRAP_SUPERUSERID\s+(\d+)$/mg
       || die "Could not read BOOTSTRAUP_SUPERUSERID from pg_authid.h\n";
@@ -78,9 +65,6 @@ sub genbki
     $indata =~ s{^TransactionId}{xid}gm;
     $indata =~ s{\(TransactionId}{(xid}g;
     $indata =~ s{PGUID}{$bootstrapsuperuserid}g;
-    $indata =~ s{NAMEDATALEN}{$namedatalen}g;
-    $indata =~ s{FLOAT4PASSBYVAL}{$float4passbyval}g;
-    $indata =~ s{FLOAT8PASSBYVAL}{$float8passbyval}g;
     $indata =~ s{PGNSP}{$pgcatalognamespace}g;
 
     #print $indata;