[linux-lvm] Re: lvm build failures without readline-devel installed?
Jim Meyering
jim at meyering.net
Fri Jul 25 07:59:19 UTC 2008
Dave Wysochanski <dwysocha at redhat.com> wrote:
...
> I'm seeing build failures now with readline-devel _not_ installed and a
> configure line with the readline options absent (only "--enable-debug"
> and "--with-dmdir" options)
>
> http://10.11.231.162:8010/waterfall
Thanks, Dave!
These are the relevant warnings:
lvm.c:135: warning: implicit declaration of function 'completion_matches'
lvm.c:135: warning: nested extern declaration of 'completion_matches'
lvm.c:135: warning: assignment makes pointer from integer without a cast
lvm.c:138: warning: assignment makes pointer from integer without a cast
In my recent change, I made the mistake of specifying the
previously unspecified ACTION_IF_FOUND parameter to AC_CHECK_LIB.
That overrode the default action (which would prepend -lreadline to LIBS),
so the subsequent check for rl_completion_matches would fail.
Then, the work-around C code would redefine it to "completion_matches",
which would not be declared, resulting in the warnings above.
The following patch also replaces AC_CHECK_FUNC+AC_DEFINE
with an equivalent AC_CHECK_FUNCS call.
I confirmed that this works on a RHEL5 system
with readline-devel not installed.
>From 7ebe4f5308764821afe757d2eb843881cbc9a34a Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Fri, 25 Jul 2008 09:50:52 +0200
Subject: [PATCH] Avoid compiler warnings (provoked by new configure.in bug) on RHEL5.
Do not override the default action of AC_CHECK_LIB([readline],...
(i.e., leave the ACTION-IF-FOUND parameter blank) so that the
subsequent check for rl_completion_matches can use -lreadline.
Also, replace AC_CHECK_FUNC+AC_DEFINE with an equivalent AC_CHECK_FUNCS call.
---
configure.in | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/configure.in b/configure.in
index 7936383..a022487 100644
--- a/configure.in
+++ b/configure.in
@@ -516,7 +516,8 @@ AC_CHECK_HEADERS(getopt.h, AC_DEFINE([HAVE_GETOPTLONG], 1, [Define to 1 if getop
################################################################################
dnl -- Check for readline (Shamelessly copied from parted 1.4.17)
if test x$READLINE != xno; then
- AC_CHECK_LIB([readline], [readline], [rl_found=yes], [rl_found=no])
+ rl_found=yes
+ AC_CHECK_LIB([readline], [readline], , [rl_found=no])
test x$READLINE:$rl_found = xyes:no &&
AC_MSG_ERROR(
GNU Readline could not be found which is required for the
@@ -527,9 +528,7 @@ Note: if you are using precompiled packages you will also need the development
package as well (which may be called readline-devel or something similar).
)
if test $rl_found = yes; then
- AC_CHECK_FUNC([rl_completion_matches],
- AC_DEFINE([HAVE_RL_COMPLETION_MATCHES], 1,
- [Define to 1 if rl_completion_matches() is available.]))
+ AC_CHECK_FUNCS([rl_completion_matches])
AC_DEFINE([READLINE_SUPPORT], 1,
[Define to 1 to include the LVM readline shell.])
fi
--
1.6.0.rc0.46.g2ac23
More information about the linux-lvm
mailing list