PGXS ignores SHLIB_LINK when linking modules - Mailing list pgsql-hackers

From Marti Raudsepp
Subject PGXS ignores SHLIB_LINK when linking modules
Date
Msg-id CABRT9RAnPw+O5RPUnT=fJs5yvMYN6w0XQNXsjDD=KNzfgL=jQg@mail.gmail.com
Whole thread Raw
Responses Re: PGXS ignores SHLIB_LINK when linking modules  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
Hi,

I'm trying to write my first PostgreSQL C extension. I used the
pgxn-utils skeleton as a base and specified some external libraries in
SHLIB_LINK. However, this variable was ignored when linking the
library (using pgxs from current git master).

After spending quite a bit of time trying to understand the Makefile
spaghetti, I noticed that the contrib extensions are using MODULE_big
instead of MODULES. When I converted my makefile, it indeed started
working as expected.

Is there any reason that pgxs ignores SHLIB_LINK when building
MODULES? Seems like a pretty unlikely use case that someone would want
to use MODULE_big and MODULES in the same makefile, so there should to
be no ambiguity -- if SHLIB_LINK is set then it should be used.

This does NOT work:
MODULES      = src/pg_journal
SHLIB_LINK  = -lsystemd-journal -lsystemd-id128

And this does:
OBJS          = src/pg_journal.o
MODULE_big    = pg_journal
SHLIB_LINK  = -lsystemd-journal -lsystemd-id128

Here's the github repository for this extension:
https://github.com/intgr/pg_journal (the makefile there currently uses
a workaround)

Regards,
Marti


pgsql-hackers by date:

Previous
From: Alexander Shulgin
Date:
Subject: Re: WIP: URI connection string support for libpq
Next
From: Robert Haas
Date:
Subject: Re: Memory usage during sorting