[RFC] Prevent tailcall optimizations of libdl functions

Florian Weimer fweimer@redhat.com
Thu Jan 26 12:43:00 GMT 2017


On 01/26/2017 01:35 PM, Szabolcs Nagy wrote:
> On 26/01/17 12:15, Florian Weimer wrote:
>> Maybe we should just change the definition of RTLD_DEFAULT and RTLD_NEXT, to something like this:
>>
>> #define RTLD_DEFAULT ((void *) ((unsigned long) &__dso_handle | 1)))
>> #define RTLD_NEXT ((void *) ((unsigned long) &__dso_handle | 3)))
>
> i think these should be constants that can be
> copied and passed around between modules.

Why?  The effect of these identifies is very much module-specific, and 
the definition would make this explicit.

What do other libcs do here?  Bionic and FreeBSD use magic constants 
just like current glibc.

Thanks,
Florian



More information about the Libc-alpha mailing list