[Build failure] chartset.c build failure: iconv 2nd argument type problem

Pierre Muller muller@ics.u-strasbg.fr
Mon Mar 23 17:27:00 GMT 2009


Yes, it fixes the compilation failure for me,

thanks for the fact reaction.


Pierre Muller
Pascal language support maintainer for GDB




> -----Message d'origine-----
> De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Tom Tromey
> Envoyé : Monday, March 23, 2009 5:04 PM
> À : Pierre Muller
> Cc : gdb-patches@sourceware.org
> Objet : Re: [Build failure] chartset.c build failure: iconv 2nd
> argument type problem
> 
> >>>>> "Pierre" == Pierre Muller <muller@ics.u-strasbg.fr> writes:
> 
> Pierre>   On cygwin, the current iconv function has a (const char **)
> Pierre> type for the second argument, whereas other implementations
> Pierre> seem to be using (char **) type.
> 
> Oops, I'm sorry about breaking the build for you.
> 
> Pierre> Tom, could you please take a look at this?
> 
> Please try the appended patch.  If this works for you, I will check it
> in.
> 
> Tom
> 
> diff --git a/gdb/charset.c b/gdb/charset.c
> index 5efb849..3c56613 100644
> --- a/gdb/charset.c
> +++ b/gdb/charset.c
> @@ -86,6 +86,9 @@
>  #undef iconv
>  #undef iconv_close
> 
> +#undef ICONV_CONST
> +#define ICONV_CONST const
> +
>  iconv_t
>  iconv_open (const char *to, const char *from)
>  {
> @@ -109,7 +112,7 @@ iconv_close (iconv_t arg)
>  }
> 
>  size_t
> -iconv (iconv_t ucs_flag, char **inbuf, size_t *inbytesleft,
> +iconv (iconv_t ucs_flag, const char **inbuf, size_t *inbytesleft,
>         char **outbuf, size_t *outbytesleft)
>  {
>    if (ucs_flag)
> @@ -440,7 +443,7 @@ convert_between_encodings (const char *from, const
> char *to,
>        outp = obstack_base (output) + old_size;
>        outleft = space_request;
> 
> -      r = iconv (desc, &inp, &inleft, &outp, &outleft);
> +      r = iconv (desc, (ICONV_CONST char **) &inp, &inleft, &outp,
> &outleft);
> 
>        /* Now make sure that the object on the obstack only includes
>  	 bytes we have converted.  */
> @@ -580,7 +583,8 @@ wchar_iterate (struct wchar_iterator *iter,
>        size_t num;
>        gdb_wchar_t result;
> 
> -      size_t r = iconv (iter->desc, (char **) &iter->input, &iter-
> >bytes,
> +      size_t r = iconv (iter->desc,
> +			(ICONV_CONST char **) &iter->input, &iter->bytes,
>  			&outptr, &out_avail);
>        if (r == (size_t) -1)
>  	{



More information about the Gdb-patches mailing list