From 86c6b807f50ecec84e55007bf6cb6e54c159727b Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 21 Apr 2019 13:58:49 -0600 Subject: [PATCH] Require readline 7 or newer This changes gdb to require readline 7 or newer at build time. gdb/ChangeLog 2019-08-12 Tom Tromey * configure: Rebuild. * configure.ac: Check for readline 7. * NEWS: Mention readline 7 requirement. * README: Update. gdb/doc/ChangeLog 2019-08-12 Tom Tromey * gdb.texinfo (Configure Options): Document minimum version of readline. --- gdb/ChangeLog | 7 +++++++ gdb/NEWS | 5 +++++ gdb/README | 3 ++- gdb/configure | 32 ++++++++++++++++++++++++++++++++ gdb/configure.ac | 14 ++++++++++++++ gdb/doc/ChangeLog | 5 +++++ gdb/doc/gdb.texinfo | 3 ++- 7 files changed, 67 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e13415518f..12998aa2b1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-08-12 Tom Tromey + + * configure: Rebuild. + * configure.ac: Check for readline 7. + * NEWS: Mention readline 7 requirement. + * README: Update. + 2019-08-12 Tom Tromey * mingw-hdep.c (gdb_select): Remove readline hack. diff --git a/gdb/NEWS b/gdb/NEWS index fa01adf6e8..462247f486 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -299,6 +299,11 @@ maint show test-options-completion-result Using another implementation of the make program or an earlier version of GNU make to build GDB or GDBserver is not supported. +* Building GDB now requires GNU readline >= 7.0. + + GDB now bundles GNU readline 8.0, but if you choose to use + --with-system-readline, only readline >= 7.0 can be used. + *** Changes in GDB 8.3 * GDB and GDBserver now support access to additional registers on diff --git a/gdb/README b/gdb/README index 8a91aab2a4..8883a8a09e 100644 --- a/gdb/README +++ b/gdb/README @@ -439,7 +439,8 @@ more obscure GDB `configure' options are not listed here. `--with-system-readline' Use the readline library installed on the host, rather than the - library supplied as part of GDB. + library supplied as part of GDB. Readline 7 or newer is required; + this is enforced by the build system. `--with-system-zlib Use the zlib library installed on the host, rather than the diff --git a/gdb/configure b/gdb/configure index 9206f0e7f8..2832c83617 100755 --- a/gdb/configure +++ b/gdb/configure @@ -8952,6 +8952,38 @@ fi if test "$with_system_readline" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system readline is new enough" >&5 +$as_echo_n "checking whether system readline is new enough... " >&6; } +if ${gdb_cv_readline_ok+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +#if RL_VERSION_MAJOR < 7 +# error "readline version 7 required" +#endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gdb_cv_readline_ok=yes +else + gdb_cv_readline_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_readline_ok" >&5 +$as_echo "$gdb_cv_readline_ok" >&6; } + if test "$gdb_cv_readline_ok" != yes; then + as_fn_error $? "system readline is not new enough" "$LINENO" 5 + fi + READLINE=-lreadline READLINE_DEPS= READLINE_CFLAGS= diff --git a/gdb/configure.ac b/gdb/configure.ac index 05b722b7f1..0979109d97 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -581,6 +581,20 @@ AC_ARG_WITH([system-readline], [use installed readline library])]) if test "$with_system_readline" = yes; then + AC_CACHE_CHECK([whether system readline is new enough], + [gdb_cv_readline_ok], + [AC_TRY_COMPILE( + [#include +#include ], + [#if RL_VERSION_MAJOR < 7 +# error "readline version 7 required" +#endif], + gdb_cv_readline_ok=yes, + gdb_cv_readline_ok=no)]) + if test "$gdb_cv_readline_ok" != yes; then + AC_MSG_ERROR([system readline is not new enough]) + fi + READLINE=-lreadline READLINE_DEPS= READLINE_CFLAGS= diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 5b55e0593c..971e9c311a 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2019-08-12 Tom Tromey + + * gdb.texinfo (Configure Options): Document minimum version of + readline. + 2019-08-09 Alan Hayward * gdb.texinfo (AArch64 Pointer Authentication): Fix typo. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index c8ca757989..523e3d0bfe 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -36905,7 +36905,8 @@ details. @item --with-system-readline Use the readline library installed on the host, rather than the -library supplied as part of @value{GDBN}. +library supplied as part of @value{GDBN}. Readline 7 or newer is +required; this is enforced by the build system. @item --with-system-zlib Use the zlib library installed on the host, rather than the library -- 2.34.1