Roger Pau Monne
2012-Feb-22 19:45 UTC
[PATCH] autoconf: add missing compression checks for libxc
# HG changeset patch
# User Roger Pau Monne <roger.pau@entel.upc.edu>
# Date 1329939885 -3600
# Node ID a6f28f44a11c63f7f4a94ab49397c17279506442
# Parent 9e72215b0ee2d73b6b60b1e155067595294dc2df
autoconf: add missing compression checks for libxc
Move missing checks from tools/libxc/Makefile to configure script.
Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
diff -r 9e72215b0ee2 -r a6f28f44a11c config/Tools.mk.in
--- a/config/Tools.mk.in Wed Feb 22 17:49:27 2012 +0100
+++ b/config/Tools.mk.in Wed Feb 22 20:44:45 2012 +0100
@@ -43,6 +43,7 @@ CONFIG_LOMOUNT := @lomount@
#System options
CONFIG_SYSTEM_LIBAIO:= @system_aio@
+ZLIB := @zlib@
CONFIG_LIBICONV := @libiconv@
CONFIG_GCRYPT := @libgcrypt@
CONFIG_EXT2FS := @libext2fs@
diff -r 9e72215b0ee2 -r a6f28f44a11c tools/configure
--- a/tools/configure Wed Feb 22 17:49:27 2012 +0100
+++ b/tools/configure Wed Feb 22 20:44:45 2012 +0100
@@ -605,6 +605,7 @@ libiconv
libgcrypt
libext2fs
system_aio
+zlib
LIB_PATH
glib_LIBS
glib_CFLAGS
@@ -6728,6 +6729,127 @@ fi
# Checks for libraries.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompressInit
in -lbz2" >&5
+$as_echo_n "checking for BZ2_bzDecompressInit in -lbz2... "
>&6; }
+if test "${ac_cv_lib_bz2_BZ2_bzDecompressInit+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbz2 $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 BZ2_bzDecompressInit ();
+int
+main ()
+{
+return BZ2_bzDecompressInit ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bz2_BZ2_bzDecompressInit=yes
+else
+ ac_cv_lib_bz2_BZ2_bzDecompressInit=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_bz2_BZ2_bzDecompressInit" >&5
+$as_echo "$ac_cv_lib_bz2_BZ2_bzDecompressInit" >&6; }
+if test "x$ac_cv_lib_bz2_BZ2_bzDecompressInit" = x""yes;
then :
+ zlib="$zlib -DHAVE_BZLIB -lbz2"
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder
in -llzma" >&5
+$as_echo_n "checking for lzma_stream_decoder in -llzma... "
>&6; }
+if test "${ac_cv_lib_lzma_lzma_stream_decoder+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzma $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 lzma_stream_decoder ();
+int
+main ()
+{
+return lzma_stream_decoder ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lzma_lzma_stream_decoder=yes
+else
+ ac_cv_lib_lzma_lzma_stream_decoder=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_lzma_lzma_stream_decoder" >&5
+$as_echo "$ac_cv_lib_lzma_lzma_stream_decoder" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_stream_decoder" = x""yes;
then :
+ zlib="$zlib -DHAVE_LZMA -llzma"
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzo1x_decompress in
-llzo2" >&5
+$as_echo_n "checking for lzo1x_decompress in -llzo2... " >&6;
}
+if test "${ac_cv_lib_lzo2_lzo1x_decompress+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzo2 $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 lzo1x_decompress ();
+int
+main ()
+{
+return lzo1x_decompress ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lzo2_lzo1x_decompress=yes
+else
+ ac_cv_lib_lzo2_lzo1x_decompress=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_lzo2_lzo1x_decompress" >&5
+$as_echo "$ac_cv_lib_lzo2_lzo1x_decompress" >&6; }
+if test "x$ac_cv_lib_lzo2_lzo1x_decompress" = x""yes; then
:
+ zlib="$zlib -DHAVE_LZO1X -llzo2"
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for io_setup in
-laio" >&5
$as_echo_n "checking for io_setup in -laio... " >&6; }
if test "${ac_cv_lib_aio_io_setup+set}" = set; then :
diff -r 9e72215b0ee2 -r a6f28f44a11c tools/configure.ac
--- a/tools/configure.ac Wed Feb 22 17:49:27 2012 +0100
+++ b/tools/configure.ac Wed Feb 22 20:44:45 2012 +0100
@@ -110,6 +110,10 @@ PKG_CHECK_MODULES(glib, glib-2.0)
AX_DEFAULT_LIB
# Checks for libraries.
+AC_CHECK_LIB([bz2], [BZ2_bzDecompressInit], [zlib="$zlib -DHAVE_BZLIB
-lbz2"])
+AC_CHECK_LIB([lzma], [lzma_stream_decoder], [zlib="$zlib -DHAVE_LZMA
-llzma"])
+AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X
-llzo2"])
+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])])
diff -r 9e72215b0ee2 -r a6f28f44a11c tools/libxc/Makefile
--- a/tools/libxc/Makefile Wed Feb 22 17:49:27 2012 +0100
+++ b/tools/libxc/Makefile Wed Feb 22 20:44:45 2012 +0100
@@ -171,20 +171,7 @@ libxenguest.so.$(MAJOR): libxenguest.so.
ifeq ($(CONFIG_MiniOS),y)
zlib-options else
-zlib-options = $(shell \
- (. ../check/funcs.sh; \
- if has_header bzlib.h; then \
- echo "-DHAVE_BZLIB"; \
- echo "-lbz2"; \
- fi; \
- if has_header lzma.h; then \
- echo "-DHAVE_LZMA"; \
- echo "-llzma"; \
- fi; \
- if has_header lzo/lzo1x.h; then \
- echo "-DHAVE_LZO1X"; \
- echo "-llzo2"; \
- fi) | grep $(1))
+zlib-options = $(ZLIB)
endif
xc_dom_bzimageloader.o: CFLAGS += $(call zlib-options,D)
Jan Beulich
2012-Mar-06 14:30 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
>>> On 22.02.12 at 20:45, Roger Pau Monne <roger.pau@entel.upc.edu> wrote: > # HG changeset patch > # User Roger Pau Monne <roger.pau@entel.upc.edu> > # Date 1329939885 -3600 > # Node ID a6f28f44a11c63f7f4a94ab49397c17279506442 > # Parent 9e72215b0ee2d73b6b60b1e155067595294dc2df > autoconf: add missing compression checks for libxc > > Move missing checks from tools/libxc/Makefile to configure script. > > Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>Wow, that was fast indeed! However, ...> --- a/tools/configure.ac Wed Feb 22 17:49:27 2012 +0100 > +++ b/tools/configure.ac Wed Feb 22 20:44:45 2012 +0100 > @@ -110,6 +110,10 @@ PKG_CHECK_MODULES(glib, glib-2.0) > AX_DEFAULT_LIB > > # Checks for libraries. > +AC_CHECK_LIB([bz2], [BZ2_bzDecompressInit], [zlib="$zlib -DHAVE_BZLIB -lbz2"]) > +AC_CHECK_LIB([lzma], [lzma_stream_decoder], [zlib="$zlib -DHAVE_LZMA -llzma"]) > +AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X -llzo2"])... are you certain that checking for these symbols in the respective libraries suffices? The old check really was verifying corresponding header files'' presence. Jan> +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])])
Roger Pau Monné
2012-Mar-06 15:01 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
2012/3/6 Jan Beulich <JBeulich@suse.com>:>>>> On 22.02.12 at 20:45, Roger Pau Monne <roger.pau@entel.upc.edu> wrote: >> # HG changeset patch >> # User Roger Pau Monne <roger.pau@entel.upc.edu> >> # Date 1329939885 -3600 >> # Node ID a6f28f44a11c63f7f4a94ab49397c17279506442 >> # Parent 9e72215b0ee2d73b6b60b1e155067595294dc2df >> autoconf: add missing compression checks for libxc >> >> Move missing checks from tools/libxc/Makefile to configure script. >> >> Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu> > > Wow, that was fast indeed! However, ... > >> --- a/tools/configure.ac Wed Feb 22 17:49:27 2012 +0100 >> +++ b/tools/configure.ac Wed Feb 22 20:44:45 2012 +0100 >> @@ -110,6 +110,10 @@ PKG_CHECK_MODULES(glib, glib-2.0) >> AX_DEFAULT_LIB >> >> # Checks for libraries. >> +AC_CHECK_LIB([bz2], [BZ2_bzDecompressInit], [zlib="$zlib -DHAVE_BZLIB -lbz2"]) >> +AC_CHECK_LIB([lzma], [lzma_stream_decoder], [zlib="$zlib -DHAVE_LZMA -llzma"]) >> +AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X -llzo2"]) > > ... are you certain that checking for these symbols in the respective > libraries suffices? The old check really was verifying corresponding > header files' presence.I think it's best to do it this way, what this tests do is try to compile a sample program that uses the library, which is much more closer to the reality than just checking for a header existence. In a strange case you might have the header files, but maybe the library is broken, so we can not use it. What I can do if you want is check for the header files also, something like this? 8<---------------------------- autoconf: add missing compression checks for libxc Move missing checks from tools/libxc/Makefile to configure script. Changes since v1: * Check for header files. Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu> diff -r 9e72215b0ee2 config/Tools.mk.in --- a/config/Tools.mk.in Wed Feb 22 17:49:27 2012 +0100 +++ b/config/Tools.mk.in Wed Feb 22 21:53:27 2012 +0100 @@ -43,6 +43,7 @@ CONFIG_LOMOUNT := @lomount@ #System options CONFIG_SYSTEM_LIBAIO:= @system_aio@ +ZLIB := @zlib@ CONFIG_LIBICONV := @libiconv@ CONFIG_GCRYPT := @libgcrypt@ CONFIG_EXT2FS := @libext2fs@ diff -r 9e72215b0ee2 tools/configure --- a/tools/configure Wed Feb 22 17:49:27 2012 +0100 +++ b/tools/configure Wed Feb 22 21:53:27 2012 +0100 @@ -605,6 +605,7 @@ libiconv libgcrypt libext2fs system_aio +zlib LIB_PATH glib_LIBS glib_CFLAGS @@ -6728,6 +6729,148 @@ 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 : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompressInit in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzDecompressInit in -lbz2... " >&6; } +if test "${ac_cv_lib_bz2_BZ2_bzDecompressInit+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $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 BZ2_bzDecompressInit (); +int +main () +{ +return BZ2_bzDecompressInit (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bz2_BZ2_bzDecompressInit=yes +else + ac_cv_lib_bz2_BZ2_bzDecompressInit=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_bz2_BZ2_bzDecompressInit" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzDecompressInit" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzDecompressInit" = x""yes; then : + zlib="$zlib -DHAVE_BZLIB -lbz2" +fi + + +fi + + +ac_fn_c_check_header_mongrel "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default" +if test "x$ac_cv_header_lzma_h" = x""yes; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder in -llzma" >&5 +$as_echo_n "checking for lzma_stream_decoder in -llzma... " >&6; } +if test "${ac_cv_lib_lzma_lzma_stream_decoder+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzma $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 lzma_stream_decoder (); +int +main () +{ +return lzma_stream_decoder (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lzma_lzma_stream_decoder=yes +else + ac_cv_lib_lzma_lzma_stream_decoder=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_lzma_lzma_stream_decoder" >&5 +$as_echo "$ac_cv_lib_lzma_lzma_stream_decoder" >&6; } +if test "x$ac_cv_lib_lzma_lzma_stream_decoder" = x""yes; then : + zlib="$zlib -DHAVE_LZMA -llzma" +fi + + +fi + + +ac_fn_c_check_header_mongrel "$LINENO" "lzo/lzo1x.h" "ac_cv_header_lzo_lzo1x_h" "$ac_includes_default" +if test "x$ac_cv_header_lzo_lzo1x_h" = x""yes; then : + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzo1x_decompress in -llzo2" >&5 +$as_echo_n "checking for lzo1x_decompress in -llzo2... " >&6; } +if test "${ac_cv_lib_lzo2_lzo1x_decompress+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-llzo2 $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 lzo1x_decompress (); +int +main () +{ +return lzo1x_decompress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_lzo2_lzo1x_decompress=yes +else + ac_cv_lib_lzo2_lzo1x_decompress=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_lzo2_lzo1x_decompress" >&5 +$as_echo "$ac_cv_lib_lzo2_lzo1x_decompress" >&6; } +if test "x$ac_cv_lib_lzo2_lzo1x_decompress" = x""yes; then : + zlib="$zlib -DHAVE_LZO1X -llzo2" +fi + + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for io_setup in -laio" >&5 $as_echo_n "checking for io_setup in -laio... " >&6; } if test "${ac_cv_lib_aio_io_setup+set}" = set; then : diff -r 9e72215b0ee2 tools/configure.ac --- a/tools/configure.ac Wed Feb 22 17:49:27 2012 +0100 +++ b/tools/configure.ac Wed Feb 22 21:53:27 2012 +0100 @@ -110,6 +110,16 @@ PKG_CHECK_MODULES(glib, glib-2.0) AX_DEFAULT_LIB # Checks for libraries. +AC_CHECK_HEADER([bzlib.h], [ +AC_CHECK_LIB([bz2], [BZ2_bzDecompressInit], [zlib="$zlib -DHAVE_BZLIB -lbz2"]) +]) +AC_CHECK_HEADER([lzma.h], [ +AC_CHECK_LIB([lzma], [lzma_stream_decoder], [zlib="$zlib -DHAVE_LZMA -llzma"]) +]) +AC_CHECK_HEADER([lzo/lzo1x.h], [ +AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X -llzo2"]) +]) +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])]) diff -r 9e72215b0ee2 tools/libxc/Makefile --- a/tools/libxc/Makefile Wed Feb 22 17:49:27 2012 +0100 +++ b/tools/libxc/Makefile Wed Feb 22 21:53:27 2012 +0100 @@ -171,20 +171,7 @@ libxenguest.so.$(MAJOR): libxenguest.so. ifeq ($(CONFIG_MiniOS),y) zlib-options else -zlib-options = $(shell \ - (. ../check/funcs.sh; \ - if has_header bzlib.h; then \ - echo "-DHAVE_BZLIB"; \ - echo "-lbz2"; \ - fi; \ - if has_header lzma.h; then \ - echo "-DHAVE_LZMA"; \ - echo "-llzma"; \ - fi; \ - if has_header lzo/lzo1x.h; then \ - echo "-DHAVE_LZO1X"; \ - echo "-llzo2"; \ - fi) | grep $(1)) +zlib-options = $(ZLIB) endif xc_dom_bzimageloader.o: CFLAGS += $(call zlib-options,D) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Jan Beulich
2012-Mar-06 15:08 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
>>> On 06.03.12 at 16:01, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: > 2012/3/6 Jan Beulich <JBeulich@suse.com>: >> ... are you certain that checking for these symbols in the respective >> libraries suffices? The old check really was verifying corresponding >> header files' presence. > > I think it's best to do it this way, what this tests do is try to > compile a sample program that uses the library, which is much more > closer to the reality than just checking for a header existence. In a > strange case you might have the header files, but maybe the library is > broken, so we can not use it. What I can do if you want is check for > the header files also, something like this?Hmm, no - I was rather thinking of a real usability test (which implies existence), i.e. include the header in the test source snippet. This is what really matches reality. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Roger Pau Monné
2012-Mar-06 17:27 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
2012/3/6 Jan Beulich <JBeulich@suse.com>:>>>> On 06.03.12 at 16:01, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: >> 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>> ... are you certain that checking for these symbols in the respective >>> libraries suffices? The old check really was verifying corresponding >>> header files' presence. >> >> I think it's best to do it this way, what this tests do is try to >> compile a sample program that uses the library, which is much more >> closer to the reality than just checking for a header existence. In a >> strange case you might have the header files, but maybe the library is >> broken, so we can not use it. What I can do if you want is check for >> the header files also, something like this? > > Hmm, no - I was rather thinking of a real usability test (which implies > existence), i.e. include the header in the test source snippet. This is > what really matches reality.The last patch does this more or less, it's just that not on the same test. If headers are found and are usable then we perform a library check, basically it does the same as the previous test found in tools/libxc/Makefile but also checks that the library is usable for linking.> Jan_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Jan Beulich
2012-Mar-07 07:49 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
>>> On 06.03.12 at 18:27, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: > 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>>>> On 06.03.12 at 16:01, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: >>> 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>>> ... are you certain that checking for these symbols in the respective >>>> libraries suffices? The old check really was verifying corresponding >>>> header files' presence. >>> >>> I think it's best to do it this way, what this tests do is try to >>> compile a sample program that uses the library, which is much more >>> closer to the reality than just checking for a header existence. In a >>> strange case you might have the header files, but maybe the library is >>> broken, so we can not use it. What I can do if you want is check for >>> the header files also, something like this? >> >> Hmm, no - I was rather thinking of a real usability test (which implies >> existence), i.e. include the header in the test source snippet. This is >> what really matches reality. > > The last patch does this more or less, it's just that not on the same > test. If headers are found and are usable then we perform a library > check, basically it does the same as the previous test found in > tools/libxc/Makefile but also checks that the library is usable for > linking.Not really - this is an example of what is being tried to get compiled and linked: #ifdef __cplusplus extern "C" #endif char BZ2_bzDecompressInit (); int main () { return BZ2_bzDecompressInit (); ; return 0; } - no inclusion of the header in question, using a bogus prototype instead. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Roger Pau Monné
2012-Mar-07 09:02 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
2012/3/7 Jan Beulich <JBeulich@suse.com>:>>>> On 06.03.12 at 18:27, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: >> 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>>>>> On 06.03.12 at 16:01, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: >>>> 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>>>> ... are you certain that checking for these symbols in the respective >>>>> libraries suffices? The old check really was verifying corresponding >>>>> header files' presence. >>>> >>>> I think it's best to do it this way, what this tests do is try to >>>> compile a sample program that uses the library, which is much more >>>> closer to the reality than just checking for a header existence. In a >>>> strange case you might have the header files, but maybe the library is >>>> broken, so we can not use it. What I can do if you want is check for >>>> the header files also, something like this? >>> >>> Hmm, no - I was rather thinking of a real usability test (which implies >>> existence), i.e. include the header in the test source snippet. This is >>> what really matches reality. >> >> The last patch does this more or less, it's just that not on the same >> test. If headers are found and are usable then we perform a library >> check, basically it does the same as the previous test found in >> tools/libxc/Makefile but also checks that the library is usable for >> linking. > > Not really - this is an example of what is being tried to get compiled > and linked: > > #ifdef __cplusplus > extern "C" > #endif > char BZ2_bzDecompressInit (); > int > main () > { > return BZ2_bzDecompressInit (); > ; > return 0; > } > > - no inclusion of the header in question, using a bogus prototype > instead.This is done by AC_CHECK_LIB, the AC_CHECK_HEADER macro, which calls the function "ac_fn_c_check_header_mongrel", tries to compile a sample test that includes the requested header. So I think both tests are done, it's just that not at the same time.> Jan_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Jan Beulich
2012-Mar-07 09:26 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
>>> On 07.03.12 at 10:02, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: > 2012/3/7 Jan Beulich <JBeulich@suse.com>: >>>>> On 06.03.12 at 18:27, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: >>> 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>>>>>> On 06.03.12 at 16:01, Roger Pau Monné<roger.pau@entel.upc.edu> wrote: >>>>> 2012/3/6 Jan Beulich <JBeulich@suse.com>: >>>>>> ... are you certain that checking for these symbols in the respective >>>>>> libraries suffices? The old check really was verifying corresponding >>>>>> header files' presence. >>>>> >>>>> I think it's best to do it this way, what this tests do is try to >>>>> compile a sample program that uses the library, which is much more >>>>> closer to the reality than just checking for a header existence. In a >>>>> strange case you might have the header files, but maybe the library is >>>>> broken, so we can not use it. What I can do if you want is check for >>>>> the header files also, something like this? >>>> >>>> Hmm, no - I was rather thinking of a real usability test (which implies >>>> existence), i.e. include the header in the test source snippet. This is >>>> what really matches reality. >>> >>> The last patch does this more or less, it's just that not on the same >>> test. If headers are found and are usable then we perform a library >>> check, basically it does the same as the previous test found in >>> tools/libxc/Makefile but also checks that the library is usable for >>> linking. >> >> Not really - this is an example of what is being tried to get compiled >> and linked: >> >> #ifdef __cplusplus >> extern "C" >> #endif >> char BZ2_bzDecompressInit (); >> int >> main () >> { >> return BZ2_bzDecompressInit (); >> ; >> return 0; >> } >> >> - no inclusion of the header in question, using a bogus prototype >> instead. > > This is done by AC_CHECK_LIB, the AC_CHECK_HEADER macro, which calls > the function "ac_fn_c_check_header_mongrel", tries to compile a sample > test that includes the requested header. So I think both tests are > done, it's just that not at the same time.Okay - ac_fn_c_check_header_mongrel just doesn't tell me anything. Sorry for being dense. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Ian Jackson
2012-Mar-12 11:17 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
Roger Pau Monné writes ("Re: [PATCH] autoconf: add missing compression
checks for libxc"):> autoconf: add missing compression checks for libxc
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian.
Ian Jackson
2012-Mar-13 17:04 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
Jan Beulich writes ("Re: [Xen-devel] [PATCH] autoconf: add missing
compression checks for libxc"):> Okay - ac_fn_c_check_header_mongrel just doesn''t tell me anything.
> Sorry for being dense.
Roger''s patch (the 2nd version) looks good to me. Just to clarify,
are you happy with it as well ?
Ian.
Jan Beulich
2012-Mar-14 07:30 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
>>> On 13.03.12 at 18:04, Ian Jackson <Ian.Jackson@eu.citrix.com> wrote: > Jan Beulich writes ("Re: [Xen-devel] [PATCH] autoconf: add missing compression > checks for libxc"): >> Okay - ac_fn_c_check_header_mongrel just doesn''t tell me anything. >> Sorry for being dense. > > Roger''s patch (the 2nd version) looks good to me. Just to clarify, > are you happy with it as well ?Yes, looked okay to me (taking also into account the subsequent explanation). Jan
Ian Jackson
2012-Mar-14 11:12 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
Roger Pau Monné writes ("Re: [Xen-devel] [PATCH] autoconf: add missing
compression checks for libxc"):> autoconf: add missing compression checks for libxc
Sadly:
patching file config/Tools.mk.in
Hunk #1 succeeded at 40 (offset -3 lines).
patching file tools/configure
patch: **** malformed patch at line 84: "ac_cv_header_bzlib_h"
"$ac_includes_default"
Ian.
Roger Pau Monné
2012-Mar-14 13:45 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
2012/3/14 Ian Jackson <Ian.Jackson@eu.citrix.com>:> Roger Pau Monné writes ("Re: [Xen-devel] [PATCH] autoconf: add missing compression checks for libxc"): >> autoconf: add missing compression checks for libxc > > Sadly: > > patching file config/Tools.mk.in > Hunk #1 succeeded at 40 (offset -3 lines). > patching file tools/configure > patch: **** malformed patch at line 84: "ac_cv_header_bzlib_h" "$ac_includes_default"Could you remove the tools/configure part of the patch and run autogen.sh before committing? Thanks, Roger.> Ian._______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Ian Jackson
2012-Mar-14 14:13 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
Roger Pau Monné writes ("Re: [Xen-devel] [PATCH] autoconf: add missing
compression checks for libxc"):> 2012/3/14 Ian Jackson <Ian.Jackson@eu.citrix.com>:
> > Hunk #1 succeeded at 40 (offset -3 lines).
> > patching file tools/configure
> > patch: **** malformed patch at line 84:
"ac_cv_header_bzlib_h" "$ac_includes_default"
>
> Could you remove the tools/configure part of the patch and run
> autogen.sh before committing?
I didn''t check but I assume that this is a linewrap problem like with
the other patch.
Ian.
Roger Pau Monné
2012-Mar-14 14:15 UTC
Re: [PATCH] autoconf: add missing compression checks for libxc
2012/3/14 Ian Jackson <Ian.Jackson@eu.citrix.com>:> Roger Pau Monné writes ("Re: [Xen-devel] [PATCH] autoconf: add missing compression checks for libxc"): >> 2012/3/14 Ian Jackson <Ian.Jackson@eu.citrix.com>: >> > Hunk #1 succeeded at 40 (offset -3 lines). >> > patching file tools/configure >> > patch: **** malformed patch at line 84: "ac_cv_header_bzlib_h" "$ac_includes_default" >> >> Could you remove the tools/configure part of the patch and run >> autogen.sh before committing? > > I didn't check but I assume that this is a linewrap problem like with > the other patch.Probably, I'm going to resend it, just like the other. Thanks and sorry.> Ian._______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel