#18440: libiconv: iconv() function prototype differences -------------------------------------+-------------------------------------- Reporter: ryandesign@… | Owner: ryandesign@… Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.7.0 Keywords: | Port: libiconv -------------------------------------+-------------------------------------- libiconv defines the second parameter of the iconv function differently on different operating systems. Specifically libiconv tries to mimic the behavior of the system's iconv, whatever that may be. The author of libiconv [http://lists.gnu.org/archive/html/bug-gnu- libiconv/2008-06/msg00001.html appears to intend] this behavior. However libiconv in MacPorts seems to have some peculiarities of its own in how and when that function's definition changes. In ${prefix}/include/iconv.h we see the different definitions of the iconv function. MacBook Pro Core 2 Duo, Tiger[[br]] libiconv @1.12_2 (non-universal): {{{ extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); }}} MacBook Pro Core 2 Duo, Tiger[[br]] libiconv @1.12_2+darwin_8+universal (4-arch) before r46078 / using MacPorts built-in universal variant: {{{ extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); }}} MacBook Pro Core 2 Duo, Tiger[[br]] libiconv @1.12_2+universal (4-arch) after r46078 / using muniversal portgroup: {{{ #ifndef __LP64__ extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); #else /* __LP64__ */ extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); #endif /* __LP64__ */ }}} I'm not certain why the function is different on 32-bit an 64-bit. -- Ticket URL: <http://trac.macports.org/ticket/18440> MacPorts <http://www.macports.org/> Ports system for Mac OS