From a0b6775162d98ce94a068487bec278ac0aa46305 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Jul 05 2007 12:13:42 +0000 Subject: - Link with libreadline provided by the operating system. --- diff --git a/gdb-6.6-readline-system.patch b/gdb-6.6-readline-system.patch new file mode 100644 index 0000000..fd51c90 --- /dev/null +++ b/gdb-6.6-readline-system.patch @@ -0,0 +1,354 @@ +diff -u -rup gdb-6.6-orig/configure gdb-6.6/configure +--- gdb-6.6-orig/configure 2006-11-15 00:26:39.000000000 +0100 ++++ gdb-6.6/configure 2007-07-04 21:04:45.000000000 +0200 +@@ -895,14 +895,14 @@ build_tools="build-texinfo build-byacc b + + # these libraries are used by various programs built for the host environment + # +-host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber" ++host_libs="intl mmalloc libiberty opcodes bfd tcl tk itcl libgui zlib libcpp libdecnumber" + + # these tools are built for the host environment + # Note, the powerpc-eabi build depends on sim occurring before gdb in order to + # know that we are building the simulator. + # binutils, gas and ld appear in that order because it makes sense to run + # "make check" in that particular order. +-host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" ++host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" + + # libgcj represents the runtime libraries only used by gcj. + libgcj="target-libffi \ +@@ -1110,7 +1110,7 @@ case "${host}" in + noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv" + ;; + powerpc-*-beos*) +- noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline" ++ noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu" + ;; + esac + +@@ -1290,7 +1290,7 @@ case "${target}" in + noconfigdirs="$noconfigdirs target-newlib" + case "${host}" in + *-*-cygwin*) ;; # keep gdb and readline +- *) noconfigdirs="$noconfigdirs gdb readline" ++ *) noconfigdirs="$noconfigdirs gdb" + ;; + esac + ;; +@@ -1408,11 +1408,11 @@ case "${target}" in + ;; + ia64*-*-elf*) + # No gdb support yet. +- noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb" ++ noconfigdirs="$noconfigdirs mmalloc libgui itcl gdb" + ;; + ia64*-**-hpux*) + # No gdb or ld support yet. +- noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld" ++ noconfigdirs="$noconfigdirs ${libgcj} mmalloc libgui itcl gdb ld" + ;; + i370-*-opened*) + ;; +diff -u -rup gdb-6.6-orig/configure.in gdb-6.6/configure.in +--- gdb-6.6-orig/configure.in 2006-12-18 08:22:58.000000000 +0100 ++++ gdb-6.6/configure.in 2007-07-04 21:04:43.000000000 +0200 +@@ -123,7 +123,7 @@ build_tools="build-texinfo build-byacc b + + # these libraries are used by various programs built for the host environment + # +-host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber" ++host_libs="intl mmalloc libiberty opcodes bfd tcl tk itcl libgui zlib libcpp libdecnumber" + + # these tools are built for the host environment + # Note, the powerpc-eabi build depends on sim occurring before gdb in order to +@@ -294,7 +294,7 @@ case "${host}" in + noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv" + ;; + powerpc-*-beos*) +- noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline" ++ noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu" + ;; + esac + +@@ -466,7 +466,7 @@ case "${target}" in + noconfigdirs="$noconfigdirs target-newlib" + case "${host}" in + *-*-cygwin*) ;; # keep gdb and readline +- *) noconfigdirs="$noconfigdirs gdb readline" ++ *) noconfigdirs="$noconfigdirs gdb" + ;; + esac + ;; +@@ -584,11 +584,11 @@ case "${target}" in + ;; + ia64*-*-elf*) + # No gdb support yet. +- noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb" ++ noconfigdirs="$noconfigdirs mmalloc libgui itcl gdb" + ;; + ia64*-**-hpux*) + # No gdb or ld support yet. +- noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld" ++ noconfigdirs="$noconfigdirs ${libgcj} mmalloc libgui itcl gdb ld" + ;; + i370-*-opened*) + ;; +diff -u -rup gdb-6.6-orig/gdb/Makefile.in gdb-6.6/gdb/Makefile.in +--- gdb-6.6-orig/gdb/Makefile.in 2007-07-04 20:50:06.000000000 +0200 ++++ gdb-6.6/gdb/Makefile.in 2007-07-04 20:58:56.000000000 +0200 +@@ -123,10 +123,10 @@ BFD_SRC = $(srcdir)/$(BFD_DIR) + BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC) + + # Where is the READLINE library? Typically in ../readline. +-READLINE_DIR = ../readline +-READLINE = $(READLINE_DIR)/libreadline.a +-READLINE_SRC = $(srcdir)/$(READLINE_DIR) +-READLINE_CFLAGS = -I$(READLINE_SRC)/.. ++# `readline' is required on the host. ++READLINE = -lreadline ++# Workaround a bug linking `bfd/elf-bfd.h' without `-I../bfd/..'. ++READLINE_CFLAGS = -I$(srcdir)/.. + + # Where is expat? This will be empty if expat was not available. + LIBEXPAT = @LIBEXPAT@ +@@ -595,9 +594,9 @@ remote_sim_h = $(INCLUDE_DIR)/gdb/remote + demangle_h = $(INCLUDE_DIR)/demangle.h + obstack_h = $(INCLUDE_DIR)/obstack.h + opcode_m68hc11_h = $(INCLUDE_DIR)/opcode/m68hc11.h +-readline_h = $(READLINE_SRC)/readline.h +-readline_tilde_h = $(READLINE_SRC)/tilde.h +-readline_history_h = $(READLINE_SRC)/history.h ++readline_h = ++readline_tilde_h = ++readline_history_h = + frv_desc_h = $(OPCODES_SRC)/frv-desc.h + sh_opc_h = $(OPCODES_SRC)/sh-opc.h + gdb_callback_h = $(INCLUDE_DIR)/gdb/callback.h +diff -u -rup gdb-6.6-orig/gdb/configure gdb-6.6/gdb/configure +--- gdb-6.6-orig/gdb/configure 2007-07-04 20:50:06.000000000 +0200 ++++ gdb-6.6/gdb/configure 2007-07-04 21:03:52.000000000 +0200 +@@ -5697,6 +5697,61 @@ echo "$as_me: error: no termcap library + { (exit 1); exit 1; }; } + fi + ++# `-lreadline' is provided specifically by `Makefile.in'. ++saved_LIBS="$LIBS" ++LIBS="-lreadline $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ main() ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++ { { echo "$as_me:$LINENO: error: no readline library found" >&5 ++echo "$as_me: error: no readline library found" >&2;} ++ { (exit 1); exit 1; }; } ++ ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS="$saved_LIBS" ++ + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" +diff -u -rup gdb-6.6-orig/gdb/configure.ac gdb-6.6/gdb/configure.ac +--- gdb-6.6-orig/gdb/configure.ac 2007-07-04 20:50:06.000000000 +0200 ++++ gdb-6.6/gdb/configure.ac 2007-07-04 21:02:41.000000000 +0200 +@@ -321,6 +321,14 @@ if test "$ac_cv_search_tgetent" = no; th + AC_MSG_ERROR([no termcap library found]) + fi + ++# `-lreadline' is provided specifically by `Makefile.in'. ++saved_LIBS="$LIBS" ++LIBS="-lreadline $LIBS" ++AC_TRY_LINK(,[ main() ],,[ ++ AC_MSG_ERROR([no readline library found]) ++]) ++LIBS="$saved_LIBS" ++ + AC_LIB_HAVE_LINKFLAGS([expat], [], [#include "expat.h"], + [XML_Parser p = XML_ParserCreate (0);]) + if test "$HAVE_LIBEXPAT" != yes; then +diff -u -ru gdb-6.6-orig/gdb/doc/Makefile.in gdb-6.6/gdb/doc/Makefile.in +--- gdb-6.6-orig/gdb/doc/Makefile.in 2006-05-05 20:26:11.000000000 +0200 ++++ gdb-6.6/gdb/doc/Makefile.in 2007-07-05 11:58:30.000000000 +0200 +@@ -58,13 +58,14 @@ + + # Where is the source dir for the READLINE library doc? + # Traditionally readline is in .. or . +-READLINE_DIR = ${gdbdir}/../readline/doc ++# `readline' is required on the host. ++#READLINE_DIR = ${gdbdir}/../readline/doc + + # The GDB/MI docs come from a sibling directory ../mi + GDBMI_DIR = ${gdbdir}/mi + + SET_TEXINPUTS = \ +- TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(READLINE_DIR):$(GDBMI_DIR):$$TEXINPUTS ++ TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(GDBMI_DIR):$$TEXINPUTS + + # Files which should be generated via 'info' and installed by 'install-info' + INFO_DEPS = gdb.info gdbint.info stabs.info annotate.info +@@ -100,9 +101,7 @@ + GDB_DOC_SOURCE_INCLUDES = \ + $(srcdir)/fdl.texi \ + $(srcdir)/gpl.texi \ +- $(srcdir)/agentexpr.texi \ +- $(READLINE_DIR)/rluser.texi \ +- $(READLINE_DIR)/inc-hist.texinfo ++ $(srcdir)/agentexpr.texi + GDB_DOC_BUILD_INCLUDES = \ + gdb-cfg.texi \ + GDBvn.texi +@@ -299,7 +298,7 @@ + + # GDB MANUAL: info file + gdb.info: ${GDB_DOC_FILES} +- $(MAKEINFO) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) \ ++ $(MAKEINFO) -I ${GDBMI_DIR} -I $(srcdir) \ + -o gdb.info $(srcdir)/gdb.texinfo + + # GDB MANUAL: roff translations +@@ -375,7 +374,7 @@ + # GDB MANUAL: HTML file + + gdb_toc.html: ${GDB_DOC_FILES} +- $(MAKEHTML) $(MAKEHTMLFLAGS) -I ${READLINE_DIR} -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo ++ $(MAKEHTML) $(MAKEHTMLFLAGS) -I ${GDBMI_DIR} -I $(srcdir) $(srcdir)/gdb.texinfo + + # Clean these up before each run. Avoids a catch 22 with not being + # able to re-generate these files (to fix a corruption) because these +diff -u -ru gdb-6.6-orig/gdb/doc/gdb.texinfo gdb-6.6/gdb/doc/gdb.texinfo +--- gdb-6.6-orig/gdb/doc/gdb.texinfo 2007-07-04 20:50:06.000000000 +0200 ++++ gdb-6.6/gdb/doc/gdb.texinfo 2007-07-05 13:07:55.000000000 +0200 +@@ -153,8 +153,8 @@ + * GDB Bugs:: Reporting bugs in @value{GDBN} + * Formatting Documentation:: How to format and print @value{GDBN} documentation + +-* Command Line Editing:: Command Line Editing +-* Using History Interactively:: Using History Interactively ++* Command Line Editing: (rluserman). Command Line Editing ++* Using History Interactively: (history). Using History Interactively + * Installing GDB:: Installing GDB + * Maintenance Commands:: Maintenance Commands + * Remote Protocol:: GDB Remote Serial Protocol +@@ -15728,7 +15728,7 @@ + Show whether command line editing is enabled. + @end table + +-@xref{Command Line Editing}, for more details about the Readline ++@xref{Command Line Editing, , , rluserman, GNU Readline Library}, for more details about the Readline + interface. Users unfamiliar with @sc{gnu} Emacs or @code{vi} are + encouraged to read that chapter. + +@@ -15743,7 +15743,8 @@ + + @value{GDBN} uses the @sc{gnu} History library, a part of the Readline + package, to provide the history facility. @xref{Using History +-Interactively}, for the detailed description of the History library. ++Interactively, , , history, GNU History Library}, for the detailed description ++of the History library. + + To issue a command to @value{GDBN} without affecting certain aspects of + the state which is seen by users, prefix it with @samp{server }. This +@@ -15794,7 +15795,7 @@ + @end table + + History expansion assigns special meaning to the character @kbd{!}. +-@xref{Event Designators}, for more details. ++@xref{Event Designators, , , history, GNU History Library}, for more details. + + @cindex history expansion, turn on/off + Since @kbd{!} is also the logical not operator in C, history expansion +@@ -16867,7 +16868,7 @@ + @cindex TUI key bindings + + The TUI installs several key bindings in the readline keymaps +-(@pxref{Command Line Editing}). ++(@pxref{Command Line Editing, , , rluserman, GNU Readline Library}). + They allow to leave or enter in the TUI mode or they operate + directly on the TUI layout and windows. The TUI also provides + a @emph{SingleKey} keymap which binds several keys directly to +@@ -21934,15 +21935,6 @@ + things without first using the debugger to find the facts. + @end itemize + +-@c The readline documentation is distributed with the readline code +-@c and consists of the two following files: +-@c rluser.texinfo +-@c inc-hist.texinfo +-@c Use -I with makeinfo to point to the appropriate directory, +-@c environment var TEXINPUTS with TeX. +-@include rluser.texi +-@include inc-hist.texinfo +- + + @node Formatting Documentation + @appendix Formatting Documentation +@@ -22111,9 +22103,6 @@ + @item gdb-@value{GDBVN}/opcodes + source for the library of opcode tables and disassemblers + +-@item gdb-@value{GDBVN}/readline +-source for the @sc{gnu} command-line interface +- + @item gdb-@value{GDBVN}/glob + source for the @sc{gnu} filename pattern-matching subroutine + +@@ -22145,7 +22134,7 @@ + correct value by examining your system.) + + Running @samp{configure @var{host}} and then running @code{make} builds the +-@file{bfd}, @file{readline}, @file{mmalloc}, and @file{libiberty} ++@file{bfd}, @file{mmalloc}, and @file{libiberty} + libraries, then @code{gdb} itself. The configured source files, and the + binaries, are left in the corresponding source directories. + +@@ -22170,7 +22159,7 @@ + that subdirectory. That is usually not what you want. In particular, + if you run the first @code{configure} from the @file{gdb} subdirectory + of the @file{gdb-@var{version-number}} directory, you will omit the +-configuration of @file{bfd}, @file{readline}, and other sibling ++configuration of @file{bfd}, and other sibling + directories of the @file{gdb} subdirectory. This leads to build errors + about missing include files such as @file{bfd/bfd.h}. + diff --git a/gdb.spec b/gdb.spec index 37c9bc5..f6f3250 100644 --- a/gdb.spec +++ b/gdb.spec @@ -11,7 +11,7 @@ Name: gdb Version: 6.6 # The release always contains a leading reserved number, start it at 1. -Release: 18%{?dist} +Release: 19%{?dist} License: GPL Group: Development/Debuggers @@ -357,8 +357,13 @@ Patch256: gdb-6.6-bz233852-attach-signalled.patch Patch257: gdb-6.6-bz237572-ppc-atomic-sequence-upstream.patch Patch258: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch +# Link with libreadline provided by the operating system. +Patch261: gdb-6.6-readline-system.patch + BuildRequires: ncurses-devel glibc-devel gcc make gzip texinfo dejagnu gettext BuildRequires: flex bison sharutils expat-devel +Requires: readline +BuildRequires: readline-devel %define multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{multilib_64_archs} sparc ppc @@ -505,6 +510,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch257 -p1 %patch258 -p1 %patch260 -p1 +%patch261 -p1 # Change the version that gets printed at GDB startup, so it is RedHat # specific. @@ -517,6 +523,9 @@ _FOO rm -f gdb/doc/*.info rm -f gdb/doc/*.info-* +# Force the use of system readline includes as we link with the system readline. +rm -rf readline + %build # Identify the build directory with the version of gdb as well as the @@ -654,6 +663,9 @@ fi # don't include the files in include, they are part of binutils %changelog +* Thu Jul 5 2007 Jan Kratochvil - 6.6-19 +- Link with libreadline provided by the operating system. + * Tue Jun 26 2007 Jan Kratochvil - 6.6-18 - Fix PPC software watchpoints active while stepping atomic instr. (BZ 237572).