> I hate to sound like a broken record, but I want to re-open that
> discussion about RTLD_LAZY binding that trailed off a week or two
> ago. I have just noticed that the 7.0 and 7.1 versions of
> src/backend/port/dynloader/linux.h have
>
> #define pg_dlopen(f) dlopen(f, 2)
>
> which in 7.2 has been changed to
>
> #define pg_dlopen(f) dlopen((f), RTLD_LAZY | RTLD_GLOBAL)
One thing to really watch out for is that old style extensions,
that only need a few functions from a standard library will load
more efficiently with RTLD_LAZY. (might not even pull in dependent
libs, that are not needed)
Next thing to watch out for is, that RTLD_NOW will probably not load
a shared lib, that was not linked with a "no entry" flag. Arguably a bug
for a shared lib, but a recent report has shown that pg fails to supply
such a flag on all ports.
I am for keeping RTLD_LAZY :-)
Andreas