diff options
author | Matt Wilson <msw@amazon.com> | 2012-07-05 11:00:28 +0100 |
---|---|---|
committer | Matt Wilson <msw@amazon.com> | 2012-07-05 11:00:28 +0100 |
commit | f9cc7456425b542feb4a2e6f4bd5a7db44f5eaf0 (patch) | |
tree | 6aa225f4c238b30bbf2f27878116f0b492a6cf69 | |
parent | ed367d4f9de58269f8be356268d382060f9f7e42 (diff) | |
download | xen-f9cc7456425b542feb4a2e6f4bd5a7db44f5eaf0.tar.gz xen-f9cc7456425b542feb4a2e6f4bd5a7db44f5eaf0.tar.bz2 xen-f9cc7456425b542feb4a2e6f4bd5a7db44f5eaf0.zip |
tools: honour --libdir when it is passed to ./configure
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@amazon.com>
Acked-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[ ijc -- resolve rejects in configure by rerunning autogen.sh. Dropped changes
to remove m4/default_lib.m4 and update m4/pkg.m4 since they cause LIBDIR=/lib
instead of /usr/lib. Reran ./autogen.sh after that too ]
Committed-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r-- | Config.mk | 2 | ||||
-rw-r--r-- | config/NetBSD.mk | 1 | ||||
-rw-r--r-- | config/StdGNU.mk | 10 | ||||
-rw-r--r-- | config/SunOS.mk | 4 | ||||
-rw-r--r-- | config/Tools.mk.in | 3 | ||||
-rw-r--r-- | config/x86_64.mk | 3 | ||||
-rw-r--r-- | tools/libfsimage/Rules.mk | 13 | ||||
-rw-r--r-- | tools/libfsimage/common/Makefile | 2 | ||||
-rw-r--r-- | tools/libfsimage/common/fsimage_plugin.c | 23 |
9 files changed, 12 insertions, 49 deletions
@@ -67,7 +67,7 @@ $(eval $(call setvar_dir,INITD_DIR,/etc,/rc.d/init.d,/rc.d/init.d,/init.d)) ifneq ($(EXTRA_PREFIX),) EXTRA_INCLUDES += $(EXTRA_PREFIX)/include -EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBLEAFDIR) +EXTRA_LIB += $(EXTRA_PREFIX)/lib endif PYTHON ?= python diff --git a/config/NetBSD.mk b/config/NetBSD.mk index 274bfb0107..12c8a349a1 100644 --- a/config/NetBSD.mk +++ b/config/NetBSD.mk @@ -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 --git a/config/StdGNU.mk b/config/StdGNU.mk index e2f2e1ef36..b6adbbe422 100644 --- a/config/StdGNU.mk +++ b/config/StdGNU.mk @@ -32,19 +32,13 @@ 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 MAN8DIR = $(MANDIR)/man8 SBINDIR = $(PREFIX)/sbin -XENFIRMWAREDIR = $(LIBDIR_x86_32)/xen/boot +XENFIRMWAREDIR = $(PREFIX)/lib/xen/boot PRIVATE_PREFIX = $(LIBDIR)/xen PRIVATE_BINDIR = $(PRIVATE_PREFIX)/bin diff --git a/config/SunOS.mk b/config/SunOS.mk index ba809f5f5b..2c528b7dc4 100644 --- a/config/SunOS.mk +++ b/config/SunOS.mk @@ -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 --git a/config/Tools.mk.in b/config/Tools.mk.in index 5b80359902..8a52bccda3 100644 --- a/config/Tools.mk.in +++ b/config/Tools.mk.in @@ -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 --git a/config/x86_64.mk b/config/x86_64.mk index 6f77053df3..f9b21b14e4 100644 --- a/config/x86_64.mk +++ b/config/x86_64.mk @@ -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 --git a/tools/libfsimage/Rules.mk b/tools/libfsimage/Rules.mk index a65d532a68..e4b2a9158e 100644 --- a/tools/libfsimage/Rules.mk +++ b/tools/libfsimage/Rules.mk @@ -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 --git a/tools/libfsimage/common/Makefile b/tools/libfsimage/common/Makefile index 368491396b..f0ee3ab296 100644 --- a/tools/libfsimage/common/Makefile +++ b/tools/libfsimage/common/Makefile @@ -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 --git a/tools/libfsimage/common/fsimage_plugin.c b/tools/libfsimage/common/fsimage_plugin.c index 5ee9d746b2..3fa06c785c 100644 --- a/tools/libfsimage/common/fsimage_plugin.c +++ b/tools/libfsimage/common/fsimage_plugin.c @@ -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; |