From 459c1ec0708348ea1db8d23d789fa8e391904867 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sun, 22 Dec 2019 14:50:47 +0100 Subject: [PATCH v2] Simplify passing of configure arguments to pg_config The previous system had configure put the value into the makefiles and then have the makefiles pass them to the build of pg_config. That was put in place when pg_config was a shell script. We can simplify that by having configure put the value into pg_config.h directly. This also makes the standard build system match how the MSVC build system already does it. --- configure | 6 ++++-- configure.in | 2 +- src/Makefile.global.in | 3 --- src/common/Makefile | 1 - src/common/config_info.c | 6 +----- src/include/pg_config.h.in | 3 +++ src/tools/msvc/Solution.pm | 7 +------ 7 files changed, 10 insertions(+), 18 deletions(-) diff --git a/configure b/configure index 9de50377ff..ef0e9ac6ca 100755 --- a/configure +++ b/configure @@ -776,7 +776,6 @@ build_vendor build_cpu build PG_MAJORVERSION -configure_args target_alias host_alias build_alias @@ -2797,7 +2796,10 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -configure_args=$ac_configure_args + +cat >>confdefs.h <<_ACEOF +#define CONFIGURE_ARGS "$ac_configure_args" +_ACEOF PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'` diff --git a/configure.in b/configure.in index 9c5e5e7f8c..c5323ff9b4 100644 --- a/configure.in +++ b/configure.in @@ -27,7 +27,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2019, PostgreSQL Global Development Group]) AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c]) AC_CONFIG_AUX_DIR(config) AC_PREFIX_DEFAULT(/usr/local/pgsql) -AC_SUBST(configure_args, [$ac_configure_args]) +AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["$ac_configure_args"], [Saved arguments from configure]) [PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`] AC_SUBST(PG_MAJORVERSION) diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 05b66380e0..95f5a104e5 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -74,9 +74,6 @@ endif # not PGXS vpathsearch = `for f in $(addsuffix /$(1),$(subst :, ,. $(VPATH))); do test -r $$f && echo $$f && break; done` -# Saved arguments from configure -configure_args = @configure_args@ - ########################################################################## # diff --git a/src/common/Makefile b/src/common/Makefile index ffb0f6edff..fd43558830 100644 --- a/src/common/Makefile +++ b/src/common/Makefile @@ -31,7 +31,6 @@ include $(top_builddir)/src/Makefile.global # don't include subdirectory-path-dependent -I and -L switches STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS)) STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS)) -override CPPFLAGS += -DVAL_CONFIGURE="\"$(configure_args)\"" override CPPFLAGS += -DVAL_CC="\"$(CC)\"" override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\"" override CPPFLAGS += -DVAL_CFLAGS="\"$(CFLAGS)\"" diff --git a/src/common/config_info.c b/src/common/config_info.c index dd34fbfc00..902f8226a4 100644 --- a/src/common/config_info.c +++ b/src/common/config_info.c @@ -124,11 +124,7 @@ get_configdata(const char *my_exec_path, size_t *configdata_len) i++; configdata[i].name = pstrdup("CONFIGURE"); -#ifdef VAL_CONFIGURE - configdata[i].setting = pstrdup(VAL_CONFIGURE); -#else - configdata[i].setting = pstrdup(_("not recorded")); -#endif + configdata[i].setting = pstrdup(CONFIGURE_ARGS); i++; configdata[i].name = pstrdup("CC"); diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 050c48b108..97d98751ef 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -42,6 +42,9 @@ Changing BLCKSZ requires an initdb. */ #undef BLCKSZ +/* Saved arguments from configure */ +#undef CONFIGURE_ARGS + /* Define to the default TCP port number on which the server listens and to which clients will try to connect. This can be overridden at run-time, but it's convenient if your clients have the right default compiled in. diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 909bded592..4c7fc7bc30 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -195,6 +195,7 @@ sub GenerateFiles ALIGNOF_SHORT => 2, AC_APPLE_UNIVERSAL_BUILD => undef, BLCKSZ => 1024 * $self->{options}->{blocksize}, + CONFIGURE_ARGS => '"' . $self->GetFakeConfigure() . '"', DEF_PGPORT => $port, DEF_PGPORT_STR => qq{"$port"}, ENABLE_GSS => $self->{options}->{gss} ? 1 : undef, @@ -533,12 +534,6 @@ sub GenerateFiles $self->GenerateConfigHeader('src/include/pg_config_ext.h', \%define, 0); $self->GenerateConfigHeader('src/interfaces/ecpg/include/ecpg_config.h', \%define, 0); - open(my $f, '>>', 'src/include/pg_config.h') - || confess "Could not write to src/include/pg_config.h\n"; - print $f "\n"; - print $f "#define VAL_CONFIGURE \"" . $self->GetFakeConfigure() . "\"\n"; - close($f); - $self->GenerateDefFile( "src/interfaces/libpq/libpqdll.def", "src/interfaces/libpq/exports.txt", -- 2.24.1