Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Mar 2001 16:31:06 -0500 (EST)
From:      "Alexander N. Kabaev" <ak03@gte.com>
To:        Titus von Boxberg <titus@pleach.de>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: GCC Upgrade?
Message-ID:  <XFMail.20010320163106.ak03@gte.com>
In-Reply-To: <3AB7C787.96200D6C@pleach-hamburg.de>

next in thread | previous in thread | raw e-mail | index | archive | help

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 <ak03@gte.com>
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20010320163106.ak03>