This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCHSET] [4/4] Fix various issue in TUI


> Date: Thu, 22 Jan 2015 12:07:26 +0000
> From: Pedro Alves <palves@redhat.com>
> CC: gdb-patches@sourceware.org
> 
> >>> > > On 12/31/2014 05:56 PM, Eli Zaretskii wrote:
> >>>> > > > Well, one patch is Windows-specific after all.  This patch makes sure
> >>>> > > > windows-termcap is not compiled when GDB is linked against ncurses,
> >>> > > 
> >>> > > ...
> >>> > > 
> >>>> > > > and also makes the file a no-op should it compile in that
> >>>> > > > configuration.  
> >>> > > 
> >>> > > With the configure.ac change, how can that happen?
> >> > 
> >> > It shouldn't.
> 
> I'd have preferred to drop that hunk then.  It just seems to
> be either pointless or hiding some problem with the
> configure.ac check.

At the very least how about an #error in those conditions?  Otherwise,
any bit-rot (something that happens now and then with the MinGW build)
will silently do the wrong thing.

>  "This patch makes sure windows-termcap is not compiled
>   when GDB is linked against ncurses".
> 
> But that doesn't look to be what the patch does.
> 
> I asked about $curses_found before because AFAICS, it's quite
> possible for $prefer_curses to be set, but $curses_found
> to be "no".  By default, we try configuring the TUI:
> 
>  # Enable TUI.
>  AC_ARG_ENABLE(tui,
>  AS_HELP_STRING([--enable-tui], [enable full-screen terminal user interface (TUI)]),
>    [case $enableval in
>      yes | no | auto)
>        ;;
>      *)
>        AC_MSG_ERROR([bad value $enableval for --enable-tui]) ;;
>    esac],enable_tui=auto)
> 
> And that always results in $prefer_curses set to yes:
> 
>  # For the TUI, we need enhanced curses functionality.
>  if test x"$enable_tui" != xno; then
>    prefer_curses=yes
>  fi
> 
> 
> But then we check if curses is really found:
> 
>  curses_found=no
>  if test x"$prefer_curses" = xyes; then
>  ...
>    AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
> 
>    if test "$ac_cv_search_waddstr" != no; then
>      curses_found=yes
>    fi
>  fi
> 
> 
> And then it's $curses_found that we check:
> 
> # Check whether we should enable the TUI, but only do so if we really
> # can.
> if test x"$enable_tui" != xno; then
>   if test -d $srcdir/tui; then
>     if test "$curses_found" != no; then
> ...
>     else
>       if test x"$enable_tui" = xyes; then
> 	AC_MSG_ERROR([no enhanced curses library found; disable TUI])
>       else
> 	AC_MSG_WARN([no enhanced curses library found; disabling TUI])
>       fi
>     fi
>   fi
> fi
> 
> 
> So shouldn't the right check be this:
> 
>     if test x"$curses_found" != xyes; then
>       ac_cv_search_tgetent="none required"
>       CONFIG_OBS="$CONFIG_OBS windows-termcap.o"
>     fi ;;
> 
> ?

I'm not sure.  GDB can be configured --without-tui --with-curses.
Does your logic work then?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]