summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--elf/tst-pldd.c20
2 files changed, 22 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 4473569abc..88b34f800c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-05-02 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * elf/tst-pldd.c (in_str_list): New function.
+ (do_test): Add default names for ld and libc as one option.
+
2019-05-02 Florian Weimer <fweimer@redhat.com>
misc: Add twalk_r function.
diff --git a/elf/tst-pldd.c b/elf/tst-pldd.c
index ed19cedd05..2a9f58936f 100644
--- a/elf/tst-pldd.c
+++ b/elf/tst-pldd.c
@@ -20,7 +20,6 @@
#include <string.h>
#include <unistd.h>
#include <stdint.h>
-#include <libgen.h>
#include <stdbool.h>
#include <array_length.h>
@@ -39,6 +38,15 @@ target_process (void *arg)
/* The test runs in a container because pldd does not support tracing
a binary started by the loader iself (as with testrun.sh). */
+static bool
+in_str_list (const char *libname, const char *const strlist[])
+{
+ for (const char *const *str = strlist; *str != NULL; str++)
+ if (strcmp (libname, *str) == 0)
+ return true;
+ return false;
+}
+
static int
do_test (void)
{
@@ -89,14 +97,20 @@ do_test (void)
if (buffer[strlen(buffer)-1] == '\n')
buffer[strlen(buffer)-1] = '\0';
- if (strcmp (basename (buffer), LD_SO) == 0)
+ const char *libname = basename (buffer);
+
+ /* It checks for default names in case of build configure with
+ --enable-hardcoded-path-in-tests (BZ #24506). */
+ if (in_str_list (libname,
+ (const char *const []) { "ld.so", LD_SO, NULL }))
{
TEST_COMPARE (interpreter_found, false);
interpreter_found = true;
continue;
}
- if (strcmp (basename (buffer), LIBC_SO) == 0)
+ if (in_str_list (libname,
+ (const char *const []) { "libc.so", LIBC_SO, NULL }))
{
TEST_COMPARE (libc_found, false);
libc_found = true;