Adjust name-prefix of ld.so in test-container.c.

Message ID 0a6087d9-08a2-d157-163f-25697e9e35e2@linux.ibm.com
State Superseded
Headers

Commit Message

Stefan Liebler Sept. 3, 2018, 8:39 a.m. UTC
  Hi,

the test-container.c file assumes that ld.so is always named something 
like /elf/ld-linux-*. But e.g. on s390x it is named ld64.so.1 or ld.so.1 
on s390. There are other architectures like power or mips with similar 
names.

This patch just changes the assumption to /elf/ld*. Without this patch, 
test-container.c is searching invalid files / directories and fails to 
find glibc/nss/tst-nss-test3.root/tst-nss-test3.script. Then the test 
tst-nss-test3 fails!

Bye
Stefan

ChangeLog:

	* support/test-container.c (main): Just search for /elf/ld
	as ld.so in not names ld-linux* on all architectures.
  

Comments

Florian Weimer Sept. 3, 2018, 10:48 a.m. UTC | #1
On 09/03/2018 10:39 AM, Stefan Liebler wrote:
> the test-container.c file assumes that ld.so is always named something 
> like /elf/ld-linux-*. But e.g. on s390x it is named ld64.so.1 or ld.so.1 
> on s390. There are other architectures like power or mips with similar 
> names.

Perhaps we should capture $(ld.so-version) in support/, like we do for 
$(objpfx), $(prefix), $(libdir) etc.?

Thanks,
Florian
  

Patch

commit 875af26b6e3a1ffd8bccc35e4a596853232bfb3c
Author: Stefan Liebler <stli@linux.ibm.com>
Date:   Fri Aug 31 14:44:23 2018 +0200

    Adjust name-prefix of ld.so in test-container.c.
    
    The test-container.c file assumes that ld.so is always named
    something like /elf/ld-linux-*.
    But e.g. on s390x it is named ld64.so.1 or ld.so.1 on s390.
    There are other architectures like power or mips with similar names.
    
    This patch just changes the assumption to /elf/ld*.
    Without this patch, test-container.c is searching invalid files / directories
    and fails to find glibc/nss/tst-nss-test3.root/tst-nss-test3.script.
    Then the test tst-nss-test3 fails!
    
    ChangeLog:
    
            * support/test-container.c (main): Just search for /elf/ld
            as ld.so in not names ld-linux* on all architectures.

diff --git a/support/test-container.c b/support/test-container.c
index 2e91bdf9ec..8f7c3b076b 100644
--- a/support/test-container.c
+++ b/support/test-container.c
@@ -675,8 +675,8 @@  main (int argc, char **argv)
 	}
     }
 
-  if (strncmp (argv[1], concat (support_objdir_root, "/elf/ld-linux-", NULL),
-	       strlen (support_objdir_root) + 14) == 0)
+  if (strncmp (argv[1], concat (support_objdir_root, "/elf/ld", NULL),
+	       strlen (support_objdir_root) + 7) == 0)
     {
       ++argv;
       --argc;