[RFC,v7,20/20] Restore separate libc loading for the TLS/namespace storage test

Message ID 20201216132650.22949-21-vivek@collabora.com
State Superseded
Headers
Series Implementation of RTLD_SHARED for dlmopen |

Commit Message

Vivek Dasmohapatra Dec. 16, 2020, 1:26 p.m. UTC
  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

Vivek Dasmohapatra Jan. 7, 2021, 5 p.m. UTC | #1
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?
  
Adhemerval Zanella Jan. 7, 2021, 7:55 p.m. UTC | #2
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.
  
Vivek Dasmohapatra Jan. 8, 2021, 12:33 a.m. UTC | #3
> 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.
  

Patch

diff --git a/elf/tst-tls-ie-dlmopen.c b/elf/tst-tls-ie-dlmopen.c
index c7b5c688e3..8ba24ce54d 100644
--- a/elf/tst-tls-ie-dlmopen.c
+++ b/elf/tst-tls-ie-dlmopen.c
@@ -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");