[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 Wed, Jul 04, 2012 at 06:54:11AM -0700, Ian Campbell wrote:
> 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.

Many apologies for not catching that. I missed one usage of
LIBDIR_x86_32: XENFIRMWAREDIR. I'll fix it up now, along with cleaning
up the default_lib.m4 remnant.

Matt

> 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®.