pgsql: Prevent accidental linking of system-supplied copies oflibpq.so
От | Tom Lane |
---|---|
Тема | pgsql: Prevent accidental linking of system-supplied copies oflibpq.so |
Дата | |
Msg-id | E1fcddT-0002UA-Bq@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Prevent accidental linking of system-supplied copies of libpq.so etc. Back-patch commit dddfc4cb2, 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 dddfc4cb2 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 Branch ------ REL9_4_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/dd4e836748cec3e361e3b52243137960557a000d Modified Files -------------- contrib/dblink/Makefile | 2 +- contrib/oid2name/Makefile | 2 +- contrib/pgbench/Makefile | 3 ++- contrib/postgres_fdw/Makefile | 2 +- contrib/spi/Makefile | 2 -- contrib/vacuumlo/Makefile | 2 +- src/Makefile.global.in | 25 +++++++++++++++-------- src/Makefile.shlib | 10 +++++++-- src/backend/replication/libpqwalreceiver/Makefile | 2 +- src/bin/pg_basebackup/Makefile | 7 ++++--- src/bin/pg_config/Makefile | 2 +- src/bin/pg_ctl/Makefile | 3 ++- src/interfaces/ecpg/compatlib/Makefile | 4 ++-- src/interfaces/ecpg/ecpglib/Makefile | 3 ++- src/interfaces/ecpg/pgtypeslib/Makefile | 2 +- src/interfaces/ecpg/test/Makefile.regress | 5 +++-- src/interfaces/ecpg/test/compat_informix/Makefile | 3 +-- src/interfaces/libpq/test/Makefile | 4 ++-- src/makefiles/pgxs.mk | 4 +++- src/test/examples/Makefile | 4 ++-- 20 files changed, 55 insertions(+), 36 deletions(-)
В списке pgsql-committers по дате отправления: