[libvirt] [PATCHv3] build: work around super-old readline.h

Eric Blake eblake at redhat.com
Mon Nov 18 16:54:05 UTC 2013


From: Ryota Ozaki <ozaki.ryota at gmail.com>

This patch shuts up the following warning of clang
on Mac OS X:

  virsh.c:2761:22: error: assigning to 'char *' from 'const char [6]' discards qualifiers
      [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
      rl_readline_name = "virsh";
                       ^ ~~~~~~~

The warning happens because rl_readline_name on Mac OS X comes
from an old readline header that still uses 'char *', while it
is 'const char *' in readline 4.2 (April 2001) and newer.

Tested on Mac OS X 10.8.5 (clang-500.2.75) and Fedora 19 (gcc 4.8.1).

Signed-off-by: Ryota Ozaki <ozaki.ryota at gmail.com>
Signed-off-by: Eric Blake <eblake at redhat.com>
---

Pushing this version.  Diff from v2 is solely in the commit
message and code comment, and I already expressed ack to
the code change of v2.

 tools/virsh.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/virsh.c b/tools/virsh.c
index 241c5b8..5559d71 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -2757,8 +2757,11 @@ vshReadlineInit(vshControl *ctl)
     int max_history = 500;
     const char *histsize_str;

-    /* Allow conditional parsing of the ~/.inputrc file. */
-    rl_readline_name = "virsh";
+    /* Allow conditional parsing of the ~/.inputrc file.
+     * Work around ancient readline 4.1 (hello Mac OS X),
+     * which declared it as 'char *' instead of 'const char *'.
+     */
+    rl_readline_name = (char *) "virsh";

     /* Tell the completer that we want a crack first. */
     rl_attempted_completion_function = vshReadlineCompletion;
-- 
1.8.3.1




More information about the libvir-list mailing list