Timothy Reaves wrote:
/sw/lib/odcctools/bin/ld: multiple definitions of symbol (anonymous namespace)::ucs4_codeset support/.libs/libsupport.a(unicode.o) definition of (anonymous namespace)::ucs4_codeset in section (__DATA,__data) support/.libs/libsupport.a(docstream.o) definition of (anonymous namespace)::ucs4_codeset in section (__DATA,__data)

This is again the non invisible anonymous namespace bitting you. What version of gcc do you have? Or maybe it is a linker issue?

Anyway, this simple patch will solve it. Any objection Georg? Or would you prefer to reuse the ones defined in unicode.C?

Abdel.
Index: docstream.C
===================================================================
--- docstream.C (revision 15352)
+++ docstream.C (working copy)
@@ -20,9 +20,9 @@
 namespace {
 
 #ifdef WORDS_BIGENDIAN
-char const * ucs4_codeset = "UCS-4BE";
+char const * ucs4_iconv_codeset = "UCS-4BE";
 #else
-char const * ucs4_codeset = "UCS-4LE";
+char const * ucs4_iconv_codeset = "UCS-4LE";
 #endif
 char const * utf8_codeset = "UTF-8";
 
@@ -53,7 +53,7 @@
                : base(refs)
        {
                if (inout & std::ios_base::in) {
-                       in_cd_ = iconv_open(ucs4_codeset, utf8_codeset);
+                       in_cd_ = iconv_open(ucs4_iconv_codeset, utf8_codeset);
                        if (in_cd_ == (iconv_t)(-1)) {
                                fprintf(stderr, "Error %d returned from 
iconv_open(in_cd_): %s\n",
                                        errno, strerror(errno));
@@ -63,7 +63,7 @@
                } else
                        in_cd_ = (iconv_t)(-1);
                if (inout & std::ios_base::out) {
-                       out_cd_ = iconv_open(utf8_codeset, ucs4_codeset);
+                       out_cd_ = iconv_open(utf8_codeset, ucs4_iconv_codeset);
                        if (out_cd_ == (iconv_t)(-1)) {
                                fprintf(stderr, "Error %d returned from 
iconv_open(out_cd_): %s\n",
                                        errno, strerror(errno));

Reply via email to