Peter Dolding wrote:
Dwarf2 is stack-based and integrated into gcc on a lot
of platforms.
It uses a slightly different wording frame based. Basic operation is
the same. Note if stack-based processor operations were patented
Intel would hold the patent not Borland since they developed the
processor features that let it happen.
nopes, Borland were the first to do
stack-based exception handling.
Everyone else used sensible architectures with native unwinding and
exception handling based on function tables (yes, checked. SEH was
developed in parallel on Alpha, VAX and x86 - the aforementioned Tru64,
VMS and OS/2 implementations. And the tradition started back then). And
besides, wonderful. Microsoft moves away from stack-based and GCC adopts
it? we're screwed. Also: does it support exception handling in C too,
now? or only C++? Because we need it in C. GCC's C++ compiler is too
slow to turn e.g. our whole kernel into C++, and we have the impression
that it generates gigantic executables. Finally: I see no mention in the
DWARF specifications of exception handling standards, is this an abusive
appropriation of the name as an obscure reference to some GCC internals?
Its the system of Microsoft/Borland SEH that is
patented. Dwarf2 is a
completely independently developed using a different system. Same
interfaces to processor. Dwarf2 is not locked to x86 processors.
Dwarf2 has now been extended to Dwarf3 to do support of pure 64 bit
systems.
stack-based SEH doesn't depend on x86, either, and I find it much
better
on the whole. In fact, if we can piss on non-x86 compatibility (at least
temporarily), I'd be very happy to port PSEH (it needs only minimal
platform-specific code) - I think our system support for exception
handling could easily support both, even. It's just the way it is in the
real world
Non issue. KJKHyperion not true. A system exists in
gcc for frame
based exception handling. Its used. Only recently did mingw catch
up. Even djgpp for dos has had it for years. Mingw is the last gcc to
get it.
hey, it's not like we didn't pressure them all the time. And to
repeat
myself, we need this in C. Not C++. Absolutely sure of it. And we'll
need it to catch faults, such as memory access violations, not just
program exceptions - in fact, that's what using SEH in the kernel is all
about