Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Xen: Changelog

[xen-unstable] libfsimage: add ext4 support for CentOS 5.x

 

 

Xen changelog RSS feed   Index | Next | Previous | View Threaded


patchbot at xen

Sep 14, 2012, 2:11 PM

Post #1 of 1 (38 views)
Permalink
[xen-unstable] libfsimage: add ext4 support for CentOS 5.x

# HG changeset patch
# User Roger Pau Monne <roger.pau [at] citrix>
# Date 1347613367 -3600
# Node ID 98e1ba6a672a3ef5326c502b0e18f4f1b4b3995f
# Parent 95a971c8058fd10c64973ce767bcb0e490f1a355
libfsimage: add ext4 support for CentOS 5.x

CentOS 5.x forked e2fs ext4 support into a different package called
e4fs, and so headers and library names changed from ext2fs to ext4fs.
Check if ext4fs/ext2fs.h and -lext4fs work, and use that instead of
ext2fs to build libfsimage. This patch assumes that if the ext4fs
library is present it should always be used instead of ext2fs.

This patch includes a rework of the ext2fs check, a new ext4fs check
and a minor modification in libfsimage to use the correct library.

Signed-off-by: Roger Pau Monne <roger.pau [at] citrix>
Acked-by: Ian Campbell <ian.campbell [at] citrix>
Committed-by: Ian Campbell <ian.campbell [at] citrix>
---


diff -r 95a971c8058f -r 98e1ba6a672a config/Tools.mk.in
--- a/config/Tools.mk.in Fri Sep 14 10:02:46 2012 +0100
+++ b/config/Tools.mk.in Fri Sep 14 10:02:47 2012 +0100
@@ -57,5 +57,5 @@ CONFIG_SYSTEM_LIBAIO:= @system_aio@
ZLIB := @zlib@
CONFIG_LIBICONV := @libiconv@
CONFIG_GCRYPT := @libgcrypt@
-CONFIG_EXT2FS := @libext2fs@
+EXTFS_LIBS := @EXTFS_LIBS@
CURSES_LIBS := @CURSES_LIBS@
diff -r 95a971c8058f -r 98e1ba6a672a tools/config.h.in
--- a/tools/config.h.in Fri Sep 14 10:02:46 2012 +0100
+++ b/tools/config.h.in Fri Sep 14 10:02:47 2012 +0100
@@ -42,6 +42,9 @@
/* Define curses header to use */
#undef INCLUDE_CURSES_H

+/* Define extfs header to use */
+#undef INCLUDE_EXTFS_H
+
/* libutil header file name */
#undef INCLUDE_LIBUTIL_H

diff -r 95a971c8058f -r 98e1ba6a672a tools/configure
--- a/tools/configure Fri Sep 14 10:02:46 2012 +0100
+++ b/tools/configure Fri Sep 14 10:02:47 2012 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for Xen Hypervisor 4.2.
+# Generated by GNU Autoconf 2.67 for Xen Hypervisor 4.3.
#
# Report bugs to <xen-devel [at] lists>.
#
@@ -552,8 +552,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Xen Hypervisor'
PACKAGE_TARNAME='xen-hypervisor'
-PACKAGE_VERSION='4.2'
-PACKAGE_STRING='Xen Hypervisor 4.2'
+PACKAGE_VERSION='4.3'
+PACKAGE_STRING='Xen Hypervisor 4.3'
PACKAGE_BUGREPORT='xen-devel [at] lists'
PACKAGE_URL=''

@@ -603,7 +603,7 @@ PTHREAD_LIBS
PTHREAD_LDFLAGS
PTHREAD_CFLAGS
libgcrypt
-libext2fs
+EXTFS_LIBS
system_aio
zlib
glib_LIBS
@@ -1301,7 +1301,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Xen Hypervisor 4.2 to adapt to many kinds of systems.
+\`configure' configures Xen Hypervisor 4.3 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -1366,7 +1366,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Xen Hypervisor 4.2:";;
+ short | recursive ) echo "Configuration of Xen Hypervisor 4.3:";;
esac
cat <<\_ACEOF

@@ -1490,7 +1490,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Xen Hypervisor configure 4.2
+Xen Hypervisor configure 4.3
generated by GNU Autoconf 2.67

Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1792,7 +1792,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

-It was created by Xen Hypervisor $as_me 4.2, which was
+It was created by Xen Hypervisor $as_me 4.3, which was
generated by GNU Autoconf 2.67. Invocation command line was

$ $0 $@
@@ -2389,6 +2389,8 @@ case $host_os in *\ *) host_os=`echo "$h



+
+
# Enable/disable options

# Check whether --enable-githttp was given.
@@ -6325,6 +6327,10 @@ else
as_fn_error $? "Could not find libcrypto" "$LINENO" 5
fi

+
+ac_fn_c_check_header_mongrel "$LINENO" "ext2fs/ext2fs.h" "ac_cv_header_ext2fs_ext2fs_h" "$ac_includes_default"
+if test "x$ac_cv_header_ext2fs_ext2fs_h" = x""yes; then :
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ext2fs_open2 in -lext2fs" >&5
$as_echo_n "checking for ext2fs_open2 in -lext2fs... " >&6; }
if test "${ac_cv_lib_ext2fs_ext2fs_open2+set}" = set; then :
@@ -6362,10 +6368,70 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext2fs_ext2fs_open2" >&5
$as_echo "$ac_cv_lib_ext2fs_ext2fs_open2" >&6; }
if test "x$ac_cv_lib_ext2fs_ext2fs_open2" = x""yes; then :
- libext2fs="y"
-else
- libext2fs="n"
-fi
+
+
+$as_echo "#define INCLUDE_EXTFS_H <ext2fs/ext2fs.h>" >>confdefs.h
+
+ EXTFS_LIBS="-lext2fs"
+
+fi
+
+
+fi
+
+
+ac_fn_c_check_header_mongrel "$LINENO" "ext4fs/ext2fs.h" "ac_cv_header_ext4fs_ext2fs_h" "$ac_includes_default"
+if test "x$ac_cv_header_ext4fs_ext2fs_h" = x""yes; then :
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ext2fs_open2 in -lext4fs" >&5
+$as_echo_n "checking for ext2fs_open2 in -lext4fs... " >&6; }
+if test "${ac_cv_lib_ext4fs_ext2fs_open2+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lext4fs $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ext2fs_open2 ();
+int
+main ()
+{
+return ext2fs_open2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ext4fs_ext2fs_open2=yes
+else
+ ac_cv_lib_ext4fs_ext2fs_open2=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ext4fs_ext2fs_open2" >&5
+$as_echo "$ac_cv_lib_ext4fs_ext2fs_open2" >&6; }
+if test "x$ac_cv_lib_ext4fs_ext2fs_open2" = x""yes; then :
+
+
+$as_echo "#define INCLUDE_EXTFS_H <ext4fs/ext2fs.h>" >>confdefs.h
+
+ EXTFS_LIBS="-lext4fs"
+
+fi
+
+
+fi
+
+


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_md_hash_buffer in -lgcrypt" >&5
@@ -7192,7 +7258,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Xen Hypervisor $as_me 4.2, which was
+This file was extended by Xen Hypervisor $as_me 4.3, which was
generated by GNU Autoconf 2.67. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -7254,7 +7320,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Xen Hypervisor config.status 4.2
+Xen Hypervisor config.status 4.3
configured by $0, generated by GNU Autoconf 2.67,
with options \\"\$ac_cs_config\\"

diff -r 95a971c8058f -r 98e1ba6a672a tools/configure.ac
--- a/tools/configure.ac Fri Sep 14 10:02:46 2012 +0100
+++ b/tools/configure.ac Fri Sep 14 10:02:47 2012 +0100
@@ -34,6 +34,7 @@ m4_include([m4/pkg.m4])
m4_include([m4/curses.m4])
m4_include([m4/pthread.m4])
m4_include([m4/ptyfuncs.m4])
+m4_include([m4/extfs.m4])

# Enable/disable options
AX_ARG_DEFAULT_DISABLE([githttp], [Download GIT repositories via HTTP])
@@ -131,8 +132,7 @@ AC_SUBST(zlib)
AC_CHECK_LIB([aio], [io_setup], [system_aio="y"], [system_aio="n"])
AC_SUBST(system_aio)
AC_CHECK_LIB([crypto], [MD5], [], [AC_MSG_ERROR([Could not find libcrypto])])
-AC_CHECK_LIB([ext2fs], [ext2fs_open2], [libext2fs="y"], [libext2fs="n"])
-AC_SUBST(libext2fs)
+AX_CHECK_EXTFS
AC_CHECK_LIB([gcrypt], [gcry_md_hash_buffer], [libgcrypt="y"], [libgcrypt="n"])
AC_SUBST(libgcrypt)
AX_CHECK_PTHREAD
diff -r 95a971c8058f -r 98e1ba6a672a tools/libfsimage/Makefile
--- a/tools/libfsimage/Makefile Fri Sep 14 10:02:46 2012 +0100
+++ b/tools/libfsimage/Makefile Fri Sep 14 10:02:47 2012 +0100
@@ -3,7 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk

SUBDIRS-y = common ufs reiserfs iso9660 fat zfs
SUBDIRS-$(CONFIG_X86) += xfs
-ifeq ($(CONFIG_EXT2FS), y)
+ifneq ($(EXTFS_LIBS), )
SUBDIRS-y += ext2fs-lib
else
SUBDIRS-y += ext2fs
diff -r 95a971c8058f -r 98e1ba6a672a tools/libfsimage/ext2fs-lib/Makefile
--- a/tools/libfsimage/ext2fs-lib/Makefile Fri Sep 14 10:02:46 2012 +0100
+++ b/tools/libfsimage/ext2fs-lib/Makefile Fri Sep 14 10:02:47 2012 +0100
@@ -4,7 +4,10 @@ LIB_SRCS-y = ext2fs-lib.c

FS = ext2fs-lib

-FS_LIBDEPS = -lext2fs
+FS_LIBDEPS = $(EXTFS_LIBS)
+
+# Include configure output (config.h) to headers search path
+CFLAGS += -I$(XEN_ROOT)/tools

.PHONY: all
all: fs-all
diff -r 95a971c8058f -r 98e1ba6a672a tools/libfsimage/ext2fs-lib/ext2fs-lib.c
--- a/tools/libfsimage/ext2fs-lib/ext2fs-lib.c Fri Sep 14 10:02:46 2012 +0100
+++ b/tools/libfsimage/ext2fs-lib/ext2fs-lib.c Fri Sep 14 10:02:47 2012 +0100
@@ -21,8 +21,11 @@
* Use is subject to license terms.
*/

+/* Include output from configure */
+#include <config.h>
+
#include <fsimage_plugin.h>
-#include <ext2fs/ext2fs.h>
+#include INCLUDE_EXTFS_H
#include <errno.h>
#include <inttypes.h>

diff -r 95a971c8058f -r 98e1ba6a672a tools/m4/extfs.m4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/m4/extfs.m4 Fri Sep 14 10:02:47 2012 +0100
@@ -0,0 +1,20 @@
+AC_DEFUN([AX_CHECK_EXTFS], [
+AC_CHECK_HEADER([ext2fs/ext2fs.h], [
+AC_CHECK_LIB([ext2fs], [ext2fs_open2], [
+ AC_DEFINE([INCLUDE_EXTFS_H], [<ext2fs/ext2fs.h>],
+ [Define extfs header to use])
+ EXTFS_LIBS="-lext2fs"
+])
+])
+dnl This is a temporary hack for CentOS 5.x, which split the ext4 support
+dnl of ext2fs in a different package. Once CentOS 5.x is no longer supported
+dnl we can remove this.
+AC_CHECK_HEADER([ext4fs/ext2fs.h], [
+AC_CHECK_LIB([ext4fs], [ext2fs_open2], [
+ AC_DEFINE([INCLUDE_EXTFS_H], [<ext4fs/ext2fs.h>],
+ [Define extfs header to use])
+ EXTFS_LIBS="-lext4fs"
+])
+])
+AC_SUBST(EXTFS_LIBS)
+])

_______________________________________________
Xen-changelog mailing list
Xen-changelog [at] lists
http://lists.xensource.com/xen-changelog

Xen changelog RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.