Building the Barry code from CVS on FreeBSD works *almost* out of the box, but 
there are two small nits, both related to iconv(3).

1) On FreeBSD, iconv(3) lives in /usr/local/include/iconv.h and 
/usr/local/lib/libiconv.{a|so}. It appears that in Linux, it's part of libc. 
When I generated the configure script using buildgen.sh on my FreeBSD 7.0 
system, the script ran without any errors, but it didn't put any special 
directives in the resulting Makefiles to help locate the iconv(3) header file 
and library. I got around this by tweaking the Makefiles a little.

2) The iconv.cc code calls iconv(3) as follows:

                iconv(cd, NULL, NULL, NULL, NULL);      // reset cd's state
                size_t status = iconv(cd, (char**)&in, &inbytesleft, &out, 
&outbytesleft);

The problem is, on FreeBSD at least, the second argument to iconv(3) is 
declared in iconv.h to be a const char **, not a char **. This produces the 
following compiler error:

conv.cc: In member function 'std::string Barry::IConverter::Convert(void*, 
const std::string&) const':
iconv.cc:68: error: invalid conversion from 'char**' to 'const char**'
iconv.cc:68: error:   initializing argument 2 of 'size_t libiconv(void*, const 
char**, size_t*, char**, size_t*)'

Changing the cast from (char **) to (const char **) fixed the problem for me.

I'm not sure of the right way to resolve these portability issues. It was easy 
enough for me to work around them, but I know how to read the compiler/linker 
errors and deal with them in short order. Others may not be so lucky. :)

-Bill

-- 
=============================================================================
-Bill Paul            (510) 749-2329 | Senior Engineer, Master of Unix-Fu
                 wp...@windriver.com | Wind River Systems
=============================================================================
   "I put a dollar in a change machine. Nothing changed." - George Carlin
=============================================================================


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to