From 14d0e6818a022b72c265f15f63c8ccc2fc8c302a Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Mon, 13 Feb 2023 06:14:40 -0800 Subject: [PATCH] Fix doc build dependencies for --with-system-readline PR build/30108 concerns building gdb documentation with --with-sytem-readline. If the in-tree readline directory is missing, though, the docs will fail to build: make[4]: Entering directory '/home/keiths/work/readline-doc-issue/linux/gdb/doc' make[4]: *** No rule to make target '../../../src/gdb/doc/../../readline/readline/doc/rluser.texi', needed by 'gdb.info'. Stop. The listed file (and hsuser.texi) are conditionally included by gdb.texinfo. When system readline is used, gdb/configure.ac will leave READLINE_TEXI_INCFLAGS empty, causing doc/Makefile.in to output a line to $BUILD/doc/GDBvn.texi with "@set SYSTEM_READLINE". This surpresses the inclusion of the missing files. They are not needed or used in this scenario. However, GDB_DOC_SOURCE_INCLUDES always lists these two files as dependencies, thus provoking the build error whenever readline/ is missing. This patch fixes this by creating (essentially) a conditional setting of the dependencies to be included from readline. --- gdb/configure | 8 ++++++-- gdb/configure.ac | 3 +++ gdb/doc/Makefile.in | 8 ++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gdb/configure b/gdb/configure index 8b2039912e7..1114bcdc0af 100755 --- a/gdb/configure +++ b/gdb/configure @@ -746,6 +746,7 @@ LIBEXPAT HAVE_LIBEXPAT JIT_READER_DIR TARGET_PTR +READLINE_DOC_SOURCE_INCLUDES READLINE_TEXI_INCFLAG READLINE_CFLAGS READLINE_DEPS @@ -11449,7 +11450,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11452 "configure" +#line 11453 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11555,7 +11556,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11558 "configure" +#line 11559 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -20793,17 +20794,20 @@ $as_echo "$gdb_cv_readline_ok" >&6; } READLINE_DEPS= READLINE_CFLAGS= READLINE_TEXI_INCFLAG= + READLINE_DOC_SOURCE_INCLUDES='$(READLINE_SYSTEM_DOC_INCLUDES)' else READLINE='$(READLINE_DIR)/libreadline.a' READLINE_DEPS='$(READLINE)' READLINE_CFLAGS='-I$(READLINE_SRC)/..' READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)' + READLINE_DOC_SOURCE_INCLUDES='$(READLINE_INTREE_DOC_INCLUDES)' fi + # Generate jit-reader.h # This is typedeffed to GDB_CORE_ADDR in jit-reader.h diff --git a/gdb/configure.ac b/gdb/configure.ac index 79eb013ce19..47e35f467f8 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -644,16 +644,19 @@ if test "$with_system_readline" = yes; then READLINE_DEPS= READLINE_CFLAGS= READLINE_TEXI_INCFLAG= + READLINE_DOC_SOURCE_INCLUDES='$(READLINE_SYSTEM_DOC_INCLUDES)' else READLINE='$(READLINE_DIR)/libreadline.a' READLINE_DEPS='$(READLINE)' READLINE_CFLAGS='-I$(READLINE_SRC)/..' READLINE_TEXI_INCFLAG='-I $(READLINE_DIR)' + READLINE_DOC_SOURCE_INCLUDES='$(READLINE_INTREE_DOC_INCLUDES)' fi AC_SUBST(READLINE) AC_SUBST(READLINE_DEPS) AC_SUBST(READLINE_CFLAGS) AC_SUBST(READLINE_TEXI_INCFLAG) +AC_SUBST(READLINE_DOC_SOURCE_INCLUDES) # Generate jit-reader.h diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in index 5d40aa229b2..110b6088905 100644 --- a/gdb/doc/Makefile.in +++ b/gdb/doc/Makefile.in @@ -121,6 +121,11 @@ PDFTEX = pdftex # Program to generate Postscript files from DVI files. DVIPS = dvips +# Readline includes. +READLINE_SYSTEM_DOC_INCLUDES = +READLINE_INTREE_DOC_INCLUDES = $(READLINE_DIR)/rluser.texi $(READLINE_DIR)/hsuser.texi +READLINE_DOC_SOURCE_INCLUDES = @READLINE_DOC_SOURCE_INCLUDES@ + # Main GDB manual # Note that this unconditionally includes the readline texi files, # even when --with-system-readline is used. This is harmless because @@ -129,8 +134,7 @@ GDB_DOC_SOURCE_INCLUDES = \ $(srcdir)/fdl.texi \ $(srcdir)/gpl.texi \ $(srcdir)/agentexpr.texi \ - $(READLINE_DIR)/rluser.texi \ - $(READLINE_DIR)/hsuser.texi + $(READLINE_DOC_SOURCE_INCLUDES) GDB_DOC_BUILD_INCLUDES = \ gdb-cfg.texi \ GDBvn.texi -- 2.30.2