Re: RTLD_GLOBAL (& JIT inlining)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
Cc: ants(dot)aasma(at)eesti(dot)ee, andres(at)anarazel(dot)de, pgsql-hackers(at)postgresql(dot)org, peter_e(at)gmx(dot)net
Subject: Re: RTLD_GLOBAL (& JIT inlining)
Date: 2019-01-24 06:02:14
Message-ID: 24744.1548309734@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers

Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> writes:
> With the attached patch, external modules are loaded RTLD_LOCAL
> by default. PG_MODULE_EXPORT_SYMBOL in a module source files let
> it loaded RTLD_GLOBAL. I suppose this is the change with the
> least impact on existing modules because I believe most of them
> don't need to export symbols.

This seems really hacky :-(

In the PL cases, at least, it's not so much the PL itself that
wants to export symbols as the underlying language library
(libpython, libperl, etc). You're assuming that an action on
the PL .so will propagate to the underlying language .so, which
seems like a pretty shaky assumption. I wonder also whether
closing and reopening the DL handle will really do anything
at all for already-loaded libraries ...

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Imai, Yoshikazu 2019-01-24 06:09:49 RE: speeding up planning with partitions
Previous Message Kyotaro HORIGUCHI 2019-01-24 05:37:40 Re: RTLD_GLOBAL (& JIT inlining)