From owner-freebsd-hackers Wed Jul 12 6: 7:13 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from iclub.nsu.ru (iclub.nsu.ru [193.124.222.66]) by hub.freebsd.org (Postfix) with ESMTP id 25F0937BD16 for ; Wed, 12 Jul 2000 06:07:01 -0700 (PDT) (envelope-from fjoe@iclub.nsu.ru) Received: from localhost (fjoe@localhost) by iclub.nsu.ru (8.9.3/8.9.3) with ESMTP id UAA72867 for ; Wed, 12 Jul 2000 20:06:34 +0700 (NSS) (envelope-from fjoe@iclub.nsu.ru) Date: Wed, 12 Jul 2000 20:06:34 +0700 (NSS) From: Max Khon To: hackers@freebsd.org Subject: g++ 2.95 and -fsjlj-exceptions problems Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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