This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][PATCH v1 1/5] bits/dlfcn.h: Declare and describe the dlmopen RTLD_SHARED flag
- From: Carlos O'Donell <carlos at redhat dot com>
- To: Vivek Das Mohapatra <vivek at collabora dot com>, libc-alpha at sourceware dot org
- Cc: Vivek Das Mohapatra <vivek at collabora dot co dot uk>
- Date: Fri, 18 May 2018 14:37:49 -0400
- Subject: Re: [RFC][PATCH v1 1/5] bits/dlfcn.h: Declare and describe the dlmopen RTLD_SHARED flag
- References: <20180516171124.24962-1-vivek@collabora.com> <20180516171124.24962-2-vivek@collabora.com>
On 05/16/2018 01:11 PM, Vivek Das Mohapatra wrote:
> From: Vivek Das Mohapatra <vivek@collabora.co.uk>
>
> This flag will instruct dlmopen to create a shared object present
> in both the main namespace and the selected namespace when set.
> ---
> bits/dlfcn.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/bits/dlfcn.h b/bits/dlfcn.h
> index b0b129b66b..a96270d499 100644
> --- a/bits/dlfcn.h
> +++ b/bits/dlfcn.h
> @@ -32,6 +32,13 @@
> visible as if the object were linked directly into the program. */
> #define RTLD_GLOBAL 0x00100
>
> +/* If the following bit is set in the MODE argument to dlmopen
> + then the target object is loaded into the main namespace (if
> + it is not already there) and a shallow copy (clone) is placed
> + in the target namespace: This allows multiple namespaces to
> + share a single instance of a DSO. */
> +#define RTLD_SHARED 0x00080
This is an RFC, but also note there is a MIPS-specific dlfcn.h which needs
patching also to define RTLD_SHARED. We should probably try to look at how
the constants overlap, and find a common value to start with for everyone.
I agree that we need a constant with which to choose between:
* Old dlmopen behaviour.
* New dlmopen behaviour.
> +
> /* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
> The implementation does this by default and so we can define the
> value to zero. */
>
--
Cheers,
Carlos.