On Tue, 2011-03-15 at 16:16 +0000, Ian Campbell wrote:
> This series arranges for all libraries and binaries to only link
> against those shared libraries which they use directly, relying on the
> dynamic linker to do the right thing for indirect dependencies.
>
> In order to do this I've pushed the tools/blktap2 UUID abstraction
> down into libvhd and out of line to encapsulate all knowledge
> regarding this abstraction into libvhd rather than expecting the users
> of the library to do the right thing.
>
> Having done this supporting --as-needed becomes a pretty trivial case
> of ensuring links lines have the libraries in the correct order.
>
> Tested by:
> * running xl, start/stop a guest
> * running xend, start/stop a guest
> * manually importing each python extension and calling
> whatever initialisation function I could find.
Also, the output of:
find tools/ -perm +111 -type f | while read i ; do
file $i | grep -q ELF || continue
echo $i
objdump -p $i | grep NEEDED
echo
done
before and after is attached. The diff is below.
Ian.
--- BEFORE
+++ AFTER
@@ -35,7 +35,6 @@
tools/console/xenconsole
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenstore.so.3.0
NEEDED libutil.so.1
NEEDED librt.so.1
@@ -43,7 +42,6 @@
tools/console/xenconsoled
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenstore.so.3.0
NEEDED libutil.so.1
NEEDED librt.so.1
@@ -51,12 +49,10 @@
tools/xenmon/xentrace_setmask
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/xenmon/xenbaked
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/remus/imqebt/imqebt
@@ -107,7 +103,6 @@
tools/xenstore/xenstored
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/xenstore/xenstore-control
@@ -115,12 +110,7 @@
NEEDED libc.so.6
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/xl.so
- NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
- NEEDED libxenstore.so.3.0
NEEDED libxenlight.so.1.0
- NEEDED libblktapctl.so.1.0
- NEEDED libuuid.so.1
NEEDED libpthread.so.0
NEEDED libc.so.6
@@ -133,8 +123,6 @@
NEEDED libc.so.6
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/xs.so
- NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libpthread.so.0
NEEDED libc.so.6
@@ -142,36 +130,25 @@
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/xc.so
NEEDED libxenctrl.so.4.0
NEEDED libxenguest.so.4.0
- NEEDED libxenstore.so.3.0
NEEDED libpthread.so.0
NEEDED libc.so.6
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/acm.so
NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
- NEEDED libxenstore.so.3.0
NEEDED libpthread.so.0
NEEDED libc.so.6
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/flask.so
NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
- NEEDED libxenstore.so.3.0
NEEDED libflask.so.1.0
NEEDED libpthread.so.0
NEEDED libc.so.6
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/netlink.so
- NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
- NEEDED libxenstore.so.3.0
NEEDED libpthread.so.0
NEEDED libc.so.6
tools/python/build/lib.linux-i686-2.5/xen/lowlevel/ptsname.so
- NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
- NEEDED libxenstore.so.3.0
NEEDED libpthread.so.0
NEEDED libc.so.6
@@ -179,35 +156,29 @@
tools/xentrace/xenctx
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/xentrace/xentrace
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/xentrace/xentrace_setsize
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/flask/utils/flask-setenforce
NEEDED libflask.so.1.0
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/flask/utils/flask-loadpolicy
NEEDED libflask.so.1.0
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/flask/utils/flask-getenforce
NEEDED libflask.so.1.0
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/flask/libflask/libflask.so.1.0.0
@@ -261,28 +232,24 @@
tools/xcutils/lsevtchn
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/xcutils/xc_save
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/xcutils/readnotes
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/xcutils/xc_restore
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
@@ -290,8 +257,12 @@
tools/libxl/xl
NEEDED libxlutil.so.1.0
NEEDED libxenlight.so.1.0
+ NEEDED libc.so.6
+ NEEDED libxenctrl.so.4.0
+ NEEDED libuuid.so.1
+
+tools/libxl/libxenlight.so.1.0.0
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libblktapctl.so.1.0
@@ -299,20 +270,15 @@
NEEDED libuuid.so.1
NEEDED libc.so.6
-tools/libxl/libxenlight.so.1.0.0
- NEEDED libc.so.6
-
tools/libxl/libxlutil.so.1.0.0
NEEDED libc.so.6
tools/blktap2/vhd/vhd-update
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libc.so.6
tools/blktap2/vhd/vhd-util
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libc.so.6
tools/blktap2/vhd/lib/libvhd.so.1.0.0
@@ -330,9 +296,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -341,9 +305,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -352,16 +314,13 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libc.so.6
tools/blktap2/drivers/qcow2raw
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -370,9 +329,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -381,9 +338,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -392,9 +347,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -403,9 +356,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -414,9 +365,7 @@
NEEDED librt.so.1
NEEDED libz.so.1
NEEDED libvhd.so.1.0
- NEEDED libuuid.so.1
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libc.so.6
@@ -450,13 +399,6 @@
tools/ocaml/libs/log/dllsyslog_stubs.so
NEEDED libc.so.6
-tools/ocaml/xenstored/oxenstored
- NEEDED libxenctrl.so.4.0
- NEEDED libxenguest.so.4.0
- NEEDED libm.so.6
- NEEDED libdl.so.2
- NEEDED libc.so.6
-
tools/xenstat/xentop/xentop
NEEDED libxenstore.so.3.0
NEEDED libxenctrl.so.4.0
@@ -483,7 +425,6 @@
tools/misc/xenlockprof
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
@@ -493,28 +434,24 @@
tools/misc/xenpm
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/misc/gtracestat
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/misc/xenwatchdogd
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/misc/xen-hvmcrash
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
@@ -524,21 +461,18 @@
tools/misc/xen-hvmctx
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/misc/xenperf
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
tools/misc/xen-hptool
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenguest.so.4.0
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
@@ -549,7 +483,6 @@
tools/xenpaging/xenpaging
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenstore.so.3.0
NEEDED libc.so.6
@@ -558,7 +491,6 @@
tools/debugger/kdd/kdd
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libc.so.6
tools/debugger/gdbsx/gdbsx
@@ -578,7 +510,6 @@
tools/blktap/drivers/blktapctrl
NEEDED libxenctrl.so.4.0
- NEEDED libdl.so.2
NEEDED libxenstore.so.3.0
NEEDED libblktap.so.3.0
NEEDED librt.so.1
BEFORE
Description: Text document
AFTER
Description: Text document
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|