converters/iconv versioning
Scott Furry
scott.wl.furry at gmail.com
Wed Mar 11 00:27:48 UTC 2015
On 10/03/2015 18:05, Ben Woods wrote:
> On Wednesday, March 11, 2015, Scott Furry <scott.wl.furry at gmail.com
> <mailto:scott.wl.furry at 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
More information about the freebsd-ports
mailing list