DO NOT REPLY [Bug 4981] New: iconv confusion

samba-bugs at samba-bugs at
Tue Sep 18 16:55:05 GMT 2007

           Summary: iconv confusion
           Product: rsync
           Version: 3.0.0
          Platform: PPC
        OS/Version: Mac OS X
            Status: NEW
          Severity: normal
          Priority: P3
         Component: core
        AssignedTo: wayned at
        ReportedBy: joe07734 at
         QAContact: rsync-qa at

cvs root doesn't build for me, and it appears to be on account of some
confusion in configure and in the code regarding the iconv library.

The make dies with:

gcc -std=gnu99 -g -O2 -DMAINTAINER_MODE -DHAVE_CONFIG_H -Wall -W -I./popt  -o
mkrounding -I. ./mkrounding.c
In file included from ./rsync.h:839,
                 from ./mkrounding.c:20:
./proto.h:258: error: parse error before 'ic'

proto.h:258 is:

int iconvbufs(iconv_t ic, xbuf *in, xbuf *out, int flags);

Apparently iconv_t isn't getting defined. iconv_t is part of the iconv library
and iconv.h. In rsync.h:368 iconv.h is conditionalized by this line:

#if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
#include <iconv.h>

After a little experimentation I discovered that HAVE_ICONV_OPEN on my
configuration is undefined. I tried tracing through the configuration files but
I don't understand the logic behind the setting of HAVE_ICONV_OPEN. It's my
understanding that iconv_open is part and parcel of the iconv library, and I
don't understand why a test needs to be made. However hints at
"Solaris and HP-UX weirdness"(?)

To temporarily work around this build problem I reconfigured with
--disable-iconv, but since the offending line in proto.h isn't conditionalized
it still fails, but for a different reason.

So two problems:

1. cvs root isn't building on OS X due to HAVE_ICONV_OPEN not being set. But
iconv_open() exists, so maybe there's a problem with the configuration tests.

2. Attempting to disable iconv support via --disable-iconv fails because some
parts of the code are not conditionalized. I came across proto.h:258 and
flist.c:1649 (filesfrom_convert). There are probably others.

Configure bugmail:
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.

More information about the rsync mailing list