This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Adjust name-prefix of in test-container.c.

On 09/04/2018 06:37 PM, DJ Delorie wrote:

Stefan Liebler <> writes:
+  if (strncmp (argv[1], support_objdir_elf_ldso,
+	       strlen (support_objdir_elf_ldso)) == 0)

If we're comparing the whole name now, this could be a strcmp() instead?

Yes, of course. You are right.
I've updated the patch.

commit 79f7c31ef02a13eb6ede1393770d29cb36914754
Author: Stefan Liebler <>
Date:   Wed Sep 5 09:23:13 2018 +0200

    Adjust name of in test-container.c.
    The test-container.c file assumes that is always named
    something like /elf/ld-linux-*.
    But e.g. on s390x it is named or on s390.
    There are other architectures like power or mips with similar names.
    This patch introduces the new global variable support_objdir_elf_ldso
    which contains the absolute path to the runtime linker used by the
    testsuite, e.g. OBJDIR_PATH/elf/
    The check in test-container.c is now comparing against this path.
    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!
            * support/support.h (support_objdir_elf_ldso): New variable.
            * support/support_paths.c (support_objdir_elf_ldso): Likewise.
            * support/Makefile (CFLAGS-support_paths.c): Add definition
            for OBJDIR_ELF_LDSO_PATH.
            * support/test-container.c (main): Search for the
            which is also used by the testsuite.

diff --git a/support/Makefile b/support/Makefile
index 545bfa2727..8b4a7bf8c5 100644
--- a/support/Makefile
+++ b/support/Makefile
@@ -160,6 +160,7 @@ endif
 CFLAGS-support_paths.c = \
 		-DSRCDIR_PATH=\"`cd .. ; pwd`\" \
 		-DOBJDIR_PATH=\"`cd $(objpfx)/..; pwd`\" \
+		-DOBJDIR_ELF_LDSO_PATH=\"`cd $(objpfx)/..; pwd`/elf/$(rtld-installed-name)\" \
 		-DINSTDIR_PATH=\"$(prefix)\" \
diff --git a/support/support.h b/support/support.h
index d0e15bca1d..9418cd11ef 100644
--- a/support/support.h
+++ b/support/support.h
@@ -91,6 +91,10 @@ char *xstrndup (const char *, size_t);
 extern const char support_srcdir_root[];
 extern const char support_objdir_root[];
+/* Corresponds to the path to the runtime linker used by the testsuite,
+   e.g. OBJDIR_PATH/elf/  */
+extern const char support_objdir_elf_ldso[];
 /* Corresponds to the --prefix= passed to configure.  */
 extern const char support_install_prefix[];
 /* Corresponds to the install's lib/ or lib64/ directory.  */
diff --git a/support/support_paths.c b/support/support_paths.c
index a1c22315bd..6d0beb102c 100644
--- a/support/support_paths.c
+++ b/support/support_paths.c
@@ -36,6 +36,14 @@ const char support_objdir_root[] = OBJDIR_PATH;
 # error please -DOBJDIR_PATH=something in the Makefile
+/* Corresponds to the path to the runtime linker used by the testsuite,
+   e.g. OBJDIR_PATH/elf/  */
+const char support_objdir_elf_ldso[] = OBJDIR_ELF_LDSO_PATH;
+# error please -DOBJDIR_ELF_LDSO_PATH=something in the Makefile
 /* Corresponds to the --prefix= passed to configure.  */
 const char support_install_prefix[] = INSTDIR_PATH;
diff --git a/support/test-container.c b/support/test-container.c
index c56b53ed81..fbdfb4a06a 100644
--- a/support/test-container.c
+++ b/support/test-container.c
@@ -674,8 +674,7 @@ main (int argc, char **argv)
-  if (strncmp (argv[1], concat (support_objdir_root, "/elf/ld-linux-", NULL),
-	       strlen (support_objdir_root) + 14) == 0)
+  if (strcmp (argv[1], support_objdir_elf_ldso) == 0)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]