On Sat, Aug 4, 2018 at 11:17 PM Jonathan Nieder <jrnie...@gmail.com> wrote:
> > utf8.c:486:28: warning: passing 'iconv_ibp *' (aka 'const char **') to 
> > parameter
> >       of type 'char **' discards qualifiers in nested pointer types
> >       [-Wincompatible-pointer-types-discards-qualifiers]
>
> Oh, good catch!  POSIX documents iconv has having signature
>
>         size_t iconv(iconv_t cd, char **restrict inbuf,
>                size_t *restrict inbytesleft, char **restrict outbuf,
>                size_t *restrict outbytesleft);
>
> config.mak.uname contains
>
>         ifeq ($(uname_S),FreeBSD)
>                 NEEDS_LIBICONV = YesPlease
>                 OLD_ICONV = YesPlease
>
> So it looks like FreeBSD has modernized and we need to make that
> conditional in config.mak.uname on $(uname_R).  Do you know which
> version of FreeBSD changed the signature?  Care to write a patch?

Unfortunately, I don't know in which version of FreeBSD that changed.
I rarely fire up that virtual machine (only in rare cases when I want
to verify some change to Git also builds/runs/whatever on FreeBSD), so
I haven't really been paying attention to it. I know that this warning
was present in 11.1 (and I'm guessing all of 11.x), but I don't recall
if it manifested in 10.x. I guess it shouldn't be too hard to install
various versions of FreeBSD to determine this, but it would be quite
time-consuming. I'm not very familiar with FreeBSD-land, but I would
hope there would be an easier way to determine when it changed than by
installing old versions. Does FreeBSD have historic package
repositories (containing headers, for instance) which one could
consult instead?

Reply via email to