Dumb shlib build rules cause regression test failures on ia64 - Mailing list pgsql-hackers

From Tom Lane
Subject Dumb shlib build rules cause regression test failures on ia64
Date
Msg-id 4942.1098588004@sss.pgh.pa.us
Whole thread Raw
Responses Re: Dumb shlib build rules cause regression test failures
List pgsql-hackers
I am seeing regression test failures on HPUX 11.23 (on ia64) using gcc
3.4.1.  The failures occur because refint.so fails to load:

/usr/lib/hpux32/dld.so: Unsatisfied code symbol '__divdi3' in load module
'/house/tgl/pgsql/src/test/regress/../../../contrib/spi/refint.so'.
ERROR:  could not load library "/house/tgl/pgsql/src/test/regress/../../../contrib/spi/refint.so": Unresolved external

Several of the contrib regression tests fail similarly.  The problem is
that the .so files get linked without mentioning libgcc.a, and
apparently this platform won't resolve the references to link to the
same routines in the backend.

There is no problem with modules that are linked using Makefile.shlib,
because it knows to add the appropriate libgcc reference to the link.
But the "MODULES" branch in pgxs.mk is not as smart.  It's effectively
relying on the DLSUFFIX rule supplied by the platform-specific makefile.
Those rules have always been a few bricks shy of a load, IMHO.

The obvious solution to this is to use Makefile.shlib all the time,
but there's a problem: Makefile.shlib is only designed to build a single
shlib per build subdirectory, and contrib/spi wants to build several.
I don't see any easy way to rejigger Makefile.shlib to support multiple
shared libraries at once --- anyone see a way?

A klugy workaround is to build all the modules in contrib/spi into a
single shared library.  This is ugly but I can't level any worse charge
than "ugly" against it.

The other contrib modules build no more than one shared library apiece,
and could trivially be converted to the MODULE_big build path.  Or more
likely, redefine the MODULES case in pgxs.mk to support only one module
in a directory, and use Makefile.shlib all the time.

Comments?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Proposed TODO: CREATE .... WITH OWNER;
Next
From: Lamar Owen
Date:
Subject: Re: Time off