tor 0.2.1.24 crashes on Sparc-Solaris10
Thomas.Hluchnik at netcologne.de
Thomas.Hluchnik at netcologne.de
Wed Mar 10 20:47:10 UTC 2010
Am Dienstag 09 März 2010 schrieb Roger Dingledine:
> On Tue, Mar 09, 2010 at 08:23:30PM +0100, Thomas.Hluchnik at netcologne.de wrote:
> > When starting tor it comes up but crashes within one minute.
>
> Try these:
> http://freehaven.net/~arma/tor-0.2.1.24-dev.tar.gz
> http://freehaven.net/~arma/tor-0.2.1.24-dev.tar.gz.asc
Unfortunately this didnt help. But I succeeded in another way meanwhile:
The crashing tor executables were built with gcc. The one who works right now, is from Your dev tarball, but built with Suns cc plus an interesting CFLAG. I found some info in the net (http://developers.sun.com/solaris/articles/manage_core_dump.html):
The Sun Studio C/C++ compiler has the -xmemalign option, which can be used to adjust the behavior of the UltraSPARC CPU when there are unaligned memory addresses that can be determined at compile time. The -xmemalign option causes the compiler to generate additional load/store instructions for unaligned memory access. However, the -xmemalign option cannot handle unaligned memory access during runtime. If unaligned memory access happens during runtime, the developer needs to change the source code.
So I did:
make distclean
export CC=cc
export CFLAGS='-xmemalign'
./configure --enable-threads --prefix=/usr --sysconfdir=/etc --with-ssl-dir=/usr/local/ssl
/usr/local/bin/make -j 2
here I got some very unusual output:
source='directory.c' object='directory.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../depcomp \
cc -DHAVE_CONFIG_H -I. -I../.. -DSHARE_DATADIR="\"/usr/share\"" -DLOCALSTATEDIR="\"/usr/var\"" -DBINDIR="\"/usr/bin\"" -I../../src/common -I/usr/local/ssl/include -xmemalign -g -O -c directory.c
"directory.c", line 3231: warning: statement not reached
source='dirserv.c' object='dirserv.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../depcomp \
cc -DHAVE_CONFIG_H -I. -I../.. -DSHARE_DATADIR="\"/usr/share\"" -DLOCALSTATEDIR="\"/usr/var\"" -DBINDIR="\"/usr/bin\"" -I../../src/common -I/usr/local/ssl/include -xmemalign -g -O -c dirserv.c
"dirserv.c", line 747: warning: identifier redeclared: dirserv_add_extrainfo
current : function(pointer to struct extrainfo_t {struct signed_descriptor_t {..} cache_info, array[20] of char nickname, unsigned int bad_sig :1, pointer to char pending_sig, unsigned int pending_sig_len}, pointer to pointer to const char) returning enum was_router_added_t {ROUTER_AUTHDIR_REJECTS(-5), ROUTER_NOT_IN_CONSENSUS_OR_NETWORKSTATUS(-4), ROUTER_NOT_IN_CONSENSUS(-3), ROUTER_WAS_NOT_NEW(-2), ROUTER_BAD_EI(-1), ROUTER_ADDED_NOTIFY_GENERATOR(0), ROUTER_ADDED_SUCCESSFULLY(1)}
previous: function(pointer to struct extrainfo_t {struct signed_descriptor_t {..} cache_info, array[20] of char nickname, unsigned int bad_sig :1, pointer to char pending_sig, unsigned int pending_sig_len}, pointer to pointer to const char) returning int : "dirserv.c", line 64
"dirserv.c", line 3254: warning: static function called but not defined: dirserv_add_extrainfo()
Might this be the reason why a gcc built crashes on Solaris? The executable was created and runs now without crashing:-)
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.torproject.org/pipermail/tor-talk/attachments/20100310/8ccae783/attachment.pgp>
More information about the tor-talk
mailing list