Andrei Pelinescu-Onciul writes:
It looks like a linker or a compiler problem (__do_global_dtors_aux is called on exit and should call all the global/libraries destructors).
Did you change the compiler or linker recently?
no, same old debian lenny.
Coul you try: cd utils/sercmd; make proper ; make and see if it still crashes?
no, if i build like that, it doesn't crash:
make proper ; make config.mak included config.mak included readline detected (/usr/include/readline/readline.h) command completion enabled config.mak included readline detected (/usr/include/readline/readline.h) command completion enabled gcc -g -O9 -funroll-loops -Wcast-align -m32 -minline-all-stringops -falign-loops -ftree-vectorize -fno-strict-overflow -mtune=athlon64 -Wall -DNAME='"sip-proxy_ctl"' -DVERSION='"0.2"' -DUSE_READLINE -c parse_listen_id.c -o parse_listen_id.o gcc -g -O9 -funroll-loops -Wcast-align -m32 -minline-all-stringops -falign-loops -ftree-vectorize -fno-strict-overflow -mtune=athlon64 -Wall -DNAME='"sip-proxy_ctl"' -DVERSION='"0.2"' -DUSE_READLINE -c sercmd.c -o sercmd.o gcc -m32 -Wl,-O2 -Wl,-E parse_listen_id.o sercmd.o -lresolv -lsctp -lreadline -lncurses -o sip-proxy_ctl jh@taimen:/usr/src/trunk-src/sip-proxy/utils/sercmd$ ls EXAMPLES makecfg.lst parse_listen_id.d README sercmd.o librpath.lst Makefile parse_listen_id.h sercmd.c sip-proxy_ctl* license.h parse_listen_id.c parse_listen_id.o sercmd.d TODO jh@taimen:/usr/src/trunk-src/sip-proxy/utils/sercmd$ root root@taimen:/usr/src/trunk-src/sip-proxy/utils/sercmd# ./sip-proxy_ctl sip-proxy_ctl 0.2 Copyright 2006 iptelorg GmbH This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. sip-proxy_ctl> quit
If it crashes, try editing config.mak (in the main dir) and remove -m32 from everywhere it appears (or -m64 if you don't have -m32) and then try again (this is the only change, -m32 is now added automatically on 32 bits).
Could you also send me your compiler version, the output of ldd sercmd and the output of d utils/sercmd; make proper ; make (the gcc command lines)?
but it still crashes when i build debian package that includes sercmd (renamed to sip-proxy_ctl). compilation then goes like this:
make[3]: Entering directory `/usr/trunk-src/src/sip-proxy/utils/sercmd' gcc -fPIC -DPIC -g -O2 -DNAME='"sip-proxy_ctl"' -DVERSION='"0.2"' -DUSE_READLINE -c parse_listen_id.c -o parse_listen_id.o gcc -fPIC -DPIC -g -O2 -DNAME='"sip-proxy_ctl"' -DVERSION='"0.2"' -DUSE_READLINE -c sercmd.c -o sercmd.o gcc -shared -m32 -Wl,-O2 -Wl,-E parse_listen_id.o sercmd.o -lreadline -lncurses -o sip-proxy_ctl
as you see, there is quite a lot of differences in gcc params. why is that? in my debian/rules i have this kind of compilation command:
$(MAKE) cfg CC=$(CC) CFLAGS="$(CFLAGS)" MAIN_NAME=$(MAIN_NAME) basedir=$(BASEDIR) prefix=/usr cfg_prefix=$(BASEDIR) cfg_target=/etc/sip-proxy/ modules="$(MODULES)" modules_s="$(MODULES_S)" modules_k="$(MODULES_K)"
and each time when i build debian package, sip-router source is copied fresh from git source.
-- juha