From: Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org>
To: Vivek Das Mohapatra <vivek@collabora.com>, libc-alpha@sourceware.org
Subject: Re: [RFC][PATCH v12 0/8] Implementation of RTLD_SHARED for dlmopen
Date: Mon, 9 Aug 2021 17:34:57 -0300 [thread overview]
Message-ID: <eae770d9-ce49-6738-fc9c-f6a0f4fde76d@linaro.org> (raw)
In-Reply-To: <20210708163255.812-1-vivek@collabora.com>
On 08/07/2021 13:32, Vivek Das Mohapatra via Libc-alpha wrote:
> This is a revision of a previous patchset that I posted here
> regarding https://sourceware.org/bugzilla/show_bug.cgi?id=22745
>
> Introduction:
>
> =======================================================================
> As discussed in the URL above dlmopen requires a mechanism for
> [optionally] sharing some objects between more than one namespace.
>
> The following patchset provides an implementation for this: If an
> object is loaded with the new RTLD_SHARED flag we instead ensure
> that a "master" copy exists (and is flagged as no-delete) in the
> main namespace and a thin wrapper or clone is placed in the target
> namespace.
>
> This patch series should address all the comments received on the
> earlier (v1-v10) series.
>
> =======================================================================
>
> Changes from v11:
>
> - If a DSO is required in a non-base namespace because it is mentioned
> in a DT_NEEDED entry and it is itself flagged DF_GNU_1_UNIQUE then
> a proxy is generated for it.
>
> - Relocations via non-base namespace proxies work reliably (some code
> paths did not do the address calculation relative to the DSO base
> correctly when a proxy was involved).
>
> - Tests extended cover the above two scenarios.
>
> Changes from v10:
>
> - A segfault in a dlmopen error pathway (which does not seem to have existed
> when v10 was applied to the then-HEAD commit) has been fixed.
>
> - The fallback mechanism for adding DT_GNU_FLAGS_1 sections to the required
> binaries has had some infrastructure moved to the elf/ directory
>
> - The runstatedir setting introduced by recent autoconf has been omitted from
> the patchset as it is not relevant to this feature.
>
> - libpthread no longer tagged DT_GNU_FLAGS_1/DF_GNU_1_UNIQUE.
> (with both -z unique supporting linkers and if the .os hack is
> used to add the new flag - this was inconsistent before).
>
> Not changed:
>
> - There is still some diagnostic info in the config.log when the linker
> layout is acceptable but -z unique is not yet supported. I believe this
> _is_ useful diagnostic information as a developer might otherwise wonder
> why the vanilla linker was being rejected when its layout output seemed
> fine.
>
> I have not yet implemented, but plan to address once this series is
> accepted/acceptable:
>
> - dl_iterate_ns_phdr (cf dl_iterate_phdr but taking a namespace argument)
>
> - Check RTLD_GLOBAL interacts properly and unsurprisingly with RTLD_SHARED.
Hi Vivek,
This patchset looks much better than before, I have added my comments on the
set. There are some spots that need rework, like some patches that should be
merged, some style fixes, and testcase; but in general I think we can move
forward.
I have fixed all my remarks on a personal branch [1] and checked on both
x86_64-linux-gnu and i686-linux-gnu with binutils with and without DT_GNU_FLAGS_1
support. If you are ok with my changes, please report the patches without the RFC
so I can ack them and I will push them upstream.
Thanks for working on this.
[1] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/rtld-shared
prev parent reply other threads:[~2021-08-09 20:37 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-08 16:32 [RFC][PATCH v12 0/8] Implementation of RTLD_SHARED for dlmopen Vivek Das Mohapatra via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 1/8] Define a new dynamic section tag - DT_GNU_FLAGS_1 (bug 22745) Vivek Das Mohapatra via Libc-alpha
2021-08-09 12:27 ` Adhemerval Zanella via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 2/8] Abstract loaded-DSO search code into a helper function Vivek Das Mohapatra via Libc-alpha
2021-08-09 13:04 ` Adhemerval Zanella via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 3/8] Use the new DSO finder " Vivek Das Mohapatra via Libc-alpha
2021-08-09 12:59 ` Adhemerval Zanella via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 4/8] Add DT_GNU_FLAGS_1/DF_GNU_1_UNIQUE to glibc DSOs (bug 22745) Vivek Das Mohapatra via Libc-alpha
2021-08-09 16:48 ` Adhemerval Zanella via Libc-alpha
2021-08-10 13:21 ` Adhemerval Zanella via Libc-alpha
2021-08-10 13:32 ` H.J. Lu via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 5/8] Implement dlmopen RTLD_SHARED flag " Vivek Das Mohapatra via Libc-alpha
2021-08-09 19:07 ` Adhemerval Zanella via Libc-alpha
2021-08-09 20:24 ` Adhemerval Zanella via Libc-alpha
2021-08-09 20:30 ` Adhemerval Zanella via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 6/8] Add dlmopen / RTLD_SHARED tests Vivek Das Mohapatra via Libc-alpha
2021-08-09 20:09 ` Adhemerval Zanella via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 7/8] Restore separate libc loading for the TLS/namespace storage test Vivek Das Mohapatra via Libc-alpha
2021-08-09 19:08 ` Adhemerval Zanella via Libc-alpha
2021-07-08 16:32 ` [RFC][PATCH v12 8/8] Drop DT_GNU_FLAGS_1/DF_GNU_1_UNIQUE from the libpthread DSO Vivek Das Mohapatra via Libc-alpha
2021-08-09 20:10 ` Adhemerval Zanella via Libc-alpha
2021-08-09 21:24 ` Florian Weimer via Libc-alpha
2021-07-13 13:08 ` [External] : [RFC][PATCH v12 0/8] Implementation of RTLD_SHARED for dlmopen Alfonso Alfonso Peterssen via Libc-alpha
2021-08-09 20:34 ` Adhemerval Zanella via Libc-alpha [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=eae770d9-ce49-6738-fc9c-f6a0f4fde76d@linaro.org \
--to=libc-alpha@sourceware.org \
--cc=adhemerval.zanella@linaro.org \
--cc=vivek@collabora.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).