mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
Prevent accidental linking of system-supplied copies of libpq.so etc.
We were being careless in some places about the order of -L switches in link command lines, such that -L switches referring to external directories could come before those referring to directories within the build tree. This made it possible to accidentally link a system-supplied library, for example /usr/lib/libpq.so, in place of the one built in the build tree. Hilarity ensued, the more so the older the system-supplied library is. To fix, break LDFLAGS into two parts, a sub-variable LDFLAGS_INTERNAL and the main LDFLAGS variable, both of which are "recursively expanded" so that they can be incrementally adjusted by different makefiles. Establish a policy that -L switches for directories in the build tree must always be added to LDFLAGS_INTERNAL, while -L switches for external directories must always be added to LDFLAGS. This is sufficient to ensure a safe search order. For simplicity, we typically also put -l switches for the respective libraries into those same variables. (Traditional make usage would have us put -l switches into LIBS, but cleaning that up is a project for another day, as there's no clear need for it.) This turns out to also require separating SHLIB_LINK into two variables, SHLIB_LINK and SHLIB_LINK_INTERNAL, with a similar rule about which switches go into which variable. And likewise for PG_LIBS. Although this change might appear to affect external users of pgxs.mk, I think it doesn't; they shouldn't have any need to touch the _INTERNAL variables. In passing, tweak src/common/Makefile so that the value of CPPFLAGS recorded in pg_config lacks "-DFRONTEND" and the recorded value of LDFLAGS lacks "-L../../../src/common". Both of those things are mistakes, apparently introduced during prior code rearrangements, as old versions of pg_config don't print them. In general we don't want anything that's specific to the src/common subdirectory to appear in those outputs. This is certainly a bug fix, but in view of the lack of field complaints, I'm unsure whether it's worth the risk of back-patching. In any case it seems wise to see what the buildfarm makes of it first. Discussion: https://postgr.es/m/25214.1522604295@sss.pgh.pa.us
This commit is contained in:
parent
d4a4c3d5b4
commit
dddfc4cb2e
@ -3,7 +3,7 @@
|
||||
MODULE_big = dblink
|
||||
OBJS = dblink.o $(WIN32RES)
|
||||
PG_CPPFLAGS = -I$(libpq_srcdir)
|
||||
SHLIB_LINK = $(libpq)
|
||||
SHLIB_LINK_INTERNAL = $(libpq)
|
||||
|
||||
EXTENSION = dblink
|
||||
DATA = dblink--1.2.sql dblink--1.1--1.2.sql dblink--1.0--1.1.sql \
|
||||
|
@ -28,7 +28,7 @@ ifeq ($(PORTNAME), win32)
|
||||
# these settings are the same as for plperl
|
||||
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
|
||||
# ... see silliness in plperl Makefile ...
|
||||
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plperl/libperl*.a))
|
||||
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plperl/libperl*.a))
|
||||
else
|
||||
rpathdir = $(perl_archlibexp)/CORE
|
||||
SHLIB_LINK += $(perl_embed_ldflags)
|
||||
|
@ -26,7 +26,7 @@ endif
|
||||
# We must link libpython explicitly
|
||||
ifeq ($(PORTNAME), win32)
|
||||
# ... see silliness in plpython Makefile ...
|
||||
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
|
||||
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
|
||||
else
|
||||
rpathdir = $(python_libdir)
|
||||
SHLIB_LINK += $(python_libspec) $(python_additional_libs)
|
||||
|
@ -27,7 +27,7 @@ ifeq ($(PORTNAME), win32)
|
||||
# these settings are the same as for plperl
|
||||
override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
|
||||
# ... see silliness in plperl Makefile ...
|
||||
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plperl/libperl*.a))
|
||||
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plperl/libperl*.a))
|
||||
else
|
||||
rpathdir = $(perl_archlibexp)/CORE
|
||||
SHLIB_LINK += $(perl_embed_ldflags)
|
||||
|
@ -26,7 +26,7 @@ endif
|
||||
# We must link libpython explicitly
|
||||
ifeq ($(PORTNAME), win32)
|
||||
# ... see silliness in plpython Makefile ...
|
||||
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
|
||||
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
|
||||
else
|
||||
rpathdir = $(python_libdir)
|
||||
SHLIB_LINK += $(python_libspec) $(python_additional_libs)
|
||||
|
@ -26,7 +26,7 @@ endif
|
||||
# We must link libpython explicitly
|
||||
ifeq ($(PORTNAME), win32)
|
||||
# ... see silliness in plpython Makefile ...
|
||||
SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
|
||||
SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
|
||||
else
|
||||
rpathdir = $(python_libdir)
|
||||
SHLIB_LINK += $(python_libspec) $(python_additional_libs)
|
||||
|
@ -7,7 +7,7 @@ PROGRAM = oid2name
|
||||
OBJS = oid2name.o $(WIN32RES)
|
||||
|
||||
PG_CPPFLAGS = -I$(libpq_srcdir)
|
||||
PG_LIBS = $(libpq_pgport)
|
||||
PG_LIBS_INTERNAL = $(libpq_pgport)
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
|
@ -5,7 +5,7 @@ OBJS = postgres_fdw.o option.o deparse.o connection.o shippable.o $(WIN32RES)
|
||||
PGFILEDESC = "postgres_fdw - foreign data wrapper for PostgreSQL"
|
||||
|
||||
PG_CPPFLAGS = -I$(libpq_srcdir)
|
||||
SHLIB_LINK = $(libpq)
|
||||
SHLIB_LINK_INTERNAL = $(libpq)
|
||||
|
||||
EXTENSION = postgres_fdw
|
||||
DATA = postgres_fdw--1.0.sql
|
||||
|
@ -17,8 +17,6 @@ DOCS = $(addsuffix .example, $(MODULES))
|
||||
# comment out if you want a quieter refint package for other uses
|
||||
PG_CPPFLAGS = -DREFINT_VERBOSE
|
||||
|
||||
LDFLAGS_SL += -L$(top_builddir)/src/port -lpgport
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
||||
|
@ -7,7 +7,7 @@ PROGRAM = vacuumlo
|
||||
OBJS = vacuumlo.o $(WIN32RES)
|
||||
|
||||
PG_CPPFLAGS = -I$(libpq_srcdir)
|
||||
PG_LIBS = $(libpq_pgport)
|
||||
PG_LIBS_INTERNAL = $(libpq_pgport)
|
||||
|
||||
ifdef USE_PGXS
|
||||
PG_CONFIG = pg_config
|
||||
|
@ -290,17 +290,26 @@ LLVM_LIBS=@LLVM_LIBS@
|
||||
LD = @LD@
|
||||
with_gnu_ld = @with_gnu_ld@
|
||||
|
||||
# We want -L for libpgport.a and libpgcommon.a to be first in LDFLAGS. We
|
||||
# also need LDFLAGS to be a "recursively expanded" variable, else adjustments
|
||||
# to rpathdir don't work right. So we must NOT do LDFLAGS := something,
|
||||
# meaning this has to be done first and elsewhere we must only do LDFLAGS +=
|
||||
# something.
|
||||
# It's critical that within LDFLAGS, all -L switches pointing to build-tree
|
||||
# directories come before any -L switches pointing to external directories.
|
||||
# Otherwise it's possible for, e.g., a platform-provided copy of libpq.so
|
||||
# to get linked in place of the one we've built. Therefore we adopt the
|
||||
# convention that the first component of LDFLAGS is an extra variable
|
||||
# LDFLAGS_INTERNAL, and -L and -l switches for PG's own libraries must be
|
||||
# put into LDFLAGS_INTERNAL, so they will appear ahead of those for external
|
||||
# libraries.
|
||||
#
|
||||
# We need LDFLAGS and LDFLAGS_INTERNAL to be "recursively expanded" variables,
|
||||
# else adjustments to, e.g., rpathdir don't work right. So we must NOT do
|
||||
# "LDFLAGS := something" anywhere, ditto for LDFLAGS_INTERNAL.
|
||||
# These initial assignments must be "=" type, and elsewhere we must only do
|
||||
# "LDFLAGS += something" or "LDFLAGS_INTERNAL += something".
|
||||
ifdef PGXS
|
||||
LDFLAGS = -L$(libdir)
|
||||
LDFLAGS_INTERNAL = -L$(libdir)
|
||||
else
|
||||
LDFLAGS = -L$(top_builddir)/src/port -L$(top_builddir)/src/common
|
||||
LDFLAGS_INTERNAL = -L$(top_builddir)/src/port -L$(top_builddir)/src/common
|
||||
endif
|
||||
LDFLAGS += @LDFLAGS@
|
||||
LDFLAGS = $(LDFLAGS_INTERNAL) @LDFLAGS@
|
||||
|
||||
LDFLAGS_EX = @LDFLAGS_EX@
|
||||
# LDFLAGS_SL might have already been assigned by calling makefile
|
||||
|
@ -20,12 +20,16 @@
|
||||
#
|
||||
# NAME Name of library to build (no suffix nor "lib" prefix)
|
||||
# OBJS List of object files to include in library
|
||||
# SHLIB_LINK If shared library relies on other libraries,
|
||||
# additional stuff to put in its link command
|
||||
# SHLIB_LINK Stuff to append to library's link command
|
||||
# (typically, -L and -l switches for external libraries)
|
||||
# SHLIB_LINK_INTERNAL -L and -l switches for Postgres-supplied libraries
|
||||
# SHLIB_PREREQS Order-only prerequisites for library build target
|
||||
# SHLIB_EXPORTS (optional) Name of file containing list of symbols to
|
||||
# export, in the format "function_name number"
|
||||
#
|
||||
# Don't use SHLIB_LINK for references to files in the build tree, or the
|
||||
# wrong things will happen --- use SHLIB_LINK_INTERNAL for those!
|
||||
#
|
||||
# When building a shared library, the following version information
|
||||
# must also be set. It should be omitted when building a dynamically
|
||||
# loadable module.
|
||||
@ -70,6 +74,8 @@
|
||||
COMPILER = $(CC) $(CFLAGS)
|
||||
LINK.static = $(AR) $(AROPT)
|
||||
|
||||
LDFLAGS_INTERNAL += $(SHLIB_LINK_INTERNAL)
|
||||
|
||||
|
||||
|
||||
ifdef SO_MAJOR_VERSION
|
||||
|
@ -15,7 +15,8 @@ include $(top_builddir)/src/Makefile.global
|
||||
override CPPFLAGS := -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
|
||||
OBJS = libpqwalreceiver.o $(WIN32RES)
|
||||
SHLIB_LINK = $(libpq) $(filter -lintl, $(LIBS))
|
||||
SHLIB_LINK_INTERNAL = $(libpq)
|
||||
SHLIB_LINK = $(filter -lintl, $(LIBS))
|
||||
SHLIB_PREREQS = submake-libpq
|
||||
PGFILEDESC = "libpqwalreceiver - receive WAL during streaming replication"
|
||||
NAME = libpqwalreceiver
|
||||
|
@ -19,7 +19,7 @@ include $(top_builddir)/src/Makefile.global
|
||||
override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) -I$(top_srcdir)/src/timezone $(CPPFLAGS)
|
||||
|
||||
# note: we need libpq only because fe_utils does
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
# use system timezone data?
|
||||
ifneq (,$(with_system_tzdata))
|
||||
|
@ -19,7 +19,7 @@ top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
OBJS=receivelog.o streamutil.o walmethods.o $(WIN32RES)
|
||||
|
||||
|
@ -20,7 +20,7 @@ include $(top_builddir)/src/Makefile.global
|
||||
# but let's not pull that in on platforms where we don't need it.
|
||||
ifeq ($(PORTNAME), win32)
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += $(libpq_pgport)
|
||||
SUBMAKE_LIBPQ := submake-libpq
|
||||
endif
|
||||
|
||||
|
@ -17,7 +17,7 @@ top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
OBJS= pg_backup_archiver.o pg_backup_db.o pg_backup_custom.o \
|
||||
pg_backup_null.o pg_backup_tar.o pg_backup_directory.o \
|
||||
|
@ -16,7 +16,7 @@ top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) -DFRONTEND $(CPPFLAGS)
|
||||
override LDFLAGS := $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += $(libpq_pgport)
|
||||
|
||||
OBJS = pg_rewind.o parsexlog.o xlogreader.o datapagemap.o timeline.o \
|
||||
fetch.o file_ops.o copy_fetch.o libpq_fetch.o filemap.o logging.o \
|
||||
|
@ -12,7 +12,7 @@ OBJS = check.o controldata.o dump.o exec.o file.o function.o info.o \
|
||||
tablespace.o util.o version.o $(WIN32RES)
|
||||
|
||||
override CPPFLAGS := -DDLSUFFIX=\"$(DLSUFFIX)\" -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
|
||||
all: pg_upgrade
|
||||
|
@ -10,7 +10,7 @@ include $(top_builddir)/src/Makefile.global
|
||||
OBJS = pgbench.o exprparse.o $(WIN32RES)
|
||||
|
||||
override CPPFLAGS := -I. -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
ifneq ($(PORTNAME), win32)
|
||||
override CFLAGS += $(PTHREAD_CFLAGS)
|
||||
|
@ -19,7 +19,7 @@ include $(top_builddir)/src/Makefile.global
|
||||
REFDOCDIR= $(top_srcdir)/doc/src/sgml/ref
|
||||
|
||||
override CPPFLAGS := -I. -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
OBJS= command.o common.o copy.o crosstabview.o \
|
||||
describe.o help.o input.o large_obj.o mainloop.o \
|
||||
|
@ -19,7 +19,7 @@ include $(top_builddir)/src/Makefile.global
|
||||
PROGRAMS = createdb createuser dropdb dropuser clusterdb vacuumdb reindexdb pg_isready
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
|
||||
|
||||
all: $(PROGRAMS)
|
||||
|
||||
|
@ -24,12 +24,9 @@ subdir = src/common
|
||||
top_builddir = ../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
override CPPFLAGS := -DFRONTEND $(CPPFLAGS)
|
||||
LIBS += $(PTHREAD_LIBS)
|
||||
|
||||
# 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/port,$(LDFLAGS))
|
||||
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)\""
|
||||
@ -40,6 +37,9 @@ override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
|
||||
override CPPFLAGS += -DVAL_LDFLAGS_SL="\"$(LDFLAGS_SL)\""
|
||||
override CPPFLAGS += -DVAL_LIBS="\"$(LIBS)\""
|
||||
|
||||
override CPPFLAGS := -DFRONTEND $(CPPFLAGS)
|
||||
LIBS += $(PTHREAD_LIBS)
|
||||
|
||||
OBJS_COMMON = base64.o config_info.o controldata_utils.o exec.o ip.o \
|
||||
keywords.o md5.o pg_lzcompress.o pgfnames.o psprintf.o relpath.o \
|
||||
rmtree.o saslprep.o scram-common.o string.o unicode_norm.o \
|
||||
|
@ -22,8 +22,8 @@ override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \
|
||||
-I$(libpq_srcdir) -DFRONTEND $(CPPFLAGS)
|
||||
override CFLAGS += $(PTHREAD_CFLAGS)
|
||||
|
||||
SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) \
|
||||
$(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
|
||||
SHLIB_LINK_INTERNAL = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq)
|
||||
SHLIB_LINK = $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
|
||||
SHLIB_PREREQS = submake-ecpglib submake-pgtypeslib
|
||||
|
||||
SHLIB_EXPORTS = exports.txt
|
||||
|
@ -35,7 +35,8 @@ ifneq ($(PORTNAME), win32)
|
||||
OBJS += thread.o
|
||||
endif
|
||||
|
||||
SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
|
||||
SHLIB_LINK_INTERNAL = -L../pgtypeslib -lpgtypes $(libpq)
|
||||
SHLIB_LINK = $(filter -lintl -lm, $(LIBS)) $(PTHREAD_LIBS)
|
||||
SHLIB_PREREQS = submake-libpq submake-pgtypeslib
|
||||
|
||||
SHLIB_EXPORTS = exports.txt
|
||||
|
@ -25,7 +25,7 @@ override CFLAGS += $(PTHREAD_CFLAGS)
|
||||
# Need to recompile any libpgport object files
|
||||
LIBS := $(filter-out -lpgport, $(LIBS))
|
||||
|
||||
SHLIB_LINK += -lm
|
||||
SHLIB_LINK += $(filter -lm, $(LIBS))
|
||||
|
||||
SHLIB_EXPORTS = exports.txt
|
||||
|
||||
|
@ -5,8 +5,9 @@ override CPPFLAGS := -I../../include -I$(top_srcdir)/src/interfaces/ecpg/include
|
||||
-I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override CFLAGS += $(PTHREAD_CFLAGS)
|
||||
|
||||
override LDFLAGS := -L../../ecpglib -L../../pgtypeslib $(filter-out -l%, $(libpq)) $(LDFLAGS)
|
||||
override LIBS := -lecpg -lpgtypes $(filter -l%, $(libpq)) $(LIBS) $(PTHREAD_LIBS)
|
||||
LDFLAGS_INTERNAL += -L../../ecpglib -lecpg -L../../pgtypeslib -lpgtypes $(libpq)
|
||||
|
||||
override LIBS += $(PTHREAD_LIBS)
|
||||
|
||||
# Standard way to invoke the ecpg preprocessor
|
||||
ECPG = ../../preproc/ecpg --regression -I$(srcdir)/../../include -I$(srcdir)
|
||||
|
@ -6,8 +6,7 @@ include $(top_srcdir)/$(subdir)/../Makefile.regress
|
||||
# Use special informix compatibility switch for all tests in this directory
|
||||
ECPG += -C INFORMIX
|
||||
|
||||
override LDFLAGS := -L../../compatlib $(LDFLAGS)
|
||||
override LIBS := -lecpg_compat $(LIBS)
|
||||
LDFLAGS_INTERNAL += -L../../compatlib -lecpg_compat
|
||||
|
||||
TESTS = test_informix test_informix.c \
|
||||
test_informix2 test_informix2.c \
|
||||
|
@ -3,11 +3,11 @@ top_builddir = ../../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
ifeq ($(PORTNAME), win32)
|
||||
LDLIBS += -lws2_32
|
||||
LDFLAGS += -lws2_32
|
||||
endif
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDLIBS := $(libpq_pgport) $(LDLIBS)
|
||||
LDFLAGS_INTERNAL += $(libpq_pgport)
|
||||
|
||||
PROGS = uri-regress
|
||||
|
||||
|
@ -45,7 +45,9 @@
|
||||
# EXTRA_CLEAN -- extra files to remove in 'make clean'
|
||||
# PG_CPPFLAGS -- will be added to CPPFLAGS
|
||||
# PG_LIBS -- will be added to PROGRAM link line
|
||||
# PG_LIBS_INTERNAL -- same, for references to libraries within build tree
|
||||
# SHLIB_LINK -- will be added to MODULE_big link line
|
||||
# SHLIB_LINK_INTERNAL -- same, for references to libraries within build tree
|
||||
# PG_CONFIG -- path to pg_config program for the PostgreSQL installation
|
||||
# to build against (typically just "pg_config" to use the first one in
|
||||
# your PATH)
|
||||
@ -315,5 +317,5 @@ endif
|
||||
|
||||
ifdef PROGRAM
|
||||
$(PROGRAM): $(OBJS)
|
||||
$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
|
||||
$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS_INTERNAL) $(LDFLAGS) $(LDFLAGS_EX) $(PG_LIBS) $(LIBS) -o $@$(X)
|
||||
endif
|
||||
|
@ -7,11 +7,11 @@ top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
ifeq ($(PORTNAME), win32)
|
||||
LDLIBS += -lws2_32
|
||||
LDFLAGS += -lws2_32
|
||||
endif
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDLIBS := $(libpq_pgport) $(LDLIBS)
|
||||
LDFLAGS_INTERNAL += $(libpq_pgport)
|
||||
|
||||
|
||||
PROGS = testlibpq testlibpq2 testlibpq3 testlibpq4 testlo testlo64
|
||||
|
@ -13,7 +13,7 @@ top_builddir = ../../..
|
||||
include $(top_builddir)/src/Makefile.global
|
||||
|
||||
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
||||
override LDFLAGS := $(libpq_pgport) $(LDFLAGS)
|
||||
LDFLAGS_INTERNAL += $(libpq_pgport)
|
||||
|
||||
OBJS= findoidjoins.o
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user