Bug 34333 - iconv declaration inconsistent with documentation (and standard)
iconv declaration inconsistent with documentation (and standard)
Product: Red Hat Linux
Classification: Retired
Component: glibc (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
Aaron Brown
Depends On:
  Show dependency treegraph
Reported: 2001-04-02 08:13 EDT by Daniel Resare
Modified: 2007-04-18 12:32 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2001-04-02 08:13:46 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Daniel Resare 2001-04-02 08:13:42 EDT
The iconv() declaration is documented to be

       size_t iconv (iconv_t cd,
                     const char* * inbuf, size_t * inbytesleft,
                     char* * outbuf, size_t * outbytesleft);

but if you paste that declaration into a sourcefile that also includes
iconv.h and compile it you get:

iconv_decl.c:4: conflicting types for `iconv'
/usr/include/iconv.h:44: previous declaration of `iconv'

If you change your iconv() declaration removing const from 'const char
**inbuf' the snippet compiles ok. The documentation seems to be conformant
to UNIX98 (http://www.opengroup.org/onlinepubs/007908799/xsh/iconv.html)
so I think it is /usr/include/iconv.h that is in error here.
Comment 1 Jakub Jelinek 2001-04-02 08:27:25 EDT
The iconv prototype is defined in 2 places in Unix98,
but these two prototypes are inconsistent.
This has been changed later on in the Austin group drafts, see e.g.

Note You need to log in before you can comment on or make changes to this bug.