Fix --with-system-readline with readline-6.3 patch 5

Message ID 20140620105004.GA22236@host2.jankratochvil.net
State Accepted, archived
Headers

Commit Message

Jan Kratochvil June 20, 2014, 10:50 a.m. UTC
  Hi,

I have filed now:
	--with-system-readline uses bundled readline include files
	https://sourceware.org/bugzilla/show_bug.cgi?id=17077

To see any effect of the patch below you have to do:
	rm -rf readline
Otherwise readline include files get used the bundled ones from GDB which are
currently 6.2 while system readline may be 6.3 already.

You also have to use system readline-6.3 including its upstream patch:
	[Bug-readline] Readline-6.3 Official Patch 5
	http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html
	Message-ID: <140415125618.AA57598.SM@caleb.ins.cwru.edu>

In short it happens on Fedora Rawhide since:
	readline-6.3-1.fc21
	https://koji.fedoraproject.org/koji/buildinfo?buildID=538941

The error is:
	https://kojipkgs.fedoraproject.org//work/tasks/9890/7059890/build.log
	../../gdb/tui/tui-io.c:132:1: error: 'Function' is deprecated [-Werror=deprecated-declarations]
	 static Function *tui_old_rl_getc_function;
	 ^
	../../gdb/tui/tui-io.c:133:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
	 static VFunction *tui_old_rl_redisplay_function;
	 ^
	../../gdb/tui/tui-io.c:134:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
	 static VFunction *tui_old_rl_prep_terminal;
	 ^
	../../gdb/tui/tui-io.c:135:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
	 static VFunction *tui_old_rl_deprep_terminal;
	 ^

It is since bash change:
lib/readline/rltypedefs.h
       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
         suggested by Tom Tromey <tromey@redhat.com>

The new typedefs used below are present in readline/rltypedefs.h since:
	git://git.savannah.gnu.org/bash.git
	commit 28ef6c316f1aff914bb95ac09787a3c83c1815fd
	Date:   Fri Apr 6 19:14:31 2001 +0000


Jan
gdb/
2014-06-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix --with-system-readline with readline-6.3 patch 5.
	* tui/tui-io.c (tui_old_rl_getc_function, tui_old_rl_redisplay_function)
	(tui_old_rl_prep_terminal, tui_old_rl_deprep_terminal): Use rl_*_t
	types.
  

Comments

Tom Tromey June 20, 2014, 2:15 p.m. UTC | #1
>>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:

Jan> You also have to use system readline-6.3 including its upstream patch:
Jan> 	[Bug-readline] Readline-6.3 Official Patch 5
Jan> 	http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html
Jan> 	Message-ID: <140415125618.AA57598.SM@caleb.ins.cwru.edu>

What's the story with upgrading the in-tree readline?

Jan> 2014-06-20  Jan Kratochvil  <jan.kratochvil@redhat.com>

Jan> 	Fix --with-system-readline with readline-6.3 patch 5.
Jan> 	* tui/tui-io.c (tui_old_rl_getc_function, tui_old_rl_redisplay_function)
Jan> 	(tui_old_rl_prep_terminal, tui_old_rl_deprep_terminal): Use rl_*_t
Jan> 	types.

Ok.

Tom
  
Jan Kratochvil June 20, 2014, 3:45 p.m. UTC | #2
On Fri, 20 Jun 2014 16:15:47 +0200, Tom Tromey wrote:
> >>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
> 
> Jan> You also have to use system readline-6.3 including its upstream patch:
> Jan> 	[Bug-readline] Readline-6.3 Official Patch 5
> Jan> 	http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html
> Jan> 	Message-ID: <140415125618.AA57598.SM@caleb.ins.cwru.edu>
> 
> What's the story with upgrading the in-tree readline?

IMO it should be done, checking the readline/ChangeLog.gdb changes etc.
Personally I find it valid only since readline-6.3 is in Fedora Rawhide now
as Fedora readline maintainer(s) had some issues with it before:
	https://bugzilla.redhat.com/show_bug.cgi?id=1071336


> Jan> 2014-06-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
> 
> Jan> 	Fix --with-system-readline with readline-6.3 patch 5.
> Jan> 	* tui/tui-io.c (tui_old_rl_getc_function, tui_old_rl_redisplay_function)
> Jan> 	(tui_old_rl_prep_terminal, tui_old_rl_deprep_terminal): Use rl_*_t
> Jan> 	types.
> 
> Ok.

Checked in:
	840ed64d1c1335328e0c4763dc5041d3cdb85c90


Jan
  

Patch

diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index 761d203..dcccb08 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -129,10 +129,10 @@  static struct ui_file *tui_old_stderr;
 struct ui_out *tui_old_uiout;
 
 /* Readline previous hooks.  */
-static Function *tui_old_rl_getc_function;
-static VFunction *tui_old_rl_redisplay_function;
-static VFunction *tui_old_rl_prep_terminal;
-static VFunction *tui_old_rl_deprep_terminal;
+static rl_getc_func_t *tui_old_rl_getc_function;
+static rl_voidfunc_t *tui_old_rl_redisplay_function;
+static rl_vintfunc_t *tui_old_rl_prep_terminal;
+static rl_voidfunc_t *tui_old_rl_deprep_terminal;
 static int tui_old_rl_echoing_p;
 
 /* Readline output stream.