eventlog-0.2.12

Eventlog jest potrzebny do instalacji Syslog-ng. Poniżej znajduje się zapis sesji kompilacji Eventlog 0.2.12. Skrypt w załączeniu.


soft@wega:~/syslog-ng% ./drf_eventlog-0.2.12_conf 
cc: Sun C 5.10 SunOS_sparc 2009/06/03
usage: cc [ options] files.  Use 'cc -flags' for details
MANPATH=/usr/local/share/man:/usr/local/man:/usr/share/man
PATH=/usr/local/bin:/usr/bin:/opt/SUNWspro/bin:/usr/ccs/bin
CFLAGS=-fast
CPPFLAGS=-I/usr/local/include
CXXFLAGS=-fast
LDFLAGS=-L/usr/local/lib -R/usr/local/lib
=============================================
dmake clean [y|n] ?
n

Konfiguracja:


=============================================
configure [y|n] ?
y
...
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
=============================================

Kompilacja:


dmake [y|n] ?
y
dmake  all-recursive
Making all in src
source='evtrec.c' object='evtrec.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ../libtool --tag=CC    --mode=compile cc -DHAVE_CONFIG_H -I. -I..    -I/usr/local/include  -fast -c -o evtrec.lo evtrec.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -fast -c evtrec.c  -KPIC -DPIC -o .libs/evtrec.o
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -fast -c evtrec.c -o evtrec.o >/dev/null 2>&1
...
/bin/bash ../libtool --tag=CC    --mode=link cc  -fast   -L/usr/local/lib -R/usr/local/lib -o libevtlog.la -rpath /usr/local/lib evtrec.lo evtfmt.lo evtout.lo evtstr.lo  evtctx.lo evttags.lo evtsyslog.lo  
libtool: link: cc -G -h libevtlog.so.0 -o .libs/libevtlog.so.0.0.0  .libs/evtrec.o .libs/evtfmt.o .libs/evtout.o .libs/evtstr.o .libs/evtctx.o .libs/evttags.o .libs/evtsyslog.o   -R/usr/local/lib -L/usr/local/lib -lc   
libtool: link: (cd ".libs" && rm -f "libevtlog.so.0" && ln -s "libevtlog.so.0.0.0" "libevtlog.so.0")
libtool: link: (cd ".libs" && rm -f "libevtlog.so" && ln -s "libevtlog.so.0.0.0" "libevtlog.so")
libtool: link: ar cru .libs/libevtlog.a  evtrec.o evtfmt.o evtout.o evtstr.o evtctx.o evttags.o evtsyslog.o
libtool: link: ranlib .libs/libevtlog.a
libtool: link: ( cd ".libs" && rm -f "libevtlog.la" && ln -s "../libevtlog.la" "libevtlog.la" )
Making all in tests
source='evtrec.c' object='evtrec.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
cc -DHAVE_CONFIG_H -I. -I..  -I../src  -I/usr/local/include  -fast -c evtrec.c
/bin/bash ../libtool --tag=CC    --mode=link cc  -fast   -L/usr/local/lib -R/usr/local/lib -o evtrec evtrec.o ../src/libevtlog.la 
libtool: link: cc -fast -o .libs/evtrec evtrec.o  -L/usr/local/lib ../src/.libs/libevtlog.so -R/usr/local/lib
Undefined                       first referenced
 symbol                             in file
alloca                              ../src/.libs/libevtlog.so
ld: fatal: Symbol referencing errors. No output written to .libs/evtrec
*** Error code 1
dmake: Fatal error: Command failed for target `evtrec'
Current working directory /home/soft/syslog-ng/eventlog-0.2.12/tests
*** Error code 1
...

Jak widać, kompilacja nie powiodła się i wypluła komunikat: Undefined symbol alloca. Nie, żeby to jakaś nowość, trzeba poszukać gdzie to jest i dołączyć jakąś bibliotekę lub include’a do odpowiedniego pliku źródła. W tym wypadku wystarczy dodać:


#include 

do pliku eventlog-0.2.12/src/evtstr.c. Od razu zrobię patcha i umieszczę w załączniku.


soft@wega:~/syslog-ng/eventlog-0.2.12/src% cp evtstr.c evtstr.c.orig
soft@wega:~/syslog-ng/eventlog-0.2.12/src% vi evtstr.c
soft@wega:~/syslog-ng/eventlog-0.2.12/src% rm evtstr.o evtstr.lo
soft@wega:~/syslog-ng/eventlog-0.2.12/src% cd ..
soft@wega:~/syslog-ng/eventlog-0.2.12% diff -u src/evtstr.c.orig src/evtstr.c > ../drf_eventlog-0.2.12-alloca.diff 
soft@wega:~/syslog-ng/eventlog-0.2.12% cat ../drf_eventlog-0.2.12-alloca.diff
--- src/evtstr.c.orig   2011-05-23 12:18:10.122649500 +0200
+++ src/evtstr.c        2011-05-23 12:19:36.516145400 +0200
@@ -49,6 +49,9 @@
 #include 
 #endif
 
+/* include alloca.h to build on Solaris - PT (DrFugazi) */
+#include 
+
 /* event string handling */
 
 static int

Spróbujmy ponownie:


soft@wega:~/syslog-ng/eventlog-0.2.12% dmake            
dmake  all-recursive
Making all in src
source='evtstr.c' object='evtstr.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ../depcomp \
/bin/bash ../libtool --tag=CC    --mode=compile cc -DHAVE_CONFIG_H -I. -I..    -I/usr/local/include  -fast -c -o evtstr.lo evtstr.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -fast -c evtstr.c  -KPIC -DPIC -o .libs/evtstr.o
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -fast -c evtstr.c -o evtstr.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC    --mode=link cc  -fast   -L/usr/local/lib -R/usr/local/lib -o libevtlog.la -rpath /usr/local/lib evtrec.lo evtfmt.lo evtout.lo evtstr.lo  evtctx.lo evttags.lo evtsyslog.lo  
libtool: link: rm -fr  .libs/libevtlog.a .libs/libevtlog.la .libs/libevtlog.lai .libs/libevtlog.so .libs/libevtlog.so.0 .libs/libevtlog.so.0.0.0
libtool: link: cc -G -h libevtlog.so.0 -o .libs/libevtlog.so.0.0.0  .libs/evtrec.o .libs/evtfmt.o .libs/evtout.o .libs/evtstr.o .libs/evtctx.o .libs/evttags.o .libs/evtsyslog.o   -R/usr/local/lib -L/usr/local/lib -lc   
libtool: link: (cd ".libs" && rm -f "libevtlog.so.0" && ln -s "libevtlog.so.0.0.0" "libevtlog.so.0")
libtool: link: (cd ".libs" && rm -f "libevtlog.so" && ln -s "libevtlog.so.0.0.0" "libevtlog.so")
libtool: link: ar cru .libs/libevtlog.a  evtrec.o evtfmt.o evtout.o evtstr.o evtctx.o evttags.o evtsyslog.o
libtool: link: ranlib .libs/libevtlog.a
libtool: link: ( cd ".libs" && rm -f "libevtlog.la" && ln -s "../libevtlog.la" "libevtlog.la" )
Making all in tests
/bin/bash ../libtool --tag=CC    --mode=link cc  -fast   -L/usr/local/lib -R/usr/local/lib -o evtrec evtrec.o ../src/libevtlog.la 
libtool: link: cc -fast -o .libs/evtrec evtrec.o  -L/usr/local/lib ../src/.libs/libevtlog.so -R/usr/local/lib
/bin/bash ../libtool --tag=CC    --mode=link cc  -fast   -L/usr/local/lib -R/usr/local/lib -o evtfmt evtfmt.o ../src/libevtlog.la 
libtool: link: cc -fast -o .libs/evtfmt evtfmt.o  -L/usr/local/lib ../src/.libs/libevtlog.so -R/usr/local/lib
/bin/bash ../libtool --tag=CC    --mode=link cc  -fast   -L/usr/local/lib -R/usr/local/lib -o evtsyslog evtsyslog.o ../src/libevtlog.la 
libtool: link: cc -fast -o .libs/evtsyslog evtsyslog.o  -L/usr/local/lib ../src/.libs/libevtlog.so -R/usr/local/lib
/bin/bash ../libtool --tag=CC    --mode=link cc -DEVENTLOG_SYSLOG_MACROS=1  -fast  -L/usr/local/lib -R/usr/local/lib -o evtsyslog-macros evtsyslog_macros-evtsyslog.o ../src/libevtlog.la 
libtool: link: cc -DEVENTLOG_SYSLOG_MACROS=1 -fast -o .libs/evtsyslog-macros evtsyslog_macros-evtsyslog.o  -L/usr/local/lib ../src/.libs/libevtlog.so -R/usr/local/lib
Making all in solbuild
Making all in tgzbuild
Making all in tgz2build
Making all in winbuild

Tym razem kompilacja przebiegła już pomyśnie. dmake check pokazuje tylko tyle:


soft@wega:~/syslog-ng/eventlog-0.2.12% dmake check
Making check in src
Making check in tests
Making check in solbuild
Making check in tgzbuild
Making check in tgz2build
Making check in winbuild

Instalacja po przełączeniu na roota. Biblioteki trafiają do /usr/local/lib


# cd eventlog-0.2.12
# dmake install
# ls -la /usr/local/lib/libevtlog* 
-rw-r--r--+ 1 root root 32880 May 23 12:53 /usr/local/lib/libevtlog.a
-rwxr-xr-x+ 1 root root   991 May 23 12:53 /usr/local/lib/libevtlog.la
lrwxrwxrwx  1 root root    18 May 23 12:53 /usr/local/lib/libevtlog.so -> libevtlog.so.0.0.0
lrwxrwxrwx  1 root root    18 May 23 12:53 /usr/local/lib/libevtlog.so.0 -> libevtlog.so.0.0.0
-rwxr-xr-x+ 1 root root 28700 May 23 12:53 /usr/local/lib/libevtlog.so.0.0.0

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.