The Samba-Bugzilla – Bug 4981
Last modified: 2008-07-26 10:14:15 UTC
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,
./proto.h:258: error: parse error before 'ic'
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
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 configure.in 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.
I checked in some fixes to get the non-iconv code working again.
If you know a way to do iconv conversions on a mac, let me know. If not, I may check into it before too long.