This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Fix readline for platforms without <wchar.h>
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Mark Kettenis <kettenis at chello dot nl>
- Cc: gdb-patches at sources dot redhat dot com, ezannoni at redhat dot com, chet at po dot cwru dot edu
- Date: Mon, 26 May 2003 11:38:02 -0400
- Subject: Re: Fix readline for platforms without <wchar.h>
- References: <200305251129.h4PBTfrV010272@elgar.kettenis.dyndns.org>
Mark Kettenis writes:
> [ Chet, I don't now if you ever received the change that was
> origionally made to the copy of readline in the GDB tree. Just in
> case you intend to incorporate such a change in the next release of
> readline, this patch solves a problem with it. ]
>
> There is a problem with one of our local GDB fixes for readline:
>
> 2003-03-03 Kris Warkentin <kewarken@qnx.com>
>
> * aclocal.m4: Cause wcwidth check to substitute
> HAVE_WCWIDTH for building.
> * Makefile.in: Add wcwidth object to lib if required.
> * shlib/Makefile.in: Likewise.
> * configure: Regenerate.
>
> The problem is that this patch is that support/wcwidth.c
> unconditionally includes <wchar.h>. Compilation of support/wcwidth.c
> will therefore fail on platforms that don't have <wchar.h>, such as
> OpenBSD 3.0.
>
> The attached patch fixes this. I chose to fix this in aclocal.m4
> instead of using HAVE_WCHAR_H in support/wcwidth.c since it keeps that
> file unchanged from the upstream sources.
>
> OK to check this in Elena?
Ok with me.
thanks
elena
>
> Mark
>
> Index: ChangeLog.gdb
> from Mark Kettenis <kettenis@gnu.org>
>
> * aclocal.m4: Don't add wcwidth.o if we don't have wchar.h.
> * configure: Regenerate.
>
> Index: aclocal.m4
> ===================================================================
> RCS file: /cvs/src/src/readline/aclocal.m4,v
> retrieving revision 1.6
> diff -u -p -r1.6 aclocal.m4
> --- aclocal.m4 3 Mar 2003 18:52:27 -0000 1.6
> +++ aclocal.m4 25 May 2003 11:26:57 -0000
> @@ -1654,13 +1654,13 @@ AC_CHECK_HEADERS(langinfo.h)
>
> AC_CHECK_FUNC(mbrtowc, AC_DEFINE(HAVE_MBRTOWC))
> AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
> -AC_CHECK_FUNC(wcwidth, have_wcwidth=yes)
> -if test "$have_wcwidth" = yes; then
> - AC_DEFINE(HAVE_WCWIDTH)
> - AC_SUBST(WCWIDTH_OBJ,)
> +AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
> +if test "$ac_cv_func_wcwidth" = no && test "$ac_cv_header_wchar_h" = yes; then
> + WCWIDTH_OBJ=wcwidth.o
> else
> - AC_SUBST(WCWIDTH_OBJ,wcwidth.o)
> + WCWIDTH_OBJ=
> fi
> +AC_SUBST(WCWIDTH_OBJ)
>
> AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
> [AC_TRY_RUN([