HomeFreeBSD

MFC: bring in GCC 2.95.3 + official sjlj exception fixes.
rS75390Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

MFC: bring in GCC 2.95.3 + official sjlj exception fixes.

Approved by: jkh

The the setjump/longjump exception handling fixes are from GCC 2.95.3.test3
and were removed from GCC 2.95.3.test4 and the subsequent release due
to bootstrap problems on HP-UX. However, they were very well tested and
fixed major problems on all other platforms. Including all the all the BSD's.
OpenBSD and FreeBSD 5-current both use these official sjlj patches.

W/o this upgrade the following program segmentation faults if compiled
with -O2 (but not -Os or -O or -O0) on 4.2FreeBSD.
There are some large C++ libraries where segfaults also occur, even at -O.

#include <stdio.h>

class A {
public:

A() { printf("c'tor A\n"); }
~A(){ printf("d'tor A\n"); }

};

class foo : public A {
public:

foo()  { printf("C'tor foo\n"); throw 8; }
~foo() { printf("D'tor foo\n"); }

};

int main(){

try { foo fii; }
catch (int){ printf("catch ...\n"); }
return 0;

}

Details

Provenance
obrienAuthored on
Parents
rS75389: NOBLOCKRANDOM doesn't exist anymore as a kernel option.
Branches
Unknown
Tags
Unknown

Event Timeline