All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4] tools: honour --libdir when it is passed to ./configure
@ 2012-07-04 18:18 Matt Wilson
  2012-07-05  8:58 ` Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: Matt Wilson @ 2012-07-04 18:18 UTC (permalink / raw)
  To: Ian Campbell, Roger Pau Monne; +Cc: xen-devel

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.

The LIBLEAFDIR{,_x86_32,_x86_64} make variables and the LIB_PATH
autoconf substition are no longer used, so this change removes
m4/default_lib.m4 and regenerates configure. m4/pkg.m4 has been
refreshed from pkg-config 0.26 to resolve an error,
"possibly undefined macro: AS_MESSAGE_LOG_FDdnl"  when running
autoconf.

Signed-off-by: Matt Wilson <msw@amazon.com>

Changes since v3:
 * Correct $(XENFIRMWAREDIR) to point at $(PREFIX)/lib/xen/xen/boot
   Reported-by: Ian Campbell <Ian.Campbell@citrix.com>
 * Remove (now unneeded) DEFAULT_LIB checks from autoconf
   Reported-by: Roger Pau Monne <roger.pau@citrix.com>
 * Refresh pkg.m4 from pkg-config 0.26, which contains a fix for
   "error: possibly undefined macro: AS_MESSAGE_LOG_FDdnl" error
   when rerunning autoconf
 * Re-generate configure.

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 deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 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,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 -r 32034d1914a6 -r deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 tools/configure
--- a/tools/configure	Thu Jun 07 19:46:57 2012 +0100
+++ b/tools/configure	Wed Jun 20 00:40:15 2012 +0000
@@ -606,7 +606,6 @@ libgcrypt
 libext2fs
 system_aio
 zlib
-LIB_PATH
 glib_LIBS
 glib_CFLAGS
 PKG_CONFIG_LIBDIR
@@ -2043,7 +2042,7 @@ do
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -2227,8 +2226,6 @@ fi
 
 
 
-
-
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # serial 1 (pkg-config-0.24)
 #
@@ -2933,7 +2930,7 @@ fi
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3048,7 +3045,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3091,7 +3088,7 @@ else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3150,7 +3147,7 @@ eval ac_try_echo="\"\$as_me:${as_lineno-
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -3202,7 +3199,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -4950,7 +4947,7 @@ else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -5839,6 +5836,7 @@ fi
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -5967,6 +5965,7 @@ if test -n "$glib_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_glib_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -5983,6 +5982,7 @@ if test -n "$glib_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_glib_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -6002,9 +6002,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1`
+	        glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0" 2>&1`
         else
-	        glib_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1`
+	        glib_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$glib_PKG_ERRORS" >&5
@@ -6033,7 +6033,7 @@ and glib_LIBS to avoid the need to call 
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
 	glib_CFLAGS=$pkg_cv_glib_CFLAGS
 	glib_LIBS=$pkg_cv_glib_LIBS
@@ -6042,31 +6042,6 @@ else
 
 fi
 
-# Check library path
-if test "\${exec_prefix}/lib" = "$libdir"; then :
-  if test "$exec_prefix" = "NONE" && test "$prefix" != "NONE"; then :
-  exec_prefix=$prefix
-fi
-    if test "$exec_prefix" = "NONE"; then :
-  exec_prefix=$ac_default_prefix
-fi
-    if test -d "${exec_prefix}/lib64"; then :
-
-        LIB_PATH="lib64"
-
-else
-
-        LIB_PATH="lib"
-
-fi
-
-else
-
-    LIB_PATH="${libdir:`expr length "$exec_prefix" + 1`}"
-
-fi
-
-
 # Checks for libraries.
 ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default"
 if test "x$ac_cv_header_bzlib_h" = x""yes; then :
@@ -6473,7 +6448,7 @@ else
                 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "Unable to find library for openpty and login_tty
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
             fi
 
     saved_LIBS="$LIBS"
@@ -7354,7 +7329,7 @@ do
     "../config/Tools.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools.mk" ;;
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -7669,7 +7644,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -7697,7 +7672,7 @@ do
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -7724,7 +7699,7 @@ do
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
diff -r 32034d1914a6 -r deb7e8599e78 tools/configure.ac
--- a/tools/configure.ac	Thu Jun 07 19:46:57 2012 +0100
+++ b/tools/configure.ac	Wed Jun 20 00:40:15 2012 +0000
@@ -26,7 +26,6 @@ m4_include([m4/path_or_fail.m4])
 m4_include([m4/python_version.m4])
 m4_include([m4/python_devel.m4])
 m4_include([m4/ocaml.m4])
-m4_include([m4/default_lib.m4])
 m4_include([m4/set_cflags_ldflags.m4])
 m4_include([m4/uuid.m4])
 m4_include([m4/pkg.m4])
@@ -117,9 +116,6 @@ AX_CHECK_UUID
 AX_CHECK_CURSES
 PKG_CHECK_MODULES(glib, glib-2.0)
 
-# Check library path
-AX_DEFAULT_LIB
-
 # Checks for libraries.
 AC_CHECK_HEADER([bzlib.h], [
 AC_CHECK_LIB([bz2], [BZ2_bzDecompressInit], [zlib="$zlib -DHAVE_BZLIB -lbz2"])
diff -r 32034d1914a6 -r deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 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;
diff -r 32034d1914a6 -r deb7e8599e78 tools/m4/default_lib.m4
--- a/tools/m4/default_lib.m4	Thu Jun 07 19:46:57 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-AC_DEFUN([AX_DEFAULT_LIB],
-[AS_IF([test "\${exec_prefix}/lib" = "$libdir"],
-    [AS_IF([test "$exec_prefix" = "NONE" && test "$prefix" != "NONE"],
-        [exec_prefix=$prefix])
-    AS_IF([test "$exec_prefix" = "NONE"], [exec_prefix=$ac_default_prefix])
-    AS_IF([test -d "${exec_prefix}/lib64"], [
-        LIB_PATH="lib64"
-    ],[
-        LIB_PATH="lib"
-    ])
-], [
-    LIB_PATH="${libdir:`expr length "$exec_prefix" + 1`}"
-])
-AC_SUBST(LIB_PATH)])
diff -r 32034d1914a6 -r deb7e8599e78 tools/m4/pkg.m4
--- a/tools/m4/pkg.m4	Thu Jun 07 19:46:57 2012 +0100
+++ b/tools/m4/pkg.m4	Wed Jun 20 00:40:15 2012 +0000
@@ -26,7 +26,8 @@
 # ----------------------------------
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
@@ -72,7 +73,8 @@ m4_define([_PKG_CONFIG],
     pkg_cv_[]$1="$$1"
  elif test -n "$PKG_CONFIG"; then
     PKG_CHECK_EXISTS([$3],
-                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
 		     [pkg_failed=yes])
  else
     pkg_failed=untried
@@ -120,9 +122,9 @@ if test $pkg_failed = yes; then
    	AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
         else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -135,7 +137,7 @@ if test $pkg_failed = yes; then
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-_PKG_TEXT])dnl
+_PKG_TEXT])[]dnl
         ])
 elif test $pkg_failed = untried; then
      	AC_MSG_RESULT([no])
@@ -146,7 +148,7 @@ path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
         ])
 else
 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4] tools: honour --libdir when it is passed to ./configure
  2012-07-04 18:18 [PATCH v4] tools: honour --libdir when it is passed to ./configure Matt Wilson
@ 2012-07-05  8:58 ` Ian Campbell
  2012-07-05  9:11   ` Roger Pau Monne
  2012-07-05 10:01   ` Ian Campbell
  0 siblings, 2 replies; 5+ messages in thread
From: Ian Campbell @ 2012-07-05  8:58 UTC (permalink / raw)
  To: Matt Wilson; +Cc: xen-devel@lists.xen.org, Roger Pau Monne

On Wed, 2012-07-04 at 19:18 +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.
> 
> The LIBLEAFDIR{,_x86_32,_x86_64} make variables and the LIB_PATH
> autoconf substition are no longer used, so this change removes
> m4/default_lib.m4 and regenerates configure. m4/pkg.m4 has been
> refreshed from pkg-config 0.26 to resolve an error,
> "possibly undefined macro: AS_MESSAGE_LOG_FDdnl"  when running
> autoconf.

Was this required due to the removal of default_lib.m4?

> Signed-off-by: Matt Wilson <msw@amazon.com>

This time I get everything installed in /lib instead of /usr/lib. e.g.

dist/install/lib/fs instead of the expected dist/install/usr/lib/fs
dist/install/lib/libxenctrl.so and not
dist/install/usr/lib/libxenctrl.so etc etc.

I suspect this is due to:

        $ head -n 4 config/Tools.mk
        # Prefix and install folder
        PREFIX              := /usr
        exec_prefix         := ${prefix}
        LIBDIR              := ${exec_prefix}/lib

Note the case of prefix vs PREFIX. AFAICT $PREFIX is completely a
Xen-ism while autoconf always uses $prefix.

On a hunch I reverted the change to remove m4/default_lib.m4 and this
lead to the expected result.

I'm going to revert the m4/default_lib.m4 and by extension the m4/pkg.m4
changes and commit the result (after consulting with Ian J to make sure
the test system can cope with this change).

Please can you resubmit the other bits separately? I suspect the right
answer will be to include prefix:=@prefix@ in config/Tools.mk.in, but
I've not checked that.

For reference my test procedure is to do a full "make dist" before and
after each time doing:
        find dist | sort > FILE_LIST.BEFORE
(or ....AFTER as appropriate) and then to do
        diff -u <(sed -e 's/lib64/lib/' ../FILE_LIST.BEFORE | sort) ../FILE_LIST.AFTER
It'd be useful if you could do something similar as part of your
testing.

FYI I also tested live migration of PV (booted with pygrub), HVM (w/
qemu in dom0) and HVM (w/ stubdomains) with xl and PV migration and HVM
migration with xend. Since pygrub and the various save herlpes are some
of the things which have moved around. All seemed fine.

Thanks,
Ian.




> 
> Changes since v3:
>  * Correct $(XENFIRMWAREDIR) to point at $(PREFIX)/lib/xen/xen/boot
>    Reported-by: Ian Campbell <Ian.Campbell@citrix.com>
>  * Remove (now unneeded) DEFAULT_LIB checks from autoconf
>    Reported-by: Roger Pau Monne <roger.pau@citrix.com>
>  * Refresh pkg.m4 from pkg-config 0.26, which contains a fix for
>    "error: possibly undefined macro: AS_MESSAGE_LOG_FDdnl" error
>    when rerunning autoconf
>  * Re-generate configure.
> 
> 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 deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 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,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 -r 32034d1914a6 -r deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 tools/configure
> --- a/tools/configure   Thu Jun 07 19:46:57 2012 +0100
> +++ b/tools/configure   Wed Jun 20 00:40:15 2012 +0000
> @@ -606,7 +606,6 @@ libgcrypt
>  libext2fs
>  system_aio
>  zlib
> -LIB_PATH
>  glib_LIBS
>  glib_CFLAGS
>  PKG_CONFIG_LIBDIR
> @@ -2043,7 +2042,7 @@ do
>        || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "failed to load site script $ac_site_file
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>    fi
>  done
> 
> @@ -2227,8 +2226,6 @@ fi
> 
> 
> 
> -
> -
>  # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
>  # serial 1 (pkg-config-0.24)
>  #
> @@ -2933,7 +2930,7 @@ fi
>  test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "no acceptable C compiler found in \$PATH
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
> 
>  # Provide some information about the compiler.
>  $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
> @@ -3048,7 +3045,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
>  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error 77 "C compiler cannot create executables
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>  else
>    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
>  $as_echo "yes" >&6; }
> @@ -3091,7 +3088,7 @@ else
>    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "cannot compute suffix of executables: cannot compile and link
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>  fi
>  rm -f conftest conftest$ac_cv_exeext
>  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
> @@ -3150,7 +3147,7 @@ eval ac_try_echo="\"\$as_me:${as_lineno-
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "cannot run C compiled programs.
>  If you meant to cross compile, use \`--host'.
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>      fi
>    fi
>  fi
> @@ -3202,7 +3199,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
>  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "cannot compute suffix of object files: cannot compile
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>  fi
>  rm -f conftest.$ac_cv_objext conftest.$ac_ext
>  fi
> @@ -4950,7 +4947,7 @@ else
>    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>  fi
> 
>  ac_ext=c
> @@ -5839,6 +5836,7 @@ fi
> 
> 
> 
> +
>  if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
>         if test -n "$ac_tool_prefix"; then
>    # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
> @@ -5967,6 +5965,7 @@ if test -n "$glib_CFLAGS"; then
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_glib_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null`
> +                     test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> @@ -5983,6 +5982,7 @@ if test -n "$glib_LIBS"; then
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_glib_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null`
> +                     test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> @@ -6002,9 +6002,9 @@ else
>          _pkg_short_errors_supported=no
>  fi
>          if test $_pkg_short_errors_supported = yes; then
> -               glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1`
> +               glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0" 2>&1`
>          else
> -               glib_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1`
> +               glib_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0" 2>&1`
>          fi
>         # Put the nasty error message in config.log where it belongs
>         echo "$glib_PKG_ERRORS" >&5
> @@ -6033,7 +6033,7 @@ and glib_LIBS to avoid the need to call
>  See the pkg-config man page for more details.
> 
>  To get pkg-config, see <http://pkg-config.freedesktop.org/>.
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>  else
>         glib_CFLAGS=$pkg_cv_glib_CFLAGS
>         glib_LIBS=$pkg_cv_glib_LIBS
> @@ -6042,31 +6042,6 @@ else
> 
>  fi
> 
> -# Check library path
> -if test "\${exec_prefix}/lib" = "$libdir"; then :
> -  if test "$exec_prefix" = "NONE" && test "$prefix" != "NONE"; then :
> -  exec_prefix=$prefix
> -fi
> -    if test "$exec_prefix" = "NONE"; then :
> -  exec_prefix=$ac_default_prefix
> -fi
> -    if test -d "${exec_prefix}/lib64"; then :
> -
> -        LIB_PATH="lib64"
> -
> -else
> -
> -        LIB_PATH="lib"
> -
> -fi
> -
> -else
> -
> -    LIB_PATH="${libdir:`expr length "$exec_prefix" + 1`}"
> -
> -fi
> -
> -
>  # Checks for libraries.
>  ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default"
>  if test "x$ac_cv_header_bzlib_h" = x""yes; then :
> @@ -6473,7 +6448,7 @@ else
>                  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "Unable to find library for openpty and login_tty
> -See \`config.log' for more details" "$LINENO" 5 ; }
> +See \`config.log' for more details" "$LINENO" 5; }
>              fi
> 
>      saved_LIBS="$LIBS"
> @@ -7354,7 +7329,7 @@ do
>      "../config/Tools.mk") CONFIG_FILES="$CONFIG_FILES ../config/Tools.mk" ;;
>      "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
> 
> -  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
> +  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
>    esac
>  done
> 
> @@ -7669,7 +7644,7 @@ do
>    esac
>    case $ac_mode$ac_tag in
>    :[FHL]*:*);;
> -  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
> +  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
>    :[FH]-) ac_tag=-:-;;
>    :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
>    esac
> @@ -7697,7 +7672,7 @@ do
>            [\\/$]*) false;;
>            *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
>            esac ||
> -          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
> +          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
>        esac
>        case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
>        as_fn_append ac_file_inputs " '$ac_f'"
> @@ -7724,7 +7699,7 @@ do
> 
>      case $ac_tag in
>      *:-:* | *:-) cat >"$tmp/stdin" \
> -      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
> +      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
>      esac
>      ;;
>    esac
> diff -r 32034d1914a6 -r deb7e8599e78 tools/configure.ac
> --- a/tools/configure.ac        Thu Jun 07 19:46:57 2012 +0100
> +++ b/tools/configure.ac        Wed Jun 20 00:40:15 2012 +0000
> @@ -26,7 +26,6 @@ m4_include([m4/path_or_fail.m4])
>  m4_include([m4/python_version.m4])
>  m4_include([m4/python_devel.m4])
>  m4_include([m4/ocaml.m4])
> -m4_include([m4/default_lib.m4])
>  m4_include([m4/set_cflags_ldflags.m4])
>  m4_include([m4/uuid.m4])
>  m4_include([m4/pkg.m4])
> @@ -117,9 +116,6 @@ AX_CHECK_UUID
>  AX_CHECK_CURSES
>  PKG_CHECK_MODULES(glib, glib-2.0)
> 
> -# Check library path
> -AX_DEFAULT_LIB
> -
>  # Checks for libraries.
>  AC_CHECK_HEADER([bzlib.h], [
>  AC_CHECK_LIB([bz2], [BZ2_bzDecompressInit], [zlib="$zlib -DHAVE_BZLIB -lbz2"])
> diff -r 32034d1914a6 -r deb7e8599e78 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 deb7e8599e78 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 deb7e8599e78 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;
> diff -r 32034d1914a6 -r deb7e8599e78 tools/m4/default_lib.m4
> --- a/tools/m4/default_lib.m4   Thu Jun 07 19:46:57 2012 +0100
> +++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
> @@ -1,14 +0,0 @@
> -AC_DEFUN([AX_DEFAULT_LIB],
> -[AS_IF([test "\${exec_prefix}/lib" = "$libdir"],
> -    [AS_IF([test "$exec_prefix" = "NONE" && test "$prefix" != "NONE"],
> -        [exec_prefix=$prefix])
> -    AS_IF([test "$exec_prefix" = "NONE"], [exec_prefix=$ac_default_prefix])
> -    AS_IF([test -d "${exec_prefix}/lib64"], [
> -        LIB_PATH="lib64"
> -    ],[
> -        LIB_PATH="lib"
> -    ])
> -], [
> -    LIB_PATH="${libdir:`expr length "$exec_prefix" + 1`}"
> -])
> -AC_SUBST(LIB_PATH)])
> diff -r 32034d1914a6 -r deb7e8599e78 tools/m4/pkg.m4
> --- a/tools/m4/pkg.m4   Thu Jun 07 19:46:57 2012 +0100
> +++ b/tools/m4/pkg.m4   Wed Jun 20 00:40:15 2012 +0000
> @@ -26,7 +26,8 @@
>  # ----------------------------------
>  AC_DEFUN([PKG_PROG_PKG_CONFIG],
>  [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
> -m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
> +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
> +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
>  AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
>  AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
>  AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
> @@ -72,7 +73,8 @@ m4_define([_PKG_CONFIG],
>      pkg_cv_[]$1="$$1"
>   elif test -n "$PKG_CONFIG"; then
>      PKG_CHECK_EXISTS([$3],
> -                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
> +                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
> +                     test "x$?" != "x0" && pkg_failed=yes ],
>                      [pkg_failed=yes])
>   else
>      pkg_failed=untried
> @@ -120,9 +122,9 @@ if test $pkg_failed = yes; then
>         AC_MSG_RESULT([no])
>          _PKG_SHORT_ERRORS_SUPPORTED
>          if test $_pkg_short_errors_supported = yes; then
> -               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
> +               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
>          else
> -               $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
> +               $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
>          fi
>         # Put the nasty error message in config.log where it belongs
>         echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
> @@ -135,7 +137,7 @@ if test $pkg_failed = yes; then
>  Consider adjusting the PKG_CONFIG_PATH environment variable if you
>  installed software in a non-standard prefix.
> 
> -_PKG_TEXT])dnl
> +_PKG_TEXT])[]dnl
>          ])
>  elif test $pkg_failed = untried; then
>         AC_MSG_RESULT([no])
> @@ -146,7 +148,7 @@ path to pkg-config.
> 
>  _PKG_TEXT
> 
> -To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
> +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
>          ])
>  else
>         $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4] tools: honour --libdir when it is passed to ./configure
  2012-07-05  8:58 ` Ian Campbell
@ 2012-07-05  9:11   ` Roger Pau Monne
  2012-07-05 10:01   ` Ian Campbell
  1 sibling, 0 replies; 5+ messages in thread
From: Roger Pau Monne @ 2012-07-05  9:11 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Matt Wilson, xen-devel@lists.xen.org

Ian Campbell wrote:
> On Wed, 2012-07-04 at 19:18 +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.
>>
>> The LIBLEAFDIR{,_x86_32,_x86_64} make variables and the LIB_PATH
>> autoconf substition are no longer used, so this change removes
>> m4/default_lib.m4 and regenerates configure. m4/pkg.m4 has been
>> refreshed from pkg-config 0.26 to resolve an error,
>> "possibly undefined macro: AS_MESSAGE_LOG_FDdnl"  when running
>> autoconf.
>
> Was this required due to the removal of default_lib.m4?
>
>> Signed-off-by: Matt Wilson<msw@amazon.com>
>
> This time I get everything installed in /lib instead of /usr/lib. e.g.
>
> dist/install/lib/fs instead of the expected dist/install/usr/lib/fs
> dist/install/lib/libxenctrl.so and not
> dist/install/usr/lib/libxenctrl.so etc etc.
>
> I suspect this is due to:
>
>          $ head -n 4 config/Tools.mk
>          # Prefix and install folder
>          PREFIX              := /usr
>          exec_prefix         := ${prefix}
>          LIBDIR              := ${exec_prefix}/lib
>
> Note the case of prefix vs PREFIX. AFAICT $PREFIX is completely a
> Xen-ism while autoconf always uses $prefix.

The definitive solution is to convert everything to lowercase, since 
it's much more comfortable if we are using autoconf. Anyway this is a 
4.3 task.

> On a hunch I reverted the change to remove m4/default_lib.m4 and this
> lead to the expected result.
>
> I'm going to revert the m4/default_lib.m4 and by extension the m4/pkg.m4
> changes and commit the result (after consulting with Ian J to make sure
> the test system can cope with this change).
>
> Please can you resubmit the other bits separately? I suspect the right
> answer will be to include prefix:=@prefix@ in config/Tools.mk.in, but
> I've not checked that.
>
> For reference my test procedure is to do a full "make dist" before and
> after each time doing:
>          find dist | sort>  FILE_LIST.BEFORE
> (or ....AFTER as appropriate) and then to do
>          diff -u<(sed -e 's/lib64/lib/' ../FILE_LIST.BEFORE | sort) ../FILE_LIST.AFTER
> It'd be useful if you could do something similar as part of your
> testing.
>
> FYI I also tested live migration of PV (booted with pygrub), HVM (w/
> qemu in dom0) and HVM (w/ stubdomains) with xl and PV migration and HVM
> migration with xend. Since pygrub and the various save herlpes are some
> of the things which have moved around. All seemed fine.
>
> Thanks,
> Ian.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4] tools: honour --libdir when it is passed to ./configure
  2012-07-05  8:58 ` Ian Campbell
  2012-07-05  9:11   ` Roger Pau Monne
@ 2012-07-05 10:01   ` Ian Campbell
  2012-07-05 17:05     ` Matt Wilson
  1 sibling, 1 reply; 5+ messages in thread
From: Ian Campbell @ 2012-07-05 10:01 UTC (permalink / raw)
  To: Matt Wilson; +Cc: Roger Pau Monne, xen-devel@lists.xen.org

On Thu, 2012-07-05 at 09:58 +0100, Ian Campbell wrote:
> I'm going to revert the m4/default_lib.m4 and by extension the m4/pkg.m4
> changes and commit the result (after consulting with Ian J to make sure
> the test system can cope with this change).

Having consulted with Ian I have now pushed the following:

# HG changeset patch
# User Matt Wilson <msw@amazon.com>
# Date 1341482428 -3600
# Node ID ad08cd8e7097ec6da6526cf8ac26f0fa72cd1e01
# Parent  7c0351dc41a5123241af27f4cb910b915647193c
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>

diff -r 7c0351dc41a5 -r ad08cd8e7097 Config.mk
--- a/Config.mk	Wed Jul 04 15:46:17 2012 +0100
+++ b/Config.mk	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 config/NetBSD.mk
--- a/config/NetBSD.mk	Wed Jul 04 15:46:17 2012 +0100
+++ b/config/NetBSD.mk	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 config/StdGNU.mk
--- a/config/StdGNU.mk	Wed Jul 04 15:46:17 2012 +0100
+++ b/config/StdGNU.mk	Thu Jul 05 11:00:28 2012 +0100
@@ -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 -r 7c0351dc41a5 -r ad08cd8e7097 config/SunOS.mk
--- a/config/SunOS.mk	Wed Jul 04 15:46:17 2012 +0100
+++ b/config/SunOS.mk	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 config/Tools.mk.in
--- a/config/Tools.mk.in	Wed Jul 04 15:46:17 2012 +0100
+++ b/config/Tools.mk.in	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 config/x86_64.mk
--- a/config/x86_64.mk	Wed Jul 04 15:46:17 2012 +0100
+++ b/config/x86_64.mk	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 tools/libfsimage/Rules.mk
--- a/tools/libfsimage/Rules.mk	Wed Jul 04 15:46:17 2012 +0100
+++ b/tools/libfsimage/Rules.mk	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 tools/libfsimage/common/Makefile
--- a/tools/libfsimage/common/Makefile	Wed Jul 04 15:46:17 2012 +0100
+++ b/tools/libfsimage/common/Makefile	Thu Jul 05 11:00:28 2012 +0100
@@ -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 7c0351dc41a5 -r ad08cd8e7097 tools/libfsimage/common/fsimage_plugin.c
--- a/tools/libfsimage/common/fsimage_plugin.c	Wed Jul 04 15:46:17 2012 +0100
+++ b/tools/libfsimage/common/fsimage_plugin.c	Thu Jul 05 11:00:28 2012 +0100
@@ -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;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4] tools: honour --libdir when it is passed to ./configure
  2012-07-05 10:01   ` Ian Campbell
@ 2012-07-05 17:05     ` Matt Wilson
  0 siblings, 0 replies; 5+ messages in thread
From: Matt Wilson @ 2012-07-05 17:05 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Roger Pau Monne, xen-devel@lists.xen.org

On Thu, Jul 05, 2012 at 03:01:41AM -0700, Ian Campbell wrote:
> On Thu, 2012-07-05 at 09:58 +0100, Ian Campbell wrote:
> > I'm going to revert the m4/default_lib.m4 and by extension the m4/pkg.m4
> > changes and commit the result (after consulting with Ian J to make sure
> > the test system can cope with this change).
> 
> Having consulted with Ian I have now pushed the following:

Thanks for fixing this up, and for all the iterations on what should
have been a simple change.

Matt

> # HG changeset patch
> # User Matt Wilson <msw@amazon.com>
> # Date 1341482428 -3600
> # Node ID ad08cd8e7097ec6da6526cf8ac26f0fa72cd1e01
> # Parent  7c0351dc41a5123241af27f4cb910b915647193c
> 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 ]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-07-05 17:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-04 18:18 [PATCH v4] tools: honour --libdir when it is passed to ./configure Matt Wilson
2012-07-05  8:58 ` Ian Campbell
2012-07-05  9:11   ` Roger Pau Monne
2012-07-05 10:01   ` Ian Campbell
2012-07-05 17:05     ` Matt Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.