The failure in test9 is likely happening on the following line:

  std::locale localeUS(LOCALE_US);

where LOCALE_US = "en_US". Do you have any documentation on the names
recognized for std::locale constructors on Solaris?


I am pretty sure en_US is a valid locale. I went to the /usr/lib/ locale and
there is a en_US directory. Any other thoughts on what to try??



Nope. That isn't an essential test, I'd just comment it out in the CPPUNIT_TEST block at the top and we will dig into it later.





When I tried to build without the -Dlogchar=utf8 -Dhas.wchar_t=0
command
lines, I got the following link error.


build-shortsocketserver: [mkdir] Created dir: /export/disk10/cppProjects/logging-log4cxx/build/debug/shared/ shortsocketser ver_obj [cc] 2 total files to be compiled. [cc] Starting link [cc] Undefined first referenced [cc] symbol in file [cc] log4cxx::helpers::UnicodeHelper::encodeWide(unsigned int, wchar_t*)/export/disk10/cppProjects/logging-log4cxx/build/debug/ shared/liblo g4cxx.so [cc] log4cxx::helpers::UnicodeHelper::decodeWide(wchar_t const*&, wchar_t const*)/export/disk10/cppProjects/logging-log4cxx/build/debug/shared/ liblog4 cxx.so

Any suggestions on what I could do to resolve this?




Those methods have been suppressed since you specified that the
compiler did not have a wchar_t type with the -Dhas.wchar_t=0.  I
assume that Solaris gcc actually has a wide character type and you
could turn it on and the problem would go away.  However, I should
review shortsocketserver to see why it doesn't build when wchar_t is
not present.


I got this error when I used the ant -Dapr.dir=/usr/local/apr -Dcppunit.dir=/export/disk10/cppProjects/cppunit-1.10.2

Looking at the unicodehelper.cc, I'm not sure the __STD_ISO_10646__ is
defined. I think this is why then encodeWide is not defined. I did a
search through various header files and the STD_ISO_10646 was no where to be
found.




__STD_ISO_10646__ is defined by the compiler when the wchar_t contains UCS-4 code points (that is 4 byte unicode scalar values). encodeWide and decodeWide will be compiled for WIN32 (where wchar_t is UTF-16) and when __STD_ISO_10646__ is defined (where wchar_t is UCS-4). Do you have a description of wchar_t is on that platform and how it can be detected.

Reply via email to