You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-user@logging.apache.org by Bernd Prager <be...@prager.ws> on 2007/11/13 23:11:46 UTC

another attempt to get cygwin working

Hi,

I tried again to make a cygwin compilation of the latest svn branch.

I am using the latest cygwin version:
CYGWIN_NT-5.1 NY026WRRGC1 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin

Since I got linker errors related to apr components the last time I decided
to compile apr and apr-util from scratch.
Here is exactly what I did:

wget http://www.axint.net/apache/apr/apr-1.2.11.tar.gz
tar -xzf apr-1.2.11.tar.gz 
cd apr-1.2.11
./configure --enable-threads 
make
make install
cd ..
wget http://www.axint.net/apache/apr/apr-util-1.2.10.tar.bz2
tar -xjf apr-util-1.2.10.tar.bz2 
cd apr-util-1.2.10
./configure --with-apr=/usr/local/apr
make
make install
cd ..
svn co https://svn.apache.org/repos/asf/logging/log4cxx/trunk
mv trunk/ log4cxx
cd log4cxx/
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
make

All apr and apr-util components compile without error and threads are
clearly enabled.

Compiling log4cxx still breaks with the same errors:

Making all in src
make[1]: Entering directory `/home/me/log4cxx/src'
Making all in main
make[2]: Entering directory `/home/me/log4cxx/src/main'
Making all in cpp
make[3]: Entering directory `/home/me/log4cxx/src/main/cpp'
/bin/sh ../../../libtool --tag=CXX   --mode=compile 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 -DHAVE_UNISTD_H=1
-DHAVE_IO_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_SYSLOG=1 -DHAVE_GETHOSTBYNAME=1
-DHAVE_SETSOCKOPT=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_FTIME=1 -DHAVE_SETENV=1
-I. -I../../../src/main/include -I../../../src/main/include  -DLOG4CXX
-mfpmath=sse -msse2 -mmmx   -DCYGWIN  -I/usr/local/apr/include/apr-1  
-I/usr/local/apr/include/apr-1   -g -O2 -MT thread.lo -MD -MP -MF
.deps/thread.Tpo -c -o thread.lo thread.cpp
 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 -DHAVE_UNISTD_H=1 -DHAVE_IO_H=1 -DHAVE_ALLOCA_H=1
-DHAVE_SYSLOG=1 -DHAVE_GETHOSTBYNAME=1 -DHAVE_SETSOCKOPT=1
-DHAVE_GETTIMEOFDAY=1 -DHAVE_FTIME=1 -DHAVE_SETENV=1 -I.
-I../../../src/main/include -I../../../src/main/include -DLOG4CXX
-mfpmath=sse -msse2 -mmmx -DCYGWIN -I/usr/local/apr/include/apr-1
-I/usr/local/apr/include/apr-1 -g -O2 -MT thread.lo -MD -MP -MF
.deps/thread.Tpo -c thread.cpp  -DDLL_EXPORT -DPIC -o .libs/thread.o
thread.cpp: In member function `void
log4cxx::helpers::Thread::run(void*(*)(log4cxx::helpers::log4cxx_thread_t*,
void*), void*)':
thread.cpp:69: error: `apr_threadattr_create' undeclared (first use this
function)
thread.cpp:69: error: (Each undeclared identifier is reported only once for
each function it appears in.)
thread.cpp:78: error: `apr_thread_create' undeclared (first use this
function)
thread.cpp: In static member function `static void*
log4cxx::helpers::Thread::launcher(log4cxx::helpers::log4cxx_thread_t*,
void*)':
thread.cpp:100: error: `apr_thread_exit' undeclared (first use this
function)
thread.cpp: In member function `void log4cxx::helpers::Thread::join()':
thread.cpp:117: error: `apr_thread_join' undeclared (first use this
function)
make[3]: *** [thread.lo] Error 1
make[3]: Leaving directory `/home/me/log4cxx/src/main/cpp'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/me/log4cxx/src/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/me/log4cxx/src'
make: *** [all-recursive] Error 1

Has anybody recently been successful in compiling log4cxx under cygwin?

The README still states:
Supported OS
============
* Windows (MSVC 6.0, MSVC 7.1 or Cygwin)

-- Bernd Prager


Re: another attempt to get cygwin working

Posted by Curt Arnold <ca...@apache.org>.
On Nov 13, 2007, at 4:11 PM, Bernd Prager wrote:

> Hi,
>
> I tried again to make a cygwin compilation of the latest svn branch.
>
> I am using the latest cygwin version:
> CYGWIN_NT-5.1 NY026WRRGC1 1.5.24(0.156/4/2) 2007-01-31 10:57 i686  
> Cygwin
>
> Since I got linker errors related to apr components the last time I  
> decided
> to compile apr and apr-util from scratch.
> Here is exactly what I did:
>

> wget http://www.axint.net/apache/apr/apr-1.2.11.tar.gz
> tar -xzf apr-1.2.11.tar.gz
> cd apr-1.2.11
> ./configure --enable-threads
> make
> make install
> cd ..
> wget http://www.axint.net/apache/apr/apr-util-1.2.10.tar.bz2
> tar -xjf apr-util-1.2.10.tar.bz2
> cd apr-util-1.2.10
> ./configure --with-apr=/usr/local/apr
> make
> make install
> cd ..
> svn co https://svn.apache.org/repos/asf/logging/log4cxx/trunk
> mv trunk/ log4cxx
> cd log4cxx/
> ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
> make
>
> All apr and apr-util components compile without error and threads are
> clearly enabled.
>
> Compiling log4cxx still breaks with the same errors:
>
> Making all in src
> make[1]: Entering directory `/home/me/log4cxx/src'
> Making all in main
> make[2]: Entering directory `/home/me/log4cxx/src/main'
> Making all in cpp
> make[3]: Entering directory `/home/me/log4cxx/src/main/cpp'
> /bin/sh ../../../libtool --tag=CXX   --mode=compile 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 -DHAVE_UNISTD_H=1
> -DHAVE_IO_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_SYSLOG=1 -DHAVE_GETHOSTBYNAME=1
> -DHAVE_SETSOCKOPT=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_FTIME=1 - 
> DHAVE_SETENV=1
> -I. -I../../../src/main/include -I../../../src/main/include  -DLOG4CXX
> -mfpmath=sse -msse2 -mmmx   -DCYGWIN  -I/usr/local/apr/include/apr-1
> -I/usr/local/apr/include/apr-1   -g -O2 -MT thread.lo -MD -MP -MF
> .deps/thread.Tpo -c -o thread.lo thread.cpp
>  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 -DHAVE_UNISTD_H=1 -DHAVE_IO_H=1 -DHAVE_ALLOCA_H=1
> -DHAVE_SYSLOG=1 -DHAVE_GETHOSTBYNAME=1 -DHAVE_SETSOCKOPT=1
> -DHAVE_GETTIMEOFDAY=1 -DHAVE_FTIME=1 -DHAVE_SETENV=1 -I.
> -I../../../src/main/include -I../../../src/main/include -DLOG4CXX
> -mfpmath=sse -msse2 -mmmx -DCYGWIN -I/usr/local/apr/include/apr-1
> -I/usr/local/apr/include/apr-1 -g -O2 -MT thread.lo -MD -MP -MF
> .deps/thread.Tpo -c thread.cpp  -DDLL_EXPORT -DPIC -o .libs/thread.o
> thread.cpp: In member function `void
> log4cxx::helpers::Thread::run(void*(*) 
> (log4cxx::helpers::log4cxx_thread_t*,
> void*), void*)':
> thread.cpp:69: error: `apr_threadattr_create' undeclared (first use  
> this
> function)
> thread.cpp:69: error: (Each undeclared identifier is reported only  
> once for
> each function it appears in.)
> thread.cpp:78: error: `apr_thread_create' undeclared (first use this
> function)
> thread.cpp: In static member function `static void*
> log4cxx::helpers::Thread::launcher 
> (log4cxx::helpers::log4cxx_thread_t*,
> void*)':
> thread.cpp:100: error: `apr_thread_exit' undeclared (first use this
> function)
> thread.cpp: In member function `void log4cxx::helpers::Thread::join 
> ()':
> thread.cpp:117: error: `apr_thread_join' undeclared (first use this
> function)
> make[3]: *** [thread.lo] Error 1
> make[3]: Leaving directory `/home/me/log4cxx/src/main/cpp'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/home/me/log4cxx/src/main'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/me/log4cxx/src'
> make: *** [all-recursive] Error 1
>
> Has anybody recently been successful in compiling log4cxx under  
> cygwin?
>
> The README still states:
> Supported OS
> ============
> * Windows (MSVC 6.0, MSVC 7.1 or Cygwin)
>
> -- Bernd Prager
>

The compile messages are consistent with APR_HAS_THREADS not being  
true.  From a quick Google search it looks like pthreads are  
available for Cygwin, but something is apparently missing in APR from  
detecting that they are there.  However, I didn't dig into it.

I've committed two sets of changes that allowed me to compile and  
link log4cxx against the apr and apr-util currently distributed with  
cygwin (which defines APR_HAS_PTHREADS = 0) using the autotools  
chain.  Without APR_HAS_THREADS several useful appenders disappear  
(AsyncAppender, TelnetAppender, SocketAppender, etc), but seems to  
pass the unit tests and the examples seem to work.