postgres.git / summary / log / commit / refs

commit    cb36f8ec2124b0c495da057a2f55735fe858be0e
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Wed Mar 26 00:03:56 2025 +0000

    Fix order of -I switches for building pg_regress.o.
    
    We need the -I switch for libpq_srcdir to come before any -I switches
    injected by configure.  Otherwise there is a risk of pulling in a
    mismatched version of libpq_fe.h from someplace like
    /usr/local/include, if the platform has another Postgres version
    installed there.  This evidently accounts for today's buildfarm
    failures on "anaconda".
    
    In principle the -I switch for src/port/ is at similar hazard, and has
    been for a very long time.  But the only .h files we keep there are
    pg_config_paths.h and pthread-win32.h, neither of which get installed
    on Unix-ish systems, so the odds of picking up a conflicting header
    seem pretty small.  That doubtless accounts for the lack of prior
    reports.
    
    Back-patch to v17 where pg_regress acquired a build dependency on
    libpq_fe.h.  We could go back further to fix the hazard for src/port/
    in older branches, but it seems unlikely to be worth troubling over.
    
    Reported-by: Nathan Bossart <nathandbossart@gmail.com>
    Author: Tom Lane <tgl@sss.pgh.pa.us>
    Discussion: https://postgr.es/m/Z-MhRzoc7t-nPUQG@nathan
    Backpatch-through: 17


src/test/regress/GNUmakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile index dee68624c5b..523be640424 100644 --- a/src/test/regress/GNUmakefile +++ b/src/test/regress/GNUmakefile @@ -40,7 +40,7 @@ pg_regress$(X): pg_regress.o pg_regress_main.o $(WIN32RES) | submake-libpgport # dependencies ensure that path changes propagate pg_regress.o: pg_regress.c $(top_builddir)/src/port/pg_config_paths.h -pg_regress.o: override CPPFLAGS += -I$(top_builddir)/src/port -I$(libpq_srcdir) $(EXTRADEFS) +pg_regress.o: override CPPFLAGS := -I$(top_builddir)/src/port -I$(libpq_srcdir) $(EXTRADEFS) $(CPPFLAGS) # note: because of the submake dependency, this rule's action is really a no-op $(top_builddir)/src/port/pg_config_paths.h: | submake-libpgport [parent: 3430215fe35f]