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
[email protected] | 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/barry-devel