Skip to content

Commit c74f48a

Browse files
committed
Prevent accidental linking of system-supplied copies of libpq.so etc.
Back-patch commit dddfc4c, which broke LDFLAGS and related Makefile variables into two parts, one for within-build-tree library references and one for external libraries, to ensure that the order of -L flags has all of the former before all of the latter. This turns out to fix a problem recently noted on buildfarm member peripatus, that we attempted to incorporate code from libpgport.a into a shared library. That will fail on platforms that are sticky about putting non-PIC code into shared libraries. (It's quite surprising we hadn't seen such failures before, since the code in question has been like that for a long time.) I think that peripatus' problem could have been fixed with just a subset of this patch; but since the previous issue of accidentally linking to the wrong copy of a Postgres shlib seems likely to bite people in the field, let's just back-patch the whole change. Now that commit dddfc4c has survived some beta testing, I'm less afraid to back-patch it than I was at the time. This also fixes undesired inclusion of "-DFRONTEND" in pg_config's CPPFLAGS output (in 9.6 and up) and undesired inclusion of "-L../../src/common" in its LDFLAGS output (in all supported branches). Back-patch to v10 and older branches; this is already in v11. Discussion: https://postgr.es/m/20180704234304.bq2dxispefl65odz@ler-imac.local
1 parent b0da7ec commit c74f48a

File tree

30 files changed

+64
-47
lines changed

30 files changed

+64
-47
lines changed

contrib/dblink/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
MODULE_big = dblink
44
OBJS = dblink.o $(WIN32RES)
55
PG_CPPFLAGS = -I$(libpq_srcdir)
6-
SHLIB_LINK = $(libpq)
6+
SHLIB_LINK_INTERNAL = $(libpq)
77

88
EXTENSION = dblink
99
DATA = dblink--1.2.sql dblink--1.1--1.2.sql dblink--1.0--1.1.sql \

contrib/hstore_plperl/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ ifeq ($(PORTNAME), win32)
2828
# these settings are the same as for plperl
2929
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
3030
# ... see silliness in plperl Makefile ...
31-
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plperl/libperl*.a))
31+
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plperl/libperl*.a))
3232
else
3333
rpathdir = $(perl_archlibexp)/CORE
3434
SHLIB_LINK += $(perl_embed_ldflags)

contrib/hstore_plpython/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ endif
2626
# We must link libpython explicitly
2727
ifeq ($(PORTNAME), win32)
2828
# ... see silliness in plpython Makefile ...
29-
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
29+
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
3030
else
3131
rpathdir = $(python_libdir)
3232
SHLIB_LINK += $(python_libspec) $(python_additional_libs)

contrib/ltree_plpython/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ endif
2626
# We must link libpython explicitly
2727
ifeq ($(PORTNAME), win32)
2828
# ... see silliness in plpython Makefile ...
29-
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
29+
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
3030
else
3131
rpathdir = $(python_libdir)
3232
SHLIB_LINK += $(python_libspec) $(python_additional_libs)

contrib/oid2name/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ PROGRAM = oid2name
77
OBJS = oid2name.o $(WIN32RES)
88

99
PG_CPPFLAGS = -I$(libpq_srcdir)
10-
PG_LIBS = $(libpq_pgport)
10+
PG_LIBS_INTERNAL = $(libpq_pgport)
1111

1212
ifdef USE_PGXS
1313
PG_CONFIG = pg_config

contrib/postgres_fdw/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ OBJS = postgres_fdw.o option.o deparse.o connection.o shippable.o $(WIN32RES)
55
PGFILEDESC = "postgres_fdw - foreign data wrapper for PostgreSQL"
66

77
PG_CPPFLAGS = -I$(libpq_srcdir)
8-
SHLIB_LINK = $(libpq)
8+
SHLIB_LINK_INTERNAL = $(libpq)
99

1010
EXTENSION = postgres_fdw
1111
DATA = postgres_fdw--1.0.sql

contrib/spi/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ DOCS = $(addsuffix .example, $(MODULES))
1717
# comment out if you want a quieter refint package for other uses
1818
PG_CPPFLAGS = -DREFINT_VERBOSE
1919

20-
LDFLAGS_SL += -L$(top_builddir)/src/port -lpgport
21-
2220
ifdef USE_PGXS
2321
PG_CONFIG = pg_config
2422
PGXS := $(shell $(PG_CONFIG) --pgxs)

contrib/vacuumlo/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ PROGRAM = vacuumlo
77
OBJS = vacuumlo.o $(WIN32RES)
88

99
PG_CPPFLAGS = -I$(libpq_srcdir)
10-
PG_LIBS = $(libpq_pgport)
10+
PG_LIBS_INTERNAL = $(libpq_pgport)
1111

1212
ifdef USE_PGXS
1313
PG_CONFIG = pg_config

src/Makefile.global.in

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -273,17 +273,26 @@ UUID_EXTRA_OBJS = @UUID_EXTRA_OBJS@
273273
LD = @LD@
274274
with_gnu_ld = @with_gnu_ld@
275275

276-
# We want -L for libpgport.a and libpgcommon.a to be first in LDFLAGS. We
277-
# also need LDFLAGS to be a "recursively expanded" variable, else adjustments
278-
# to rpathdir don't work right. So we must NOT do LDFLAGS := something,
279-
# meaning this has to be done first and elsewhere we must only do LDFLAGS +=
280-
# something.
276+
# It's critical that within LDFLAGS, all -L switches pointing to build-tree
277+
# directories come before any -L switches pointing to external directories.
278+
# Otherwise it's possible for, e.g., a platform-provided copy of libpq.so
279+
# to get linked in place of the one we've built. Therefore we adopt the
280+
# convention that the first component of LDFLAGS is an extra variable
281+
# LDFLAGS_INTERNAL, and -L and -l switches for PG's own libraries must be
282+
# put into LDFLAGS_INTERNAL, so they will appear ahead of those for external
283+
# libraries.
284+
#
285+
# We need LDFLAGS and LDFLAGS_INTERNAL to be "recursively expanded" variables,
286+
# else adjustments to, e.g., rpathdir don't work right. So we must NOT do
287+
# "LDFLAGS := something" anywhere, ditto for LDFLAGS_INTERNAL.
288+
# These initial assignments must be "=" type, and elsewhere we must only do
289+
# "LDFLAGS += something" or "LDFLAGS_INTERNAL += something".
281290
ifdef PGXS
282-
LDFLAGS = -L$(libdir)
291+
LDFLAGS_INTERNAL = -L$(libdir)
283292
else
284-
LDFLAGS = -L$(top_builddir)/src/port -L$(top_builddir)/src/common
293+
LDFLAGS_INTERNAL = -L$(top_builddir)/src/port -L$(top_builddir)/src/common
285294
endif
286-
LDFLAGS += @LDFLAGS@
295+
LDFLAGS = $(LDFLAGS_INTERNAL) @LDFLAGS@
287296

288297
LDFLAGS_EX = @LDFLAGS_EX@
289298
# LDFLAGS_SL might have already been assigned by calling makefile

src/Makefile.shlib

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@
2020
#
2121
# NAME Name of library to build (no suffix nor "lib" prefix)
2222
# OBJS List of object files to include in library
23-
# SHLIB_LINK If shared library relies on other libraries,
24-
# additional stuff to put in its link command
23+
# SHLIB_LINK Stuff to append to library's link command
24+
# (typically, -L and -l switches for external libraries)
25+
# SHLIB_LINK_INTERNAL -L and -l switches for Postgres-supplied libraries
2526
# SHLIB_PREREQS Order-only prerequisites for library build target
2627
# SHLIB_EXPORTS (optional) Name of file containing list of symbols to
2728
# export, in the format "function_name number"
2829
#
30+
# Don't use SHLIB_LINK for references to files in the build tree, or the
31+
# wrong things will happen --- use SHLIB_LINK_INTERNAL for those!
32+
#
2933
# When building a shared library, the following version information
3034
# must also be set. It should be omitted when building a dynamically
3135
# loadable module.
@@ -70,6 +74,8 @@
7074
COMPILER = $(CC) $(CFLAGS)
7175
LINK.static = $(AR) $(AROPT)
7276

77+
LDFLAGS_INTERNAL += $(SHLIB_LINK_INTERNAL)
78+
7379

7480

7581
ifdef SO_MAJOR_VERSION

src/backend/replication/libpqwalreceiver/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ include $(top_builddir)/src/Makefile.global
1515
override CPPFLAGS := -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
1616

1717
OBJS = libpqwalreceiver.o $(WIN32RES)
18-
SHLIB_LINK = $(libpq) $(filter -lintl, $(LIBS))
18+
SHLIB_LINK_INTERNAL = $(libpq)
19+
SHLIB_LINK = $(filter -lintl, $(LIBS))
1920
SHLIB_PREREQS = submake-libpq
2021
PGFILEDESC = "libpqwalreceiver - receive WAL during streaming replication"
2122
NAME = libpqwalreceiver

src/bin/initdb/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ include $(top_builddir)/src/Makefile.global
1919
override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) -I$(top_srcdir)/src/timezone $(CPPFLAGS)
2020

2121
# note: we need libpq only because fe_utils does
22-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
22+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
2323

2424
# use system timezone data?
2525
ifneq (,$(with_system_tzdata))

src/bin/pg_basebackup/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ top_builddir = ../../..
1919
include $(top_builddir)/src/Makefile.global
2020

2121
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
22-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
22+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
2323

2424
OBJS=receivelog.o streamutil.o walmethods.o $(WIN32RES)
2525

src/bin/pg_ctl/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ include $(top_builddir)/src/Makefile.global
2020
# but let's not pull that in on platforms where we don't need it.
2121
ifeq ($(PORTNAME), win32)
2222
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
23-
override LDFLAGS := $(libpq_pgport) $(LDFLAGS)
23+
LDFLAGS_INTERNAL += $(libpq_pgport)
2424
SUBMAKE_LIBPQ := submake-libpq
2525
endif
2626

src/bin/pg_dump/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ top_builddir = ../../..
1717
include $(top_builddir)/src/Makefile.global
1818

1919
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
20-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
20+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
2121

2222
OBJS= pg_backup_archiver.o pg_backup_db.o pg_backup_custom.o \
2323
pg_backup_null.o pg_backup_tar.o pg_backup_directory.o \

src/bin/pg_rewind/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ top_builddir = ../../..
1616
include $(top_builddir)/src/Makefile.global
1717

1818
override CPPFLAGS := -I$(libpq_srcdir) -DFRONTEND $(CPPFLAGS)
19-
override LDFLAGS := $(libpq_pgport) $(LDFLAGS)
19+
LDFLAGS_INTERNAL += $(libpq_pgport)
2020

2121
OBJS = pg_rewind.o parsexlog.o xlogreader.o datapagemap.o timeline.o \
2222
fetch.o file_ops.o copy_fetch.o libpq_fetch.o filemap.o logging.o \

src/bin/pg_upgrade/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ OBJS = check.o controldata.o dump.o exec.o file.o function.o info.o \
1212
tablespace.o util.o version.o $(WIN32RES)
1313

1414
override CPPFLAGS := -DDLSUFFIX=\"$(DLSUFFIX)\" -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
15-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
15+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
1616

1717

1818
all: pg_upgrade

src/bin/pgbench/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ include $(top_builddir)/src/Makefile.global
1010
OBJS = pgbench.o exprparse.o $(WIN32RES)
1111

1212
override CPPFLAGS := -I. -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
13-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
13+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
1414

1515
ifneq ($(PORTNAME), win32)
1616
override CFLAGS += $(PTHREAD_CFLAGS)

src/bin/psql/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ include $(top_builddir)/src/Makefile.global
1919
REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref
2020

2121
override CPPFLAGS := -I. -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
22-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
22+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
2323

2424
OBJS= command.o common.o conditional.o copy.o crosstabview.o \
2525
describe.o help.o input.o large_obj.o mainloop.o \

src/bin/scripts/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ include $(top_builddir)/src/Makefile.global
1919
PROGRAMS = createdb createuser dropdb dropuser clusterdb vacuumdb reindexdb pg_isready
2020

2121
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
22-
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
22+
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
2323

2424
all: $(PROGRAMS)
2525

src/common/Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,9 @@ subdir = src/common
2424
top_builddir = ../..
2525
include $(top_builddir)/src/Makefile.global
2626

27-
override CPPFLAGS := -DFRONTEND $(CPPFLAGS)
28-
LIBS += $(PTHREAD_LIBS)
29-
3027
# don't include subdirectory-path-dependent -I and -L switches
3128
STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS))
32-
STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/port,$(LDFLAGS))
29+
STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
3330
override CPPFLAGS += -DVAL_CONFIGURE="\"$(configure_args)\""
3431
override CPPFLAGS += -DVAL_CC="\"$(CC)\""
3532
override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\""
@@ -40,6 +37,9 @@ override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
4037
override CPPFLAGS += -DVAL_LDFLAGS_SL="\"$(LDFLAGS_SL)\""
4138
override CPPFLAGS += -DVAL_LIBS="\"$(LIBS)\""
4239

40+
override CPPFLAGS := -DFRONTEND $(CPPFLAGS)
41+
LIBS += $(PTHREAD_LIBS)
42+
4343
OBJS_COMMON = base64.o config_info.o controldata_utils.o exec.o ip.o \
4444
keywords.o md5.o pg_lzcompress.o pgfnames.o psprintf.o relpath.o \
4545
rmtree.o saslprep.o scram-common.o string.o unicode_norm.o \

src/interfaces/ecpg/compatlib/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \
2222
-I$(libpq_srcdir) -DFRONTEND $(CPPFLAGS)
2323
override CFLAGS += $(PTHREAD_CFLAGS)
2424

25-
SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) \
26-
$(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
25+
SHLIB_LINK_INTERNAL = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq)
26+
SHLIB_LINK = $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
2727
SHLIB_PREREQS = submake-ecpglib submake-pgtypeslib
2828

2929
SHLIB_EXPORTS = exports.txt

src/interfaces/ecpg/ecpglib/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ ifneq ($(PORTNAME), win32)
3434
OBJS += thread.o
3535
endif
3636

37-
SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
37+
SHLIB_LINK_INTERNAL = -L../pgtypeslib -lpgtypes $(libpq)
38+
SHLIB_LINK = $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
3839
SHLIB_PREREQS = submake-libpq submake-pgtypeslib
3940

4041
SHLIB_EXPORTS = exports.txt

src/interfaces/ecpg/pgtypeslib/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ override CFLAGS += $(PTHREAD_CFLAGS)
2525
# Need to recompile any libpgport object files
2626
LIBS := $(filter-out -lpgport, $(LIBS))
2727

28-
SHLIB_LINK += -lm
28+
SHLIB_LINK += $(filter -lm, $(LIBS))
2929

3030
SHLIB_EXPORTS = exports.txt
3131

src/interfaces/ecpg/test/Makefile.regress

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ override CPPFLAGS := -I../../include -I$(top_srcdir)/src/interfaces/ecpg/include
55
-I$(libpq_srcdir) $(CPPFLAGS)
66
override CFLAGS += $(PTHREAD_CFLAGS)
77

8-
override LDFLAGS := -L../../ecpglib -L../../pgtypeslib $(filter-out -l%, $(libpq)) $(LDFLAGS)
9-
override LIBS := -lecpg -lpgtypes $(filter -l%, $(libpq)) $(LIBS) $(PTHREAD_LIBS)
8+
LDFLAGS_INTERNAL += -L../../ecpglib -lecpg -L../../pgtypeslib -lpgtypes $(libpq)
9+
10+
override LIBS += $(PTHREAD_LIBS)
1011

1112
# Standard way to invoke the ecpg preprocessor
1213
ECPG = ../../preproc/ecpg --regression -I$(srcdir)/../../include -I$(srcdir)

src/interfaces/ecpg/test/compat_informix/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ include $(top_srcdir)/$(subdir)/../Makefile.regress
66
# Use special informix compatibility switch for all tests in this directory
77
ECPG += -C INFORMIX
88

9-
override LDFLAGS := -L../../compatlib $(LDFLAGS)
10-
override LIBS := -lecpg_compat $(LIBS)
9+
LDFLAGS_INTERNAL += -L../../compatlib -lecpg_compat
1110

1211
TESTS = test_informix test_informix.c \
1312
test_informix2 test_informix2.c \

src/interfaces/libpq/test/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ top_builddir = ../../../..
33
include $(top_builddir)/src/Makefile.global
44

55
ifeq ($(PORTNAME), win32)
6-
LDLIBS += -lws2_32
6+
LDFLAGS += -lws2_32
77
endif
88

99
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
10-
override LDLIBS := $(libpq_pgport) $(LDLIBS)
10+
LDFLAGS_INTERNAL += $(libpq_pgport)
1111

1212
PROGS = uri-regress
1313

src/makefiles/pgxs.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@
4545
# EXTRA_CLEAN -- extra files to remove in 'make clean'
4646
# PG_CPPFLAGS -- will be added to CPPFLAGS
4747
# PG_LIBS -- will be added to PROGRAM link line
48+
# PG_LIBS_INTERNAL -- same, for references to libraries within build tree
4849
# SHLIB_LINK -- will be added to MODULE_big link line
50+
# SHLIB_LINK_INTERNAL -- same, for references to libraries within build tree
4951
# PG_CONFIG -- path to pg_config program for the PostgreSQL installation
5052
# to build against (typically just "pg_config" to use the first one in
5153
# your PATH)
@@ -297,5 +299,5 @@ endif
297299

298300
ifdef PROGRAM
299301
$(PROGRAM): $(OBJS)
300-
$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
302+
$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS_INTERNAL) $(LDFLAGS) $(LDFLAGS_EX) $(PG_LIBS) $(LIBS) -o $@$(X)
301303
endif

src/test/examples/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ top_builddir = ../../..
77
include $(top_builddir)/src/Makefile.global
88

99
ifeq ($(PORTNAME), win32)
10-
LDLIBS += -lws2_32
10+
LDFLAGS += -lws2_32
1111
endif
1212

1313
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
14-
override LDLIBS := $(libpq_pgport) $(LDLIBS)
14+
LDFLAGS_INTERNAL += $(libpq_pgport)
1515

1616

1717
PROGS = testlibpq testlibpq2 testlibpq3 testlibpq4 testlo testlo64

src/tools/findoidjoins/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ top_builddir = ../../..
1313
include $(top_builddir)/src/Makefile.global
1414

1515
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
16-
override LDFLAGS := $(libpq_pgport) $(LDFLAGS)
16+
LDFLAGS_INTERNAL += $(libpq_pgport)
1717

1818
OBJS= findoidjoins.o
1919

0 commit comments

Comments
 (0)