From owner-freebsd-hackers Tue Mar 20 13:34: 9 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from h132-197-97-45.gte.com (h132-197-97-45.gte.com [132.197.97.45]) by hub.freebsd.org (Postfix) with ESMTP id D568E37B71C for ; Tue, 20 Mar 2001 13:34:05 -0800 (PST) (envelope-from ak03@gte.com) Received: (from ak03@localhost) by h132-197-97-45.gte.com (8.11.3/8.11.3) id f2KLV7l65387; Tue, 20 Mar 2001 16:31:07 -0500 (EST) (envelope-from ak03) Message-ID: X-Mailer: XFMail 1.4.7p2 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit MIME-Version: 1.0 In-Reply-To: <3AB7C787.96200D6C@pleach-hamburg.de> Date: Tue, 20 Mar 2001 16:31:06 -0500 (EST) Organization: Verizon Laboratories Inc. From: "Alexander N. Kabaev" To: Titus von Boxberg Subject: Re: GCC Upgrade? Cc: hackers@FreeBSD.ORG Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 20-Mar-2001 Titus von Boxberg wrote: > "Alexander N. Kabaev" wrote: >> >> On 19-Mar-2001 Titus von Boxberg wrote: >> > David O'Brien wrote: >> >> >> >> On Mon, Mar 19, 2001 at 02:54:52PM +0100, Titus von Boxberg wrote: >> >> > Since at least aug. 2000 (according to the mailing list >> >> > archives) the exception handling in base system g++ is broken >> >> > (at least for multithreaded programs) >> >> The problem you are talking about has nothing to do with threads. Rather, >> the >> problem was with the way in which GCC handles inline function expansions. > Why does the code generated by the packaged gcc2952 work? > And why can't that version be used for the base system? Because gcc 2.95.2 from ports is configured to use DWARF2 unwinder which is not affected by this particular bug. There is DWARF2 specific INSN bookkeeping in GCC which allows the basic code blocks to stay alive. These blocks get erroneously deleted by the GCC optimizer in sjlj case. > And why can't that version be used for the base system? Again, because it uses DWARF2 exception handling. You cannot easily switch between sjlj and DWARF2 exception handling methods and you cannot mix and match object files and libraries compiled with different exception flags. The switch will require that every C++ binary and every C++ library on all FreeBSD boxes is recompiled. I certainly do not see that happening in FreeBSD 4-STABLE any time soon. FreeBSD-CURRENT might switch to DWARF2 some day, David O'Brien is the right person to ask about that. > Is there a link available to documentation that explains DWARF and fsjlf You could try looking at gcc.gnu.org site for information on how GCC works internally. ---------------------------------- E-Mail: Alexander N. Kabaev Date: 20-Mar-2001 Time: 16:15:24 ---------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message