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>