Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Mar 2015 18:19:37 -0600
From:      Scott Furry <scott.wl.furry@gmail.com>
To:        Ben Woods <woodsb02@gmail.com>
Cc:        "freebsd-ports@freebsd.org" <freebsd-ports@freebsd.org>
Subject:   Re: converters/iconv versioning
Message-ID:  <54FF8A19.3090700@gmail.com>
In-Reply-To: <CAOc73CAGxtx%2B2P-c4aX3E_PidZ7ThW85zni1_cvgutqhzfYQrw@mail.gmail.com>
References:  <54FF75A2.4020803@gmail.com> <CAOc73CAGxtx%2B2P-c4aX3E_PidZ7ThW85zni1_cvgutqhzfYQrw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 10/03/2015 18:05, Ben Woods wrote:
> On Wednesday, March 11, 2015, Scott Furry <scott.wl.furry@gmail.com 
> <mailto:scott.wl.furry@gmail.com>> wrote:
>
>     I am running into in a situation with other C code where a call to
>     iconv and passing in a non-const source buffer would result in a
>     build warning. Others who use the same code on other platforms do
>     not report this warning.
>
>     In tracking down the issue, I have discovered that there may be a
>     difference in the iconv.h header file used on FreeBSD versus
>     Mac/Linux et al.
>
>     http://www.opensource.apple.com/source/libiconv/libiconv-30/install/iconv.h
>     line 48 shows that call to iconv
>     -----
>     size_t iconv (iconv_t /*cd*/,
>         char ** __restrict /*inbuf*/,  size_t * __restrict
>     /*inbytesleft*/,
>         char ** __restrict /*outbuf*/, size_t * __restrict
>     /*outbytesleft*/);
>     ----
>
>     /usr/local/include/iconv.h, line 83, shows something rather different.
>     Even the commentary around the code is different.
>     -----
>     extern size_t iconv (iconv_t cd, const char* * inbuf, size_t
>     *inbytesleft, char* * outbuf, size_t *outbytesleft);
>     -----
>
>
>     My question is this, are we using a different or FreeBSD-specific
>     version of iconv?
>
>     S
>
>
> FreeBSD has its own native iconv (since FreeBSD 10).
>
> More details (including reference to commits) here:
> https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/using-iconv.html
>
> Regards,
> Ben
Okay...different iconv. But what's the reason for change?
And does this one function call really need to be const? Is the 
__restrict in the type not used on FreeBSD?

Seems strange to differ on a gnu-based.
S



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54FF8A19.3090700>