[Mesa-dev] [PATCH] src: replace RTLD_NOW with RTLD_LAZY

0xe2.0x9a.0x9b at gmail.com
Sat Aug 6 15:34:29 UTC 2016


On Sat, Aug 6, 2016 at 4:32 PM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> On Sat, 2016-08-06 at 13:00 +0200, ⚛ wrote:
>> We could add a verifier to the build process that tests the
>> foo_dri.so
>> libraries (as well as all other libs subject to dlopen by Mesa) for
>> undefined symbols:
>>
>> $ LD_PRELOAD=libGL.so ldd -d -r radeonsi_dri.so \
>>     | grep "^undefined" && echo "red alert!"
>>
>> This will ensure that Mesa does not break apps after replacing all
>> RTLD_NOWs with RTLD_LAZY.
>>
>> I am going to start writing a new patch verifying relevant *.so files
>> at buildtime.
>
> This won't help at all. the linking process already includes no-
> undefined flag, so the build will fail at linking stage if symbols
> can't be resolved.

You are wrong about --no-undefined being used for *_dri.so. Grep your
Mesa build log for "-o .libs/gallium_dri.so" and then send an email
with your opinion please.

> RTLD_NOW detects bugs in deployment. IMO it's preferable if DE fails to
> start instead of crashing hours into work. sure I can set LD_BIND_NOW
> env var, but there are programs that have much stronger case for using
> lazy binding (like LO) that would be negatively affected.
>
> shaving 6M instructions does not seem like strong enough benefit to
> justify this.


More information about the mesa-dev mailing list