diff mbox series

tools/python: pass more -rpath-link options to ld

Message ID d10bb94f-c572-6977-40a4-57a61da4094b@suse.com (mailing list archive)
State Superseded
Headers show
Series tools/python: pass more -rpath-link options to ld | expand

Commit Message

Jan Beulich Oct. 19, 2020, 8:31 a.m. UTC
With the split of libraries, I've observed a number of warnings from
(old?) ld.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
It's unclear to me whether this is ld version dependent - the pattern
of where I've seen such warnings doesn't suggest a clear version
dependency.

Comments

Jan Beulich Oct. 29, 2020, 1:48 p.m. UTC | #1
On 19.10.2020 10:31, Jan Beulich wrote:
> With the split of libraries, I've observed a number of warnings from
> (old?) ld.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Marek?

> ---
> It's unclear to me whether this is ld version dependent - the pattern
> of where I've seen such warnings doesn't suggest a clear version
> dependency.
> 
> --- a/tools/python/setup.py
> +++ b/tools/python/setup.py
> @@ -7,10 +7,15 @@ XEN_ROOT = "../.."
>  extra_compile_args  = [ "-fno-strict-aliasing", "-Werror" ]
>  
>  PATH_XEN      = XEN_ROOT + "/tools/include"
> +PATH_LIBXENTOOLCORE = XEN_ROOT + "/tools/libs/toolcore"
>  PATH_LIBXENTOOLLOG = XEN_ROOT + "/tools/libs/toollog"
> +PATH_LIBXENCALL = XEN_ROOT + "/tools/libs/call"
>  PATH_LIBXENEVTCHN = XEN_ROOT + "/tools/libs/evtchn"
> +PATH_LIBXENGNTTAB = XEN_ROOT + "/tools/libs/gnttab"
>  PATH_LIBXENCTRL = XEN_ROOT + "/tools/libs/ctrl"
>  PATH_LIBXENGUEST = XEN_ROOT + "/tools/libs/guest"
> +PATH_LIBXENDEVICEMODEL = XEN_ROOT + "/tools/libs/devicemodel"
> +PATH_LIBXENFOREIGNMEMORY = XEN_ROOT + "/tools/libs/foreignmemory"
>  PATH_XENSTORE = XEN_ROOT + "/tools/libs/store"
>  
>  xc = Extension("xc",
> @@ -24,7 +29,13 @@ xc = Extension("xc",
>                 library_dirs       = [ PATH_LIBXENCTRL, PATH_LIBXENGUEST ],
>                 libraries          = [ "xenctrl", "xenguest" ],
>                 depends            = [ PATH_LIBXENCTRL + "/libxenctrl.so", PATH_LIBXENGUEST + "/libxenguest.so" ],
> -               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENTOOLLOG ],
> +               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENCALL,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENDEVICEMODEL,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENEVTCHN,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENFOREIGNMEMORY,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENGNTTAB,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENTOOLCORE,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENTOOLLOG ],
>                 sources            = [ "xen/lowlevel/xc/xc.c" ])
>  
>  xs = Extension("xs",
> @@ -33,6 +44,7 @@ xs = Extension("xs",
>                 library_dirs       = [ PATH_XENSTORE ],
>                 libraries          = [ "xenstore" ],
>                 depends            = [ PATH_XENSTORE + "/libxenstore.so" ],
> +               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENTOOLCORE ],
>                 sources            = [ "xen/lowlevel/xs/xs.c" ])
>  
>  plat = os.uname()[0]
>
Marek Marczykowski-Górecki Oct. 30, 2020, 3:28 a.m. UTC | #2
On Mon, Oct 19, 2020 at 10:31:37AM +0200, Jan Beulich wrote:
> With the split of libraries, I've observed a number of warnings from
> (old?) ld.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> It's unclear to me whether this is ld version dependent - the pattern
> of where I've seen such warnings doesn't suggest a clear version
> dependency.
> 
> --- a/tools/python/setup.py
> +++ b/tools/python/setup.py
> @@ -7,10 +7,15 @@ XEN_ROOT = "../.."
>  extra_compile_args  = [ "-fno-strict-aliasing", "-Werror" ]
>  
>  PATH_XEN      = XEN_ROOT + "/tools/include"
> +PATH_LIBXENTOOLCORE = XEN_ROOT + "/tools/libs/toolcore"
>  PATH_LIBXENTOOLLOG = XEN_ROOT + "/tools/libs/toollog"
> +PATH_LIBXENCALL = XEN_ROOT + "/tools/libs/call"
>  PATH_LIBXENEVTCHN = XEN_ROOT + "/tools/libs/evtchn"
> +PATH_LIBXENGNTTAB = XEN_ROOT + "/tools/libs/gnttab"
>  PATH_LIBXENCTRL = XEN_ROOT + "/tools/libs/ctrl"
>  PATH_LIBXENGUEST = XEN_ROOT + "/tools/libs/guest"
> +PATH_LIBXENDEVICEMODEL = XEN_ROOT + "/tools/libs/devicemodel"
> +PATH_LIBXENFOREIGNMEMORY = XEN_ROOT + "/tools/libs/foreignmemory"
>  PATH_XENSTORE = XEN_ROOT + "/tools/libs/store"
>  
>  xc = Extension("xc",
> @@ -24,7 +29,13 @@ xc = Extension("xc",
>                 library_dirs       = [ PATH_LIBXENCTRL, PATH_LIBXENGUEST ],
>                 libraries          = [ "xenctrl", "xenguest" ],
>                 depends            = [ PATH_LIBXENCTRL + "/libxenctrl.so", PATH_LIBXENGUEST + "/libxenguest.so" ],
> -               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENTOOLLOG ],
> +               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENCALL,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENDEVICEMODEL,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENEVTCHN,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENFOREIGNMEMORY,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENGNTTAB,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENTOOLCORE,
> +                                      "-Wl,-rpath-link="+PATH_LIBXENTOOLLOG ],

This basically open-codes SHLIB_libxenctrl + SHLIB_libxenguest. Isn't it
better to pass it from make that already has all the dependencies
resolved?

>                 sources            = [ "xen/lowlevel/xc/xc.c" ])
>  
>  xs = Extension("xs",
> @@ -33,6 +44,7 @@ xs = Extension("xs",
>                 library_dirs       = [ PATH_XENSTORE ],
>                 libraries          = [ "xenstore" ],
>                 depends            = [ PATH_XENSTORE + "/libxenstore.so" ],
> +               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENTOOLCORE ],
>                 sources            = [ "xen/lowlevel/xs/xs.c" ])
>  
>  plat = os.uname()[0]
diff mbox series

Patch

--- a/tools/python/setup.py
+++ b/tools/python/setup.py
@@ -7,10 +7,15 @@  XEN_ROOT = "../.."
 extra_compile_args  = [ "-fno-strict-aliasing", "-Werror" ]
 
 PATH_XEN      = XEN_ROOT + "/tools/include"
+PATH_LIBXENTOOLCORE = XEN_ROOT + "/tools/libs/toolcore"
 PATH_LIBXENTOOLLOG = XEN_ROOT + "/tools/libs/toollog"
+PATH_LIBXENCALL = XEN_ROOT + "/tools/libs/call"
 PATH_LIBXENEVTCHN = XEN_ROOT + "/tools/libs/evtchn"
+PATH_LIBXENGNTTAB = XEN_ROOT + "/tools/libs/gnttab"
 PATH_LIBXENCTRL = XEN_ROOT + "/tools/libs/ctrl"
 PATH_LIBXENGUEST = XEN_ROOT + "/tools/libs/guest"
+PATH_LIBXENDEVICEMODEL = XEN_ROOT + "/tools/libs/devicemodel"
+PATH_LIBXENFOREIGNMEMORY = XEN_ROOT + "/tools/libs/foreignmemory"
 PATH_XENSTORE = XEN_ROOT + "/tools/libs/store"
 
 xc = Extension("xc",
@@ -24,7 +29,13 @@  xc = Extension("xc",
                library_dirs       = [ PATH_LIBXENCTRL, PATH_LIBXENGUEST ],
                libraries          = [ "xenctrl", "xenguest" ],
                depends            = [ PATH_LIBXENCTRL + "/libxenctrl.so", PATH_LIBXENGUEST + "/libxenguest.so" ],
-               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENTOOLLOG ],
+               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENCALL,
+                                      "-Wl,-rpath-link="+PATH_LIBXENDEVICEMODEL,
+                                      "-Wl,-rpath-link="+PATH_LIBXENEVTCHN,
+                                      "-Wl,-rpath-link="+PATH_LIBXENFOREIGNMEMORY,
+                                      "-Wl,-rpath-link="+PATH_LIBXENGNTTAB,
+                                      "-Wl,-rpath-link="+PATH_LIBXENTOOLCORE,
+                                      "-Wl,-rpath-link="+PATH_LIBXENTOOLLOG ],
                sources            = [ "xen/lowlevel/xc/xc.c" ])
 
 xs = Extension("xs",
@@ -33,6 +44,7 @@  xs = Extension("xs",
                library_dirs       = [ PATH_XENSTORE ],
                libraries          = [ "xenstore" ],
                depends            = [ PATH_XENSTORE + "/libxenstore.so" ],
+               extra_link_args    = [ "-Wl,-rpath-link="+PATH_LIBXENTOOLCORE ],
                sources            = [ "xen/lowlevel/xs/xs.c" ])
 
 plat = os.uname()[0]