Date: Wed, 12 Jul 2000 20:06:34 +0700 (NSS) From: Max Khon <fjoe@iclub.nsu.ru> To: hackers@freebsd.org Subject: g++ 2.95 and -fsjlj-exceptions problems Message-ID: <Pine.BSF.4.21.0007121935170.70878-100000@iclub.nsu.ru>
next in thread | raw e-mail | index | archive | help
hi, there! our g++ uses -fsjlj-exceptions by default for exceptions handling. this mode has problems (see #258 in gcc GNATS). this bug can be 100% reproduced when try-catch block is not in constructor and with optimization turned off (Reactor_Exceptions_Test from ACE 5.1.1). the problem is that setjmp code is optimized in such way that after `throw' execution continues in `try' block instead of `catch' blocks. exception handling using dwarf unwinding info does not have this problem (Reactor_Exceptions_Test built on RELENG_3 with /usr/ports/lang/egcs have no problems because g++295 built from ports uses crtstuff.c from gcc and dwarf unwinding mechanisms) -fno-sjlj-exceptions cannot be simply turned on with our system compiler because our crtbegin.o/crtend.o do not initialize dwarf unwinding info. what is the problem with `make world' bootstrapping when using crtstuff.c instead our home-grown crt stubs? seems that this is the only problem which prevents us from switching to dwarf unwinding mechanism and have reliable correctly working C++ compiler in both RELENG_4 and -CURRENT. /fjoe To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0007121935170.70878-100000>