[prev in list] [next in list] [prev in thread] [next in thread]
List: glibc-alpha
Subject: Re: [RFC] Prevent tailcall optimizations of libdl functions
From: Florian Weimer <fweimer () redhat ! com>
Date: 2017-01-26 13:34:10
Message-ID: c2f11565-e398-46ef-88ed-fe5e8f75b76e () redhat ! com
[Download RAW message or body]
On 01/26/2017 02:09 PM, Szabolcs Nagy wrote:
> On 26/01/17 12:43, Florian Weimer wrote:
> > 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.
>
> because ppl do wrappers like
> http://git.haskell.org/packages/unix.git/blob/HEAD:/cbits/HsUnix.c#l12
> which sit in one module and may get called from another one.
But the same thing would happen with dlsym: The caller would be
identified as the wrapper, not the actual module calling dlsym.
Thanks,
Florian
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic