This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Add RTLD_RELOAD to dlopen
Carlos O'Donell, on jeu. 20 juil. 2017 15:31:38 -0400, wrote:
> On 07/20/2017 03:15 PM, Samuel Thibault wrote:
> > In our parallel programming projects, we would like to load some DSO
> > several times within the same process, because we want to share the
> > addresse space for passing data pointers between parallel executions,
> > and the DSO has global variables and such which we want to see
> > duplicated.
> >
> > Unfortunately, dlopen() does not re-load the DSO when it is already
> > loaded. One workaround is to cp the file under another name, but that's
> > ugly and does not share the memory pages.
> >
> > The patch proposed here simply adds an RTLD_RELOAD flag which disables
> > checking for the DSO being already loaded, thus always loading the DSO
> > again. There is no actual code modification, only the addition of two
> > if()s and reindent.
>
> This is what Solaris designed dlmopen() for, is there any reason you
> can't use dlmopen()?
Because only that DSO should be reloaded. All the dependencies are fine
to use as such, to avoid memory usage duplication.
Samuel