From: Stas Sergeev <stsp2@yandex.ru>
To: libc-alpha@sourceware.org
Cc: Stas Sergeev <stsp2@yandex.ru>
Subject: [PATCH 05/14] split do_reloc_2() out of do_open_worker()
Date: Thu, 18 May 2023 13:28:45 +0500 [thread overview]
Message-ID: <20230518082854.3903342-6-stsp2@yandex.ru> (raw)
In-Reply-To: <20230518082854.3903342-1-stsp2@yandex.ru>
This is mostly a mechanical split with no functional changes intended.
The test-suite was run on x86_64/64 and showed no regressions.
Signed-off-by: Stas Sergeev <stsp2@yandex.ru>
---
elf/dl-open.c | 40 +++++++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/elf/dl-open.c b/elf/dl-open.c
index a77a6143e2..687a393e0d 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -644,6 +644,28 @@ do_reloc_1 (struct link_map *new, int mode, Lmid_t nsid, bool call_ctors)
}
}
+static void
+do_reloc_2 (struct link_map *new, int mode, struct dl_open_args *args)
+{
+ /* Run the initializer functions of new objects. Temporarily
+ disable the exception handler, so that lazy binding failures are
+ fatal. */
+ {
+ struct dl_init_args init_args =
+ {
+ .new = new,
+ .argc = args->argc,
+ .argv = args->argv,
+ .env = args->env
+ };
+ _dl_catch_exception (NULL, call_dl_init, &init_args);
+ }
+
+ /* Now we can make the new map available in the global scope. */
+ if (mode & RTLD_GLOBAL)
+ add_to_global_update (new);
+}
+
static void
dl_open_worker_begin (void *a)
{
@@ -801,23 +823,7 @@ dl_open_worker (void *a)
int mode = args->mode;
struct link_map *new = args->map;
- /* Run the initializer functions of new objects. Temporarily
- disable the exception handler, so that lazy binding failures are
- fatal. */
- {
- struct dl_init_args init_args =
- {
- .new = new,
- .argc = args->argc,
- .argv = args->argv,
- .env = args->env
- };
- _dl_catch_exception (NULL, call_dl_init, &init_args);
- }
-
- /* Now we can make the new map available in the global scope. */
- if (mode & RTLD_GLOBAL)
- add_to_global_update (new);
+ do_reloc_2 (new, mode, args);
/* Let the user know about the opencount. */
if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES))
--
2.39.2
next prev parent reply other threads:[~2023-05-18 8:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-18 8:28 [PATCH 00/14] implement RTLD_NORELOCATE api [BZ #30007] Stas Sergeev
2023-05-18 8:28 ` [PATCH 01/14] elf: switch _dl_map_segment() to anonymous mapping Stas Sergeev
2023-05-18 8:28 ` [PATCH 02/14] use initial mmap also for ET_EXEC Stas Sergeev
2023-05-18 8:28 ` [PATCH 03/14] rework maphole Stas Sergeev
2023-05-18 8:28 ` [PATCH 04/14] split do_reloc_1() from dl_open_worker_begin() Stas Sergeev
2023-05-18 8:28 ` Stas Sergeev [this message]
2023-05-18 8:28 ` [PATCH 06/14] move relocation into _dl_object_reloc() func Stas Sergeev
2023-05-18 8:28 ` [PATCH 07/14] split out _dl_finalize_segments() Stas Sergeev
2023-05-18 8:28 ` [PATCH 08/14] finalize elf segments on a relocation step Stas Sergeev
2023-05-18 8:28 ` [PATCH 09/14] implement RTLD_NORELOCATE dlopen() flag Stas Sergeev
2023-05-18 8:28 ` [PATCH 10/14] add test-case for RTLD_NORELOCATE Stas Sergeev
2023-05-18 8:28 ` [PATCH 11/14] implement dlrelocate() function Stas Sergeev
2023-05-18 8:28 ` [PATCH 12/14] implement RTLD_DI_MAPINFO dlinfo() request Stas Sergeev
2023-05-18 8:28 ` [PATCH 13/14] implement dlset_object_base() function Stas Sergeev
2023-05-18 8:28 ` [PATCH 14/14] implement RTLD_DI_DEPLIST dlinfo() request Stas Sergeev
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230518082854.3903342-6-stsp2@yandex.ru \
--to=stsp2@yandex.ru \
--cc=libc-alpha@sourceware.org \
/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).