[RFC,v7,20/20] Restore separate libc loading for the TLS/namespace storage test
Commit Message
tst-tls-ie-dlmopen checks to see that new namespaces consume
TLS memory as expected: This does not happen when new namespaces
share the same libc instance (since TLS is allocated only when
a new libc instance insitialises its threading infrastructure).
Adding RTLD_ISOLATE to the dlmopen flags in the test restores
the old behaviour which allows the test to check what it
actually needs to.
---
elf/tst-tls-ie-dlmopen.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
Hi - checking in again - I guess this isn't being considered for this release?
Is the intention that it go into the release after the binutils changes have
made it into the wild, or is there something else I need to address first
as well?
On 07/01/2021 14:00, Vivek Das Mohapatra via Libc-alpha wrote:
> Hi - checking in again - I guess this isn't being considered for this release?
>
> Is the intention that it go into the release after the binutils changes have made it into the wild, or is there something else I need to address first
> as well?
>
Hi Vivek,
Unfortunately I think it late for 2.33 release, but have raise this patchset
on the last Monday call. My plan is to take a look on the 2.34, so we can
get this early on development cycle.
> Hi Vivek,
>
> Unfortunately I think it late for 2.33 release, but have raise this patchset
> on the last Monday call. My plan is to take a look on the 2.34, so we can
> get this early on development cycle.
Not a problem. Probably easier for people to test/etc once the binutils
feature has been released anyway. I'll rebase, retest and resend as soon
as 2.33 has been tagged.
@@ -53,7 +53,7 @@ static void *
load_and_access (Lmid_t lmid, const char *mod, const char *func)
{
/* Load module with TLS. */
- void *p = xdlmopen (lmid, mod, RTLD_NOW);
+ void *p = xdlmopen (lmid, mod, RTLD_NOW|RTLD_ISOLATE);
/* Access the TLS variable to ensure it is allocated. */
void (*f) (void) = (void (*) (void))xdlsym (p, func);
f ();
@@ -95,7 +95,7 @@ do_test (void)
than 1024 bytes are available (exact number depends on TLS optimizations
and the libc TLS use). */
printf ("The next dlmopen should fail...\n");
- void *p = dlmopen (LM_ID_BASE, "tst-tls-ie-mod4.so", RTLD_NOW);
+ void *p = dlmopen (LM_ID_BASE, "tst-tls-ie-mod4.so", RTLD_NOW|RTLD_ISOLATE);
if (p != NULL)
FAIL_EXIT1 ("error: expected dlmopen to fail because there is "
"not enough surplus static TLS.\n");