Обсуждение: Extension rpath issues on MacOS

Поиск
Список
Период
Сортировка

Extension rpath issues on MacOS

От
Christophe Pettus
Дата:
I'm attempting to build the pgspider JDBC foreign data wrapper on MacOS, and not having an enormously successful time.
Thedriver source is at: 

    https://github.com/pgspider/jdbc_fdw

It (unsurprisingly) needs to link with libjvm.dylib, so I've included the path to it in the PostgreSQL ./configure
LDFLAGS. (It's being built outside of contrib/ using PGXS.)  It compiles and installs successfully, but can't find
libjvmat runtime: 

j=# create extension jdbc_fdw;
ERROR:  could not load library "/usr/local/pgsql/lib/jdbc_fdw.so": dlopen(/usr/local/pgsql/lib/jdbc_fdw.so, 10):
Librarynot loaded: @rpath/libjvm.dylib 
  Referenced from: /usr/local/pgsql/lib/jdbc_fdw.so
  Reason: image not found

That's not a big surprise, because the .so uses @rpath in its path to libjvm:

$ otool -L /usr/local/pgsql/lib/jdbc_fdw.so
/usr/local/pgsql/lib/jdbc_fdw.so:
    /usr/local/pgsql/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.14.0)
    @rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

I could patch it with `install_name_tool`, but I'd like to keep the Makefile intact and non-MacOS-specific.  Ideally,
I'dlike it use an absolute path there. 

Has anyone encountered this situation (not libjvm in particular, just an external library using @rpath) during an
extensionbuild? 


Re: Extension rpath issues on MacOS

От
Tom Lane
Дата:
Christophe Pettus <xof@thebuild.com> writes:
> Has anyone encountered this situation (not libjvm in particular, just an external library using @rpath) during an
extensionbuild? 

Yeah ... IIRC, I've hit that from trying to use the Apple-supplied
libpython to underlie PL/Python.  I've not found a workaround.  I suspect
that Apple doesn't want people using these OS components from "outside",
and this is something they're intentionally doing to prevent it.

IOW: I think they want you to get that from macports or homebrew instead.
It certainly works a lot easier if you do.

            regards, tom lane



Re: Extension rpath issues on MacOS

От
Christophe Pettus
Дата:

> On Sep 16, 2022, at 14:20, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> IOW: I think they want you to get that from macports or homebrew instead.
> It certainly works a lot easier if you do.

Yeah, I installed openjdk8 using MacPorts, but it puts its stuff in a rather idiosyncratic location.  I guess it's
"create-a-symlink"time.  Thank you!