Blob Blame History Raw
commit da2b83ef6ba6f4c974664f69e715cc85b9173938
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 13 13:13:46 2019 -0300

    elf: Fix tst-pldd for non-default --prefix and/or --bindir (BZ#24544)
    
    Use a new libsupport support_bindir_prefix instead of a hardcoded
    /usr/bin to create the pldd path on container directory.
    
    Checked on x86_64-linux-gnu with default and non-default --prefix and
    --bindir paths, as well with --enable-hardcoded-path-in-tests.
    
            [BZ #24544]
            * elf/tst-pldd.c (do_test): Use support_bindir_prefix instead of
            pre-defined value.
    
    Reviewed-by: DJ Delorie <dj@redhat.com>

diff --git a/elf/tst-pldd.c b/elf/tst-pldd.c
index 40abee9efb9e7484..e2de31282a131166 100644
--- a/elf/tst-pldd.c
+++ b/elf/tst-pldd.c
@@ -18,6 +18,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <stdint.h>
 #include <stdbool.h>
@@ -28,6 +29,7 @@
 #include <support/subprocess.h>
 #include <support/capture_subprocess.h>
 #include <support/check.h>
+#include <support/support.h>
 
 static void
 target_process (void *arg)
@@ -60,12 +62,14 @@ do_test (void)
     char pid[3 * sizeof (uint32_t) + 1];
     snprintf (pid, array_length (pid), "%d", target.pid);
 
-    const char prog[] = "/usr/bin/pldd";
+    char *prog = xasprintf ("%s/pldd", support_bindir_prefix);
 
     pldd = support_capture_subprogram (prog,
       (char *const []) { (char *) prog, pid, NULL });
 
     support_capture_subprocess_check (&pldd, "pldd", 0, sc_allow_stdout);
+
+    free (prog);
   }
 
   /* Check 'pldd' output.  The test is expected to be linked against only