[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 2/3] tests/docker: better handle symlinked libs

From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v1 2/3] tests/docker: better handle symlinked libs
Date: Wed, 22 Jan 2020 23:15:17 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

On 1/22/20 4:58 PM, Alex Bennée wrote:

Philippe Mathieu-Daudé <address@hidden> writes:

On 1/22/20 2:24 PM, Wainer dos Santos Moschetta wrote:
On 1/22/20 8:22 AM, Alex Bennée wrote:
When we are copying we want to ensure we grab the first
resolution (the found in path section). However even that binary might
be a symlink so lets make sure we chase the symlinks to copy the right
binary to where it can be found.

Signed-off-by: Alex Bennée <address@hidden>
   tests/docker/docker.py | 3 ++-
   1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 31d8adf836..96d4326d53 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -109,7 +109,7 @@ def _get_so_libs(executable):
       ensure theright data is copied."""
       libs = []
-    ldd_re = re.compile(r"(/.*/)(\S*)")
+    ldd_re = re.compile(r"=> ?(/.*/)(\S*)")

Why the 'optional space' after "=>"?

Actually what I want is an optional "=> "

Maybe r"(?:\S+ => )?(\S*) \(:?0x[0-9a-f]+\)"?

optional non-capturing upto "=> ",
capture until space,
non-capture address in parenthesis.

           ldd_output = subprocess.check_output(["ldd",
           for line in ldd_output.split("\n"):
@@ -145,6 +145,7 @@ def _copy_binary_with_libs(src, bin_dest, dest_dir):
       if libs:
           for l in libs:
               so_path = os.path.dirname(l)
+            real_l = os.path.realpath(l)
real_l is not used.

I suppose the idea is to use it as:

                 _copy_with_mkdir(real_l, dest_dir, so_path)

Yes - looks like I need to retest.

- Wainer

               _copy_with_mkdir(l, dest_dir, so_path)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]