It seems that src/Makefile.shlib has special cases for several
directories that build loadable modules rather than shared libraries.
The contrib/adminpack is one of the special cases, but none of the
other contrib directories are. As a result, they get built as shared
libraries (i.e., as libXXX.so rather than XXX.so) and the
corresponding *.sql.in files that load them refer to the wrong file
and therefore fail. The following patch (against the 8.3 release)
fixes this by expanding the set of special cases to include all the
contrib directories, not just contrib/adminpack. I only have tested
this with the uuid module, but it appears that all of them have the
same organization.

--- src/Makefile.shlib.orig
+++ src/Makefile.shlib
@@ -21,7 +21,7 @@
ifneq (,$(findstring src/pl/,$(subdir)))
shmodule = yes
else
-ifneq (,$(findstring contrib/adminpack,$(subdir)))
+ifneq (,$(findstring contrib/,$(subdir)))
shmodule = yes
else
shmodule = no

Cheers,
Brook

Search Discussions

  • Peter Eisentraut at Jan 24, 2010 at 4:00 pm

    On lör, 2010-01-23 at 18:00 -0700, Brook Milligan wrote:
    It seems that src/Makefile.shlib has special cases for several
    directories that build loadable modules rather than shared libraries.
    The contrib/adminpack is one of the special cases, but none of the
    other contrib directories are. As a result, they get built as shared
    libraries (i.e., as libXXX.so rather than XXX.so) and the
    corresponding *.sql.in files that load them refer to the wrong file
    and therefore fail. The following patch (against the 8.3 release)
    fixes this by expanding the set of special cases to include all the
    contrib directories, not just contrib/adminpack. I only have tested
    this with the uuid module, but it appears that all of them have the
    same organization.
    This code has been reworked quite extensively since 8.3. Please check
    CVS head to see if it works for you.
  • Josh Berkus at Jan 25, 2010 at 6:53 pm

    On 1/23/10 5:00 PM, Brook Milligan wrote:
    It seems that src/Makefile.shlib has special cases for several
    directories that build loadable modules rather than shared libraries.
    The contrib/adminpack is one of the special cases, but none of the
    other contrib directories are. As a result, they get built as shared
    libraries (i.e., as libXXX.so rather than XXX.so) and the
    corresponding *.sql.in files that load them refer to the wrong file
    and therefore fail. The following patch (against the 8.3 release)
    fixes this by expanding the set of special cases to include all the
    contrib directories, not just contrib/adminpack. I only have tested
    this with the uuid module, but it appears that all of them have the
    same organization.
    Should we be fixing them this way, or fixing the modules so that they
    build as shared libraries?

    --Josh Berkus

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedJan 24, '10 at 1:29a
activeJan 25, '10 at 6:53p
posts3
users3
websitepostgresql.org...
irc#postgresql

People

Translate

site design / logo © 2022 Grokbase