AIX: Link the postgres executable with -Wl,-brtllib.

This allows PostgreSQL modules and their dependencies to have undefined
symbols, resolved at runtime.  Perl module shared objects rely on that
in Perl 5.8.0 and later.  This fixes the crash when PL/PerlU loads such
modules, as the hstore_plperl test suite does.  Module authors can link
using -Wl,-G to permit undefined symbols; by default, linking will fail
as it has.  Back-patch to 9.0 (all supported versions).
This commit is contained in:
Noah Misch 2015-07-15 21:00:26 -04:00
parent e9a859b549
commit 1dd2b6b680

View File

@ -96,7 +96,7 @@ endif # win32
ifeq ($(PORTNAME), aix) ifeq ($(PORTNAME), aix)
postgres: $(POSTGRES_IMP) postgres: $(POSTGRES_IMP)
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $(call expand_subsys,$(OBJS)) -Wl,-bE:$(top_builddir)/src/backend/$(POSTGRES_IMP) $(LIBS) -o $@ $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $(call expand_subsys,$(OBJS)) -Wl,-bE:$(top_builddir)/src/backend/$(POSTGRES_IMP) $(LIBS) -Wl,-brtllib -o $@
$(POSTGRES_IMP): $(OBJS) $(POSTGRES_IMP): $(OBJS)
$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(call expand_subsys,$^) $(LD) $(LDREL) $(LDOUT) SUBSYS.o $(call expand_subsys,$^)