The fix worked. I am able to build log4cxx on AIX. Thanks for your help. Regards, Krishna
-----Original Message----- From: Curt Arnold [mailto:[EMAIL PROTECTED] Sent: Monday, May 12, 2008 11:14 PM To: Log4CXX User Subject: Re: log4cxx 0.10.0 build problem on AIX On May 12, 2008, at 2:43 AM, Chakravarthula, Krishnamurthy wrote: > Experts, > > Since I am getting error with gcc compiler, I am trying with > default compiler (/usr/vac/bin/xlc_r) on AIX for build. I am able to > build APR and APR-UTIL but I get following error during make of > log4cxx. Please help. > > source='helpers/datetimedateformattestcase.cpp' > object='datetimedateform > attestcase.o' libtool=no DEPDIR=.deps depmode=aix /bin/sh ../../../ > depcomp xlC > _r -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" > -DPACKAGE_S > TRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"log4cxx\" -DVERSION= > \"0.10.0\" - > DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 - > DHAVE_STDLIB_H=1 -DHAV > E_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 - > DHAVE_INTTYPES_H=1 -DHAVE_STD > INT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I. -I. -I../../../src/ > main/include > -I../../../src/main/include -U__STR__ -D_THREAD_SAFE -D_USE_IRS - > D_LARGEFILE64_ > SOURCE -I/tmp/apr/include -I/tmp/apr-util/include -I/tmp/apr-util/ > xml/expat/l > ib -g -c -o datetimedateformattestcase.o `test -f 'helpers/ > datetimedateformatte > stcase.cpp' || echo './'`helpers/datetimedateformattestcase.cpp > "helpers/datetimedateformattestcase.cpp", line 186.14: 1540-0218 (S) > The call do > es not match any parameter list for "put". > "/usr/vacpp/include/xloctime.t", line 159.5: 1540-1283 (I) > "std::time_put<char,s > td::ostreambuf_iterator<char,std::char_traits<char> > > >::put(ostreambuf_iterator > <char,std::char_traits<char> >, ios_base &, char, const tm *, const > char *, cons > t char *) const" is not a viable candidate. > "helpers/datetimedateformattestcase.cpp", line 186.35: 1540-0256 (I) > A parameter > of type "char" cannot be initialized with an expression of type > "const tm *". > "/usr/vacpp/include/xloctime", line 178.13: 1540-1283 (I) > "std::time_put<char,st > d::ostreambuf_iterator<char,std::char_traits<char> > > >::put(std::ostreambuf_iter > ator<char,std::char_traits<char> >, ios_base &, char, const tm *, > char, char) co > nst" is not a viable candidate. > "helpers/datetimedateformattestcase.cpp", line 186.35: 1540-0256 (I) > A parameter > of type "char" cannot be initialized with an expression of type > "const tm *". > make: 1254-004 The error code from the last command is 1. > > Microsoft Visual C++ 6.0 shipped with an non-standard implementation of std::time_put<T> and std::use_facet. In the log4cxx implementation this is not currently checked by #if defined(_MSC_VER) && _MSC_VER < 1300 However in the unit tests, this was checked by #if defined(_USELOC) which is macro defined by VC6 to be used instead std::use_facet. It appears that _USELOC is defined in your build which cause the VC6 specific code path to be used instead of the C++ standard code path to be used and the calling parameters don't match since VC6 left out the fill character. Try the following change and see if that addresses the issue. Index: src/test/cpp/helpers/datetimedateformattestcase.cpp =================================================================== --- src/test/cpp/helpers/datetimedateformattestcase.cpp (revision 654826) +++ src/test/cpp/helpers/datetimedateformattestcase.cpp (working copy) @@ -181,7 +181,7 @@ // output the using STL // std::basic_ostringstream<logchar> buffer; -#if defined(_USEFAC) +#if defined(_MSC_VER) && _MSC_VER < 1300 _USEFAC(locale, std::time_put<logchar>) .put(buffer, buffer, &date, fmt.c_str(), fmt.c_str() + fmt.length()); #else