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

Pedro Alves
2015-01-22T17:15:11Z

On 01/22/2015 04:26 PM, Eli Zaretskii wrote:
>> 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.

Well, I fear that the #ifdefery can bit rot just as well. So having
two places that can bitrot (configure and #ifdef) seems worse than
one.

>>
>> 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?

It's the same thing. That sets $prefer_curses:

opt_curses=no
AC_ARG_WITH(curses, AS_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)

prefer_curses=no
if test "$opt_curses" = "yes"; then
prefer_curses=yes
fi

But that doesn't mean that curses will be used. We'll again fall here:

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 if waddstr is not found, meaning curses is not really
available, even though it'd be preferred, $prefer_curses is
yes, but $curses_found is no.

Thanks,
Pedro Alves