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

Re: [Xen-devel] [PATCH v3] tools: honour --libdir when it is passed to ./configure



On Sat, 2012-06-23 at 22:12 +0100, Matt Wilson wrote:
> Currently shared libraries are automatically installed into /usr/lib
> or /usr/lib64, depending on the supplied --prefix value and
> $(XEN_TARGET_ARCH). Some systems, like recent Debian and Ubuntu releases,
> do not use /usr/lib64, but instead /usr/lib/x86_64-linux-gnu.
> 
> With this change, packagers can supply the desired location for shared
> libraries on the ./configure command line. Packagers need to note that
> the default behaviour on 64-bit Linux systems will be to install shared
> libraries in /usr/lib, not /usr/lib64, unless a --libdir value is provided
> to ./configure.
> 
> Additionally, the libfsimage plugins are now loaded explicitly from
> $LIBDIR/fs, removing platform-based decision trees in code.
> 
> Signed-off-by: Matt Wilson <msw@xxxxxxxxxx>

I was about to commit this. However It seems that files previously
installed in /usr/lib/xen/boot (e.g. hvmloader) are now being installed
into e.g. /xen/boot/hvmloader -- i.e. we've dropped the /usr/lib
somewhere.

So I'm afraid I've backed this out.

My test was roughly:
        configure && make dist
        find dist | sort > ../FILE_LIST.BASE
        apply
        configure && make dist
        find dist | sort > ../FILE_LIST
        
        diff -u ../FILE_LIST.BASE ../FILE_LIST
        diff -u <(sed -e 's/lib64/lib/' ../FILE_LIST.BASE | sort ) ../FILE_LIST
        [...]
        @@ -727,10 +724,6 @@
         dist/install/usr/lib/xen/bin/xenpaging
         dist/install/usr/lib/xen/bin/xenpvnetboot
         dist/install/usr/lib/xen/boot
        -dist/install/usr/lib/xen/boot/hvmloader
        -dist/install/usr/lib/xen/boot/ioemu-stubdom.gz
        -dist/install/usr/lib/xen/boot/pv-grub-x86_32.gz
        -dist/install/usr/lib/xen/boot/pv-grub-x86_64.gz
         dist/install/usr/lib/xen/boot/xenstore-stubdom.gz
         dist/install/usr/local
         dist/install/usr/local/etc
        @@ -1098,4 +1091,10 @@
         dist/install/var/run/xenstored
         dist/install/var/xen
         dist/install/var/xen/dump
        +dist/install/xen
        +dist/install/xen/boot
        +dist/install/xen/boot/hvmloader
        +dist/install/xen/boot/ioemu-stubdom.gz
        +dist/install/xen/boot/pv-grub-x86_32.gz
        +dist/install/xen/boot/pv-grub-x86_64.gz
         dist/README

Strangely /usr/lib/xen/boot/xenstore-stubdom.gz wasn't effected...


> 
> Changes since v2:
>  * Drop the #ifndef check for FSIMAGE_FSDIR, let the normal compiler
>    error provide information that something is wrong.
>  * Don't include config/Tools.mk from the top level Config.mk.
>  * Just assume that libraries specified via EXTRA_PREFIX live in
>    $(EXTRA_LIB)/lib. EXTRA_PREFIX should probably just go away one day.
> 
> diff -r 32034d1914a6 -r 177d5f1e353f Config.mk
> --- a/Config.mk       Thu Jun 07 19:46:57 2012 +0100
> +++ b/Config.mk       Wed Jun 20 00:40:15 2012 +0000
> @@ -67,7 +67,7 @@ endef
>  
>  ifneq ($(EXTRA_PREFIX),)
>  EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
> -EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBLEAFDIR)
> +EXTRA_LIB += $(EXTRA_PREFIX)/lib
>  endif
>  
>  PYTHON      ?= python
> diff -r 32034d1914a6 -r 177d5f1e353f config/NetBSD.mk
> --- a/config/NetBSD.mk        Thu Jun 07 19:46:57 2012 +0100
> +++ b/config/NetBSD.mk        Wed Jun 20 00:40:15 2012 +0000
> @@ -1,7 +1,6 @@
>  include $(XEN_ROOT)/config/StdGNU.mk
>  
>  # Override settings for this OS
> -LIBLEAFDIR_x86_64 = lib
>  LIBEXEC = $(PREFIX)/libexec
>  PRIVATE_BINDIR = $(BINDIR)
>  
> diff -r 32034d1914a6 -r 177d5f1e353f config/StdGNU.mk
> --- a/config/StdGNU.mk        Thu Jun 07 19:46:57 2012 +0100
> +++ b/config/StdGNU.mk        Wed Jun 20 00:40:15 2012 +0000
> @@ -32,13 +32,7 @@ INSTALL_PROG = $(INSTALL) -m0755 -p
>  PREFIX ?= /usr
>  BINDIR = $(PREFIX)/bin
>  INCLUDEDIR = $(PREFIX)/include
> -LIBLEAFDIR = lib
> -LIBLEAFDIR_x86_32 = lib
> -LIBLEAFDIR_x86_64 ?= lib64
> -LIBDIR = $(PREFIX)/$(LIBLEAFDIR)
> -LIBDIR_x86_32 = $(PREFIX)/$(LIBLEAFDIR_x86_32)
> -LIBDIR_x86_64 = $(PREFIX)/$(LIBLEAFDIR_x86_64)
> -LIBEXEC = $(LIBDIR_x86_32)/xen/bin
> +LIBEXEC = $(PREFIX)/lib/xen/bin
>  SHAREDIR = $(PREFIX)/share
>  MANDIR = $(SHAREDIR)/man
>  MAN1DIR = $(MANDIR)/man1
> diff -r 32034d1914a6 -r 177d5f1e353f config/SunOS.mk
> --- a/config/SunOS.mk Thu Jun 07 19:46:57 2012 +0100
> +++ b/config/SunOS.mk Wed Jun 20 00:40:15 2012 +0000
> @@ -22,10 +22,6 @@ INSTALL_PROG = $(INSTALL) -m0755 -p
>  PREFIX ?= /usr
>  BINDIR = $(PREFIX)/bin
>  INCLUDEDIR = $(PREFIX)/include
> -LIBLEAFDIR = lib
> -LIBLEAFDIR_x86_64 = lib/amd64
> -LIBDIR = $(PREFIX)/$(LIBLEAFDIR)
> -LIBDIR_x86_64 = $(PREFIX)/$(LIBLEAFDIR_x86_64)
>  MANDIR = $(PREFIX)/share/man
>  MAN1DIR = $(MANDIR)/man1
>  MAN8DIR = $(MANDIR)/man8
> diff -r 32034d1914a6 -r 177d5f1e353f config/Tools.mk.in
> --- a/config/Tools.mk.in      Thu Jun 07 19:46:57 2012 +0100
> +++ b/config/Tools.mk.in      Wed Jun 20 00:40:15 2012 +0000
> @@ -1,6 +1,7 @@
>  # Prefix and install folder
>  PREFIX              := @prefix@
> -LIBLEAFDIR_x86_64   := @LIB_PATH@
> +exec_prefix         := @exec_prefix@
> +LIBDIR              := @libdir@
>  
>  # A debug build of tools?
>  debug               := @debug@
> diff -r 32034d1914a6 -r 177d5f1e353f config/x86_64.mk
> --- a/config/x86_64.mk        Thu Jun 07 19:46:57 2012 +0100
> +++ b/config/x86_64.mk        Wed Jun 20 00:40:15 2012 +0000
> @@ -10,9 +10,6 @@ CONFIG_IOEMU := y
>  
>  CFLAGS += -m64
>  
> -LIBLEAFDIR = $(LIBLEAFDIR_x86_64)
> -LIBDIR = $(LIBDIR_x86_64)
> -
>  SunOS_LIBDIR = $(SunOS_LIBDIR_x86_64)
>  
>  # Use only if calling $(LD) directly.
> diff -r 32034d1914a6 -r 177d5f1e353f tools/libfsimage/Rules.mk
> --- a/tools/libfsimage/Rules.mk       Thu Jun 07 19:46:57 2012 +0100
> +++ b/tools/libfsimage/Rules.mk       Wed Jun 20 00:40:15 2012 +0000
> @@ -1,17 +1,12 @@
>  include $(XEN_ROOT)/tools/Rules.mk
>  
> -CFLAGS += -Wno-unknown-pragmas -I$(XEN_ROOT)/tools/libfsimage/common/
> +CFLAGS += -Wno-unknown-pragmas -I$(XEN_ROOT)/tools/libfsimage/common/ 
> -DFSIMAGE_FSDIR=\"$(FSDIR)\"
>  CFLAGS += -Werror -D_GNU_SOURCE
>  LDFLAGS += -L../common/
>  
>  PIC_OBJS := $(patsubst %.c,%.opic,$(LIB_SRCS-y))
>  
> -FSDIR-$(CONFIG_Linux) = $(LIBDIR)/fs/$(FS)
> -FSDIR-$(CONFIG_SunOS)-x86_64 = $(PREFIX)/lib/fs/$(FS)/64
> -FSDIR-$(CONFIG_SunOS)-x86_32 = $(PREFIX)/lib/fs/$(FS)/
> -FSDIR-$(CONFIG_SunOS) = $(FSDIR-$(CONFIG_SunOS)-$(XEN_TARGET_ARCH))
> -FSDIR-$(CONFIG_NetBSD) = $(LIBDIR)/fs/$(FS)
> -FSDIR = $(FSDIR-y)
> +FSDIR = $(LIBDIR)/fs
>  
>  FSLIB = fsimage.so
>  
> @@ -20,8 +15,8 @@ fs-all: $(FSLIB)
>  
>  .PHONY: fs-install
>  fs-install: fs-all
> -     $(INSTALL_DIR) $(DESTDIR)$(FSDIR)
> -     $(INSTALL_PROG) $(FSLIB) $(DESTDIR)$(FSDIR)
> +     $(INSTALL_DIR) $(DESTDIR)$(FSDIR)/$(FS)
> +     $(INSTALL_PROG) $(FSLIB) $(DESTDIR)$(FSDIR)/$(FS)
>  
>  $(FSLIB): $(PIC_OBJS)
>       $(CC) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $^ -lfsimage $(FS_LIBDEPS) 
> $(APPEND_LDFLAGS)
> diff -r 32034d1914a6 -r 177d5f1e353f tools/libfsimage/common/Makefile
> --- a/tools/libfsimage/common/Makefile        Thu Jun 07 19:46:57 2012 +0100
> +++ b/tools/libfsimage/common/Makefile        Wed Jun 20 00:40:15 2012 +0000
> @@ -1,5 +1,5 @@
>  XEN_ROOT = $(CURDIR)/../../..
> -include $(XEN_ROOT)/tools/Rules.mk
> +include $(XEN_ROOT)/tools/libfsimage/Rules.mk
>  
>  MAJOR = 1.0
>  MINOR = 0
> diff -r 32034d1914a6 -r 177d5f1e353f tools/libfsimage/common/fsimage_plugin.c
> --- a/tools/libfsimage/common/fsimage_plugin.c        Thu Jun 07 19:46:57 
> 2012 +0100
> +++ b/tools/libfsimage/common/fsimage_plugin.c        Wed Jun 20 00:40:15 
> 2012 +0000
> @@ -122,7 +122,6 @@ fail:
>  static int load_plugins(void)
>  {
>       const char *fsdir = getenv("FSIMAGE_FSDIR");
> -     const char *isadir = "";
>       struct dirent *dp = NULL;
>       struct dirent *dpp;
>       DIR *dir = NULL;
> @@ -131,26 +130,8 @@ static int load_plugins(void)
>       int err;
>       int ret = -1;
>  
> -#if defined(FSIMAGE_FSDIR)
>       if (fsdir == NULL)
>               fsdir = FSIMAGE_FSDIR;
> -#elif defined(__sun__)
> -     if (fsdir == NULL)
> -             fsdir = "/usr/lib/fs";
> -
> -     if (sizeof(void *) == 8)
> -             isadir = "64/";
> -#elif defined(__ia64__)
> -     if (fsdir == NULL)
> -             fsdir = "/usr/lib/fs";
> -#else
> -     if (fsdir == NULL) {
> -             if (sizeof(void *) == 8)
> -                     fsdir = "/usr/lib64/fs";
> -             else
> -                     fsdir = "/usr/lib/fs";
> -     }
> -#endif
>  
>       if ((name_max = pathconf(fsdir, _PC_NAME_MAX)) == -1)
>               goto fail;
> @@ -172,8 +153,8 @@ static int load_plugins(void)
>               if (strcmp(dpp->d_name, "..") == 0)
>                       continue;
>  
> -             (void) snprintf(tmp, name_max, "%s/%s/%sfsimage.so", fsdir,
> -                 dpp->d_name, isadir);
> +             (void) snprintf(tmp, name_max, "%s/%s/fsimage.so", fsdir,
> +                     dpp->d_name);
>  
>               if (init_plugin(tmp) != 0)
>                       goto fail;



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.