NEAL, RYAN | 16 Jan 2010 01:38

Cross compiling Log4Cxx with APR/APU

 

Hello,

 

I am trying to cross compile log4cxx for the powerpc, and am running into some build errors that I can’t understand.

 

I am using APR/APU 1.3.9 – both compiled without issue.  I am having the problem that the iconv in APU is not working.  To prove that this all works I have started to try and just compile Log4cxx.  I first got an error about the charsetdecoder.   I updated the APU to have the –with-conv=/usr/include – allowing it to get the file iconv.h.   

 

Now under normal compilation (gcc 4.4) I get this error:

        then mv -f ".deps/inputstreamreader.Tpo" ".deps/inputstreamreader.Plo"; else rm -f ".deps/inputstreamreader.Tpo"; exit 1; fi

 g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -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 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I. -I. -I../../../src/main/include -I../../../src/main/include -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -I/tmp/apr-1.3.9/include -I/tmp/apr-util-1.3.9/include -I/tmp/apr-util-1.3.9/xml/expat/lib -g -O2 -MT inputstreamreader.lo -MD -MP -MF .deps/inputstreamreader.Tpo -c inputstreamreader.cpp  -fPIC -DPIC -o .libs/inputstreamreader.o

inputstreamreader.cpp: In member function 'virtual log4cxx::LogString log4cxx::helpers::InputStreamReader::read(log4cxx::helpers::Pool&)':

inputstreamreader.cpp:66: error: 'memmove' was not declared in this scope

make[3]: *** [inputstreamreader.lo] Error 1

make[3]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main/cpp'

make[2]: *** [all-recursive] Error 1

make[2]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src'

make: *** [all-recursive] Error 1

 

 

I can’t seem to find a solution online to this.  Any ideas?

 

:: Ryan Neal

 

 

:: Ryan Neal

490/279

408-774-2747

 

Curt Arnold | 16 Jan 2010 03:49
Picon
Favicon

Re: Cross compiling Log4Cxx with APR/APU


On Jan 15, 2010, at 6:38 PM, NEAL, RYAN wrote:

>  
> Hello,
>  
> I am trying to cross compile log4cxx for the powerpc, and am running into some build errors that I can’t understand.
>  
> I am using APR/APU 1.3.9 – both compiled without issue.  I am having the problem that the iconv in APU is not
working.  To prove that this all works I have started to try and just compile Log4cxx.  I first got an error
about the charsetdecoder.   I updated the APU to have the –with-conv=/usr/include – allowing it to get
the file iconv.h.   
>  
> Now under normal compilation (gcc 4.4) I get this error:
>         then mv -f ".deps/inputstreamreader.Tpo" ".deps/inputstreamreader.Plo"; else rm -f
".deps/inputstreamreader.Tpo"; exit 1; fi
>  g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\"
-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 -DHAVE_STRING_H=1
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
-DHAVE_DLFCN_H=1 -I. -I. -I../../../src/main/include -I../../../src/main/include -DLINUX=2
-D_REENTRANT -D_GNU_SOURCE -I/tmp/apr-1.3.9/include -I/tmp/apr-util-1.3.9/include
-I/tmp/apr-util-1.3.9/xml/expat/lib -g -O2 -MT inputstreamreader.lo -MD -MP -MF
.deps/inputstreamreader.Tpo -c inputstreamreader.cpp  -fPIC -DPIC -o .libs/inputstreamreader.o
> inputstreamreader.cpp: In member function 'virtual log4cxx::LogString log4cxx::helpers::InputStreamReader::read(log4cxx::helpers::Pool&)':
> inputstreamreader.cpp:66: error: 'memmove' was not declared in this scope
> make[3]: *** [inputstreamreader.lo] Error 1
> make[3]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main/cpp'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src'
> make: *** [all-recursive] Error 1
>  
>  
> I can’t seem to find a solution online to this.  Any ideas?
>  
> :: Ryan Neal
>  

Check where memmove is defined in your compile environment by doing "grep memmove /usr/include".  On gcc
4.2.1 on Mac OS/X i386 it is in string.h.  Try adding an explicit include of that file into
inputstreamreader.cpp and see if that resolves the problem.  Let the list know and so we can patch.

NEAL, RYAN | 18 Jan 2010 19:38

RE: Cross compiling Log4Cxx with APR/APU

What I had to do was add "#include <string.h>" to both
src/main/cpp/inputstreamreader.cpp and
src/main/cpp/socketoutputstream.cpp.  This made both to compile fine. 

The next snag I ran into was in the examples and test directory.  They
had problems finding stdin:
creating stream
if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -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 -DHAVE_STRING_H=1
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1  -I. -I.
-I../../../src/main/include -I../../../src/main/include  -DLINUX=2
-D_REENTRANT -D_GNU_SOURCE  -I/tmp/apr-1.3.9/include
-I/tmp/apr-util-1.3.9/include -I/tmp/apr-util-1.3.9/xml/expat/lib  -g
-O2 -MT console.o -MD -MP -MF ".deps/console.Tpo" -c -o console.o
console.cpp; \
        then mv -f ".deps/console.Tpo" ".deps/console.Po"; else rm -f
".deps/console.Tpo"; exit 1; fi
console.cpp: In function 'int main(int, char**)':
console.cpp:58: error: 'puts' was not declared in this scope
console.cpp:63: error: 'strcmp' was not declared in this scope
console.cpp:66: error: 'stderr' was not declared in this scope
console.cpp:66: error: 'stdout' was not declared in this scope
console.cpp:66: error: 'fputs' was not declared in this scope
console.cpp:69: error: 'stderr' was not declared in this scope
console.cpp:69: error: 'stdout' was not declared in this scope
console.cpp:102: error: 'stderr' was not declared in this scope
console.cpp:102: error: 'stdout' was not declared in this scope
console.cpp:104: error: 'stderr' was not declared in this scope
console.cpp:104: error: 'stdout' was not declared in this scope
console.cpp:107: error: 'stderr' was not declared in this scope
console.cpp:107: error: 'fputs' was not declared in this scope
console.cpp:110: error: 'fflush' was not declared in this scope
make[3]: *** [console.o] Error 1
make[3]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/examples/cpp'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/examples'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src'
make: *** [all-recursive] Error 1

I decided instead of searching for which include was messed up, I'd just
remove the folder from the build.  I don't need either directory.  Both
of these makefiles are made when configure is called, is there any way
that we could add something like a --no-test and a --no-example flag to
the configure?  This would help speed up the build process.  I don't
mind helping hunt down this problem too.

:: Ryan Neal

-----Original Message-----
From: Curt Arnold [mailto:curt.arnld <at> gmail.com] On Behalf Of Curt Arnold
Sent: Friday, January 15, 2010 6:49 PM
To: Log4CXX Dev
Subject: Re: Cross compiling Log4Cxx with APR/APU

On Jan 15, 2010, at 6:38 PM, NEAL, RYAN wrote:

>  
> Hello,
>  
> I am trying to cross compile log4cxx for the powerpc, and am running
into some build errors that I can't understand.
>  
> I am using APR/APU 1.3.9 - both compiled without issue.  I am having
the problem that the iconv in APU is not working.  To prove that this
all works I have started to try and just compile Log4cxx.  I first got
an error about the charsetdecoder.   I updated the APU to have the
-with-conv=/usr/include - allowing it to get the file iconv.h.   
>  
> Now under normal compilation (gcc 4.4) I get this error:
>         then mv -f ".deps/inputstreamreader.Tpo"
".deps/inputstreamreader.Plo"; else rm -f ".deps/inputstreamreader.Tpo";
exit 1; fi
>  g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -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 -DHAVE_STRING_H=1
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I. -I.
-I../../../src/main/include -I../../../src/main/include -DLINUX=2
-D_REENTRANT -D_GNU_SOURCE -I/tmp/apr-1.3.9/include
-I/tmp/apr-util-1.3.9/include -I/tmp/apr-util-1.3.9/xml/expat/lib -g -O2
-MT inputstreamreader.lo -MD -MP -MF .deps/inputstreamreader.Tpo -c
inputstreamreader.cpp  -fPIC -DPIC -o .libs/inputstreamreader.o
> inputstreamreader.cpp: In member function 'virtual log4cxx::LogString
log4cxx::helpers::InputStreamReader::read(log4cxx::helpers::Pool&)':
> inputstreamreader.cpp:66: error: 'memmove' was not declared in this
scope
> make[3]: *** [inputstreamreader.lo] Error 1
> make[3]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main/cpp'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src'
> make: *** [all-recursive] Error 1
>  
>  
> I can't seem to find a solution online to this.  Any ideas?
>  
> :: Ryan Neal
>  

Check where memmove is defined in your compile environment by doing
"grep memmove /usr/include".  On gcc 4.2.1 on Mac OS/X i386 it is in
string.h.  Try adding an explicit include of that file into
inputstreamreader.cpp and see if that resolves the problem.  Let the
list know and so we can patch.

NEAL, RYAN | 20 Jan 2010 02:15

RE: Cross compiling Log4Cxx with APR/APU

I am now getting this error:

        then mv -f ".deps/charsetdecoder.Tpo"
".deps/charsetdecoder.Plo"; else rm -f ".deps/charsetdecoder.Tpo"; exit
1; fi
 powerpc-linux-g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\"
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -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
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1
-I. -I. -I../../../src/main/include -I../../../src/main/include
-DLINUX=2 -D_REENTRANT -D_GNU_SOURCE
-I/tmp/target_filesystem/apr/include/apr-1
-I/tmp/target_filesystem/apr-util/include/apr-1 -g -O2 -MT
charsetdecoder.lo -MD -MP -MF .deps/charsetdecoder.Tpo -c
charsetdecoder.cpp  -fPIC -DPIC -o .libs/charsetdecoder.o
charsetdecoder.cpp: In static member function 'static
log4cxx::helpers::CharsetDecoderPtr
log4cxx::helpers::CharsetDecoder::getDecoder(const
log4cxx::LogString&)':
charsetdecoder.cpp:480: error: expected type-specifier before
'APRCharsetDecoder'
charsetdecoder.cpp:480: error: invalid conversion from 'int*' to 'int'
charsetdecoder.cpp:480: error:   initializing argument 1 of
'log4cxx::helpers::ObjectPtrT<T>::ObjectPtrT(const int&) [with T =
log4cxx::helpers::CharsetDecoder]'
charsetdecoder.cpp:480: error: expected ';' before 'APRCharsetDecoder'
charsetdecoder.cpp:480: error: 'APRCharsetDecoder' was not declared in
this scope
make[3]: *** [charsetdecoder.lo] Error 1
make[3]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main/cpp'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src'
make: *** [all-recursive] Error 1

The configure line is like this:

./configure --host=powerpc-linux --with-apr=/tmp/target_filesystem/apr
--with-apr-util=/tmp/target_filesystem/apr-util CC=powerpc-linux-gcc
CXX=powerpc-linux-g++

APR and APR-util are compiled with the same compiler and roughly the
same params.  Any ideas as to why I would be getting this error?  

I've already added "#include <string.h>" to logstring.h (it is used in
both inputstreamreader.cpp and socketoutputstream.cpp).

:: Ryan Neal

-----Original Message-----
From: Curt Arnold [mailto:curt.arnld <at> gmail.com] On Behalf Of Curt Arnold
Sent: Friday, January 15, 2010 6:49 PM
To: Log4CXX Dev
Subject: Re: Cross compiling Log4Cxx with APR/APU

On Jan 15, 2010, at 6:38 PM, NEAL, RYAN wrote:

>  
> Hello,
>  
> I am trying to cross compile log4cxx for the powerpc, and am running
into some build errors that I can't understand.
>  
> I am using APR/APU 1.3.9 - both compiled without issue.  I am having
the problem that the iconv in APU is not working.  To prove that this
all works I have started to try and just compile Log4cxx.  I first got
an error about the charsetdecoder.   I updated the APU to have the
-with-conv=/usr/include - allowing it to get the file iconv.h.   
>  
> Now under normal compilation (gcc 4.4) I get this error:
>         then mv -f ".deps/inputstreamreader.Tpo"
".deps/inputstreamreader.Plo"; else rm -f ".deps/inputstreamreader.Tpo";
exit 1; fi
>  g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -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 -DHAVE_STRING_H=1
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -I. -I.
-I../../../src/main/include -I../../../src/main/include -DLINUX=2
-D_REENTRANT -D_GNU_SOURCE -I/tmp/apr-1.3.9/include
-I/tmp/apr-util-1.3.9/include -I/tmp/apr-util-1.3.9/xml/expat/lib -g -O2
-MT inputstreamreader.lo -MD -MP -MF .deps/inputstreamreader.Tpo -c
inputstreamreader.cpp  -fPIC -DPIC -o .libs/inputstreamreader.o
> inputstreamreader.cpp: In member function 'virtual log4cxx::LogString
log4cxx::helpers::InputStreamReader::read(log4cxx::helpers::Pool&)':
> inputstreamreader.cpp:66: error: 'memmove' was not declared in this
scope
> make[3]: *** [inputstreamreader.lo] Error 1
> make[3]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main/cpp'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src/main'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/tmp/apache-log4cxx-0.10.0/src'
> make: *** [all-recursive] Error 1
>  
>  
> I can't seem to find a solution online to this.  Any ideas?
>  
> :: Ryan Neal
>  

Check where memmove is defined in your compile environment by doing
"grep memmove /usr/include".  On gcc 4.2.1 on Mac OS/X i386 it is in
string.h.  Try adding an explicit include of that file into
inputstreamreader.cpp and see if that resolves the problem.  Let the
list know and so we can patch.

Aleksandr Vinokurov | 22 Jan 2010 17:11
Picon

Re: Crashes on exit() from multithreaded program using log4cxx


Hello, fellows,

I have this issue in situation when exitting an app that manually load  
a shared object that links to lilog4cxx.so and then manually unload it  
right before performing an exit() call. Quite similar to what Rhosyn  
says. For me it appears on Itanium arch that runs HP-UX. But I think  
that Itanium ABI's __cxa_atexit() addresses this issue. I have no  
ability to check it for GCC (see
http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1264172397670+28353475&threadId=1370786) 
, but native HP-UX C++ compiler make it right.

So I consider using -fuse-cxa-atexit for g++ will help.

Sorry if my approach fails -- I try to post a reply for the email I  
have yanked from the archive to keep the hier.

With best wishes,
Aleksandr Vinokurov.

On Tue, 20 Jan 2009 00:06:23 GMT, Rhosyn wrote:
> Curt Arnold wrote:
> >
> > On Jan 16, 2009, at 9:34 AM, Rhosyn wrote:
> >
> >> Dear all,
> >>
> >>
> >> The crashes
> >> ===========
> >>
> >> We would like to share with you some patches to log4cxx  we have  
> found
> >> useful in our environment.
> >>
> >> Our product  (a Linux platform server product, compiled with g++  
> 4.3.x)
> >> started suffering from crashes during (what should have been)  
> graceful
> >> process exit ("exit(0);")- after we replaced our old logging  
> framework
> >> with a log4cxx backend.
> >>
> >> Commonly we would see segmentation faults in:
> >>
> >> * log4cxx::helpers::ObjectPtrBase()
> >> * log4cxx::LogManager::getLoggerLS()
> >>
> >>
> >>
> >> The cause
> >> =========
> >>
> >> We eventually traced this issue to the pervasive pattern of  
> (mis)usage
> >> of singletons in the log4cxx code.
> >>
> >> The log4cxx library uses the "Meyers" singleton pattern, first
> >> popularised in Scott Meyers "Effective C++" (Item 47 in the 2nd  
> edition
> >> of that book):
> >>
> >> Thing & getThingSingleton()
> >> {
> >>    static Thing t;
> >>    return t;
> >> }
> >>
> >>
> >> For many years, the above pattern was considered "best practice"  
> for
> >> using Singletons in C++ - and was generally safe for most popular
> >> compiler implementations and most applications.
> >>
> >> Unfortunately, this recommendation is not actually guaranteed to be
> >> thread-safe for construction or destruction - something which is  
> alluded
> >> to on Scott Meyers' own "Errata List for Effective C++, Second  
> Edition"
> >> as described here: http://www.aristeia.com/BookErrata/ec++2e-errata.html
> >>
> >>
> >> The nub of the problem is that when a process calls "exit(0);" or
> >> similar, one thread will start running, in order, any user- 
> registered
> >> "atexit" functions.
> >>
> >> Along with these, the compiler will execute the (conceptually  
> similar)
> >> compiler-registered functions which invoke the destructors of any  
> static
> >> file or function scope objects (also in order - the reverse order  
> to
> >> static object construction).
> >>
> >> Unfortunately, other threads may still be in the process of  
> running -and
> >> logging, perhaps using the static objects - during or after the
> >> execution of their destructors - thus opening the door to a bunch  
> of
> >> potential SEGFAULTs.
> >>
> >>
> >> Solutions
> >> =========
> >>
> >> Andrei Alexandrescu goes into a lot of detail about this C++ design
> >> problem in chapter 6 of "Modern C++ design" and proposes two  
> elegant
> >> solutions -  a "Phoenix Singleton" or  SingletonHolder class.
> >>
> >> The patches attached are somewhat less elegant than either of
> >> Alexandrescus suggestions (we were pressed for time and needed a  
> quick
> >> fix in order to ship on time).
> >>
> >> However, the patches supplied are simple, pragmatic - and did  
> appear to
> >> hold up during our testing (testing which was readily producing the
> >> crashes described earlier, before we patched).
> >>
> >> In summary, the patches change Singleton functions to work thus:
> >>
> >> Thing & getThingSingleton()
> >> {
> >>    static Thing * t = new t;
> >>    return *t;
> >> }
> >>
> >> Of course, the downside of this flavour of fix is that:
> >>
> >> * the static objects - now allocated on the heap with new() -  
> never get
> >> their destructors run.  AFAIK, no other resources (other than  
> memory)
> >> appear to be leaked (due to this patch).  Fortunately, as we are  
> running
> >> on a modern OS, we are able to rely on the OS to reclaim the  
> process
> >> memory on process exit - thus nullifying this particular issue  
> for our
> >> product (but not neccessarily so in other environments).
> >>
> >> * The patch doesn't address the startup/initialisation race  (for  
> that
> >> we'd need a multiple-locked singleton initialization pattern  
> everywhere
> >> log4cxx creates a singleton) - we're less worried about that at  
> this
> >> stage as we have yet to notice any issues.
> >>
> >> apr
> >> ===
> >>
> >> Finally we couldn't work out how it could ever be safe to  
> deiinitialise
> >> APR if there was even the slightest chance that any extant log4cxx
> >> objects existed (accessible to any thread).  We therefore removed  
> the
> >> apr_terminate() call in APRInitializer::~APRInitializer()
> >>
> >>
> >> Future
> >> ======
> >>
> >> I would like to respecfully suggest that there is a discussion in  
> the
> >> log4cxx community about  the best way of reworking the use of  
> singletons
> >> in the log4cxx library  (multithreaded-safe construction and
> >> destruction)  - and that we look to moving towards a different  
> pattern
> >> of usage.
> >>
> >> I suspect Alexandrescu's "singleton holder" idea might form a  
> part of a
> >> possible solution - but it's not the only game in town.
> >>
> >>
> >>
> >
> > Thanks for the analysis.
> >
> > There is a bit of tension here since those who are running under
> > BoundsChecker, Valgrind, Purify et al will then complain about  
> leaks.
> > Probably the best approach is to try to isolate the singleton  
> pattern
> > into a preprocessor macro and then allow the user to select what
> > singleton pattern they'd like to use.
> >
> > Please file this as a bug report at http://issues.apache.org/jira
> >
>
>
> Thanks; JIRA issue LOGCXX-322 raised, as requested.
>
>
> I totally see your point re: BoundsChecker, Valgrind etc. and also re:
> isolating the behaviour.
>
> A more sophisticated patch than my first cut is definitely the order  
> of
> the day!

carnold | 25 Jan 2010 00:58
Picon
Favicon

svn commit: r902680 - in /logging/log4cxx/trunk: pom.xml src/changes/changes.xml

Author: carnold
Date: Sun Jan 24 23:58:20 2010
New Revision: 902680

URL: http://svn.apache.org/viewvc?rev=902680&view=rev
Log:
LOGCXX-350: Issue tracking page does not link to project

Modified:
    logging/log4cxx/trunk/pom.xml
    logging/log4cxx/trunk/src/changes/changes.xml

Modified: logging/log4cxx/trunk/pom.xml
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/pom.xml?rev=902680&r1=902679&r2=902680&view=diff
==============================================================================
--- logging/log4cxx/trunk/pom.xml (original)
+++ logging/log4cxx/trunk/pom.xml Sun Jan 24 23:58:20 2010
 <at>  <at>  -9,7 +9,7  <at>  <at> 
   <url>http://logging.apache.org:80/log4cxx</url>
   <issueManagement>
     <system>JIRA</system>
-    <url>http://issues.apache.org/jira/</url>
+    <url>http://issues.apache.org/jira/browse/LOGCXX</url>
   </issueManagement>
 <mailingLists>
    <mailingList>

Modified: logging/log4cxx/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/changes/changes.xml?rev=902680&r1=902679&r2=902680&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/changes/changes.xml (original)
+++ logging/log4cxx/trunk/src/changes/changes.xml Sun Jan 24 23:58:20 2010
 <at>  <at>  -53,6 +53,7  <at>  <at> 
 <action issue="LOGCXX-303">DOMConfigurator does not set ErrorHandler.</action>
 <action issue="LOGCXX-304">BasicConfigurator::configure results in writer not set warning.</action>
 <action issue="LOGCXX-340">Transcoder::encodeCharsetName bungles encoding</action>
+<action issue="LOGCXX-350">Issue tracking page does not link to project</action>
 </release>
 <release version="0.10.0" date="2008-04-03" description="First Apache release">
 <action issue="LOGCXX-2">logger.h includes config.h</action>

carnold | 25 Jan 2010 01:26
Picon
Favicon

svn commit: r902682 - in /logging/log4cxx/trunk: pom.xml src/changes/changes.xml

Author: carnold
Date: Mon Jan 25 00:26:27 2010
New Revision: 902682

URL: http://svn.apache.org/viewvc?rev=902682&view=rev
Log:
LOGCXX-350: Reverting since patch broke issue links on changes.html

Modified:
    logging/log4cxx/trunk/pom.xml
    logging/log4cxx/trunk/src/changes/changes.xml

Modified: logging/log4cxx/trunk/pom.xml
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/pom.xml?rev=902682&r1=902681&r2=902682&view=diff
==============================================================================
--- logging/log4cxx/trunk/pom.xml (original)
+++ logging/log4cxx/trunk/pom.xml Mon Jan 25 00:26:27 2010
 <at>  <at>  -9,7 +9,7  <at>  <at> 
   <url>http://logging.apache.org:80/log4cxx</url>
   <issueManagement>
     <system>JIRA</system>
-    <url>http://issues.apache.org/jira/browse/LOGCXX</url>
+    <url>http://issues.apache.org/jira/</url>
   </issueManagement>
 <mailingLists>
    <mailingList>

Modified: logging/log4cxx/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/changes/changes.xml?rev=902682&r1=902681&r2=902682&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/changes/changes.xml (original)
+++ logging/log4cxx/trunk/src/changes/changes.xml Mon Jan 25 00:26:27 2010
 <at>  <at>  -53,7 +53,6  <at>  <at> 
 <action issue="LOGCXX-303">DOMConfigurator does not set ErrorHandler.</action>
 <action issue="LOGCXX-304">BasicConfigurator::configure results in writer not set warning.</action>
 <action issue="LOGCXX-340">Transcoder::encodeCharsetName bungles encoding</action>
-<action issue="LOGCXX-350">Issue tracking page does not link to project</action>
 </release>
 <release version="0.10.0" date="2008-04-03" description="First Apache release">
 <action issue="LOGCXX-2">logger.h includes config.h</action>

carnold | 25 Jan 2010 01:32
Picon
Favicon

svn commit: r902683 - in /logging/log4cxx/trunk/src: changes/changes.xml site/apt/download.apt

Author: carnold
Date: Mon Jan 25 00:32:45 2010
New Revision: 902683

URL: http://svn.apache.org/viewvc?rev=902683&view=rev
Log:
LOGCXX-351: Download page does not have link to KEYS file

Modified:
    logging/log4cxx/trunk/src/changes/changes.xml
    logging/log4cxx/trunk/src/site/apt/download.apt

Modified: logging/log4cxx/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/changes/changes.xml?rev=902683&r1=902682&r2=902683&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/changes/changes.xml (original)
+++ logging/log4cxx/trunk/src/changes/changes.xml Mon Jan 25 00:32:45 2010
 <at>  <at>  -43,16 +43,17  <at>  <at> 
 <action issue="LOGCXX-284">Unit tests fail to compile with xlc_r on AIX</action>
 <action issue="LOGCXX-285">LevelRangeFilter has default value for acceptOnMatch that is different
from log4j</action>
 <action issue="LOGCXX-286">gcc 4.3 requires #include &lt;cstring&gt; when using memcpy and
related.</action> 
-<action issue="LOGCXX-288">Unnecessary trailing semi-colons after LOG4CXX_INFO et al in docs,
examples and tests.<action>
-<action issue="LOGCXX-291">Tab characters are not recognized in property files.<action>
-<action issue="LOGCXX-292">Value continuation does not properly handle CRLF in property files.<action>
-<action issue="LOGCXX-293">Escape sequences not recognized in property files.<action>
+<action issue="LOGCXX-288">Unnecessary trailing semi-colons after LOG4CXX_INFO et al in docs,
examples and tests.</action>
+<action issue="LOGCXX-291">Tab characters are not recognized in property files.</action>
+<action issue="LOGCXX-292">Value continuation does not properly handle CRLF in property files.</action>
+<action issue="LOGCXX-293">Escape sequences not recognized in property files.</action>
 <action issue="LOGCXX-298">SMTPAppender does not build properly with autotools.</action>
 <action issue="LOGCXX-299">odbcappender.cpp does not compile with unixODBC on linux.</action>
 <action issue="LOGCXX-300">ODBCAppender connection settings broken (or just have changed).</action>
 <action issue="LOGCXX-303">DOMConfigurator does not set ErrorHandler.</action>
 <action issue="LOGCXX-304">BasicConfigurator::configure results in writer not set warning.</action>
 <action issue="LOGCXX-340">Transcoder::encodeCharsetName bungles encoding</action>
+<action issue="LOGCXX-351">Download page does not have link to KEYS file</action>
 </release>
 <release version="0.10.0" date="2008-04-03" description="First Apache release">
 <action issue="LOGCXX-2">logger.h includes config.h</action>

Modified: logging/log4cxx/trunk/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/site/apt/download.apt?rev=902683&r1=902682&r2=902683&view=diff
==============================================================================
--- logging/log4cxx/trunk/src/site/apt/download.apt (original)
+++ logging/log4cxx/trunk/src/site/apt/download.apt Mon Jan 25 00:32:45 2010
 <at>  <at>  -35,9 +35,23  <at>  <at> 
 | Apache log4cxx 0.10.0 (zip)      |
{{{http://www.apache.org/dyn/closer.cgi/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip}
apache-log4cxx-0.10.0.zip}} |
{{{http://www.apache.org/dist/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip.md5}
apache-log4cxx-0.10.0.zip.md5}} |
{{{http://www.apache.org/dist/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip.asc}
apache-log4cxx-0.10.0.zip.asc}} |
 *-------------------------+---------+----------+-----------+

-  Please read {{{http://httpd.apache.org/dev/verification.html}Verifying Apache HTTP Server Releases}}
-   for more information on why you should verify our releases.
+    It is essential that you verify the integrity of the downloaded files using the PGP or MD5 signatures. 
+    Please read {{{http://httpd.apache.org/dev/verification.html}Verifying Apache HTTP Server
Releases}} for more
+    information on why you should verify our releases.

+    The PGP signatures can be verified using PGP or GPG. First download the {{{http://www.apache.org/dist/logging/KEYS}KEYS}}
+    as well as the asc signature file for the relevant distribution. Make sure you get these files from the 
+    {{{http://www.apache.org/dist/logging/}main distribution directory}}, rather than from a mirror.
Then verify the signatures using
+
+---
+% gpg --import KEYS
+% gpg --verify log4cxx-0.10.0.tar.gz.asc
+---
+
+        * log4cxx-0.10.0 is signed by Curt Arnold 2E114322
+
+    Alternatively, you can verify the MD5 signature on the files. A unix program called md5 or md5sum is
included 
+    in many unix distributions.

 * Previous Releases


Gmane