My proposal for the libgcc runtime ABI (ia64 gcc/glibc is broken.)
Linus Torvalds
torvalds@transmeta.com
Tue Jul 11 15:22:00 GMT 2000
On Tue, 11 Jul 2000, Geoff Keating wrote:
>
> This is the routine that keeps track of all the exception-handling
> information. Consider a program that uses the standard C function
> qsort, but the comparison function can detect an I/O error (it's
> sorting pointers to on-disk data) and throw an exception back to the
> application. The exception throwing mechanism has to know how to
> unwind the comparison function's stack frame and the qsort stack
> frames and then find the handler in the application which can
> deal with the error; in general, it needs to know about every bit of
> code loaded into the process.
And this is in libgcc?
What about dload() and friends? What about special loaders like the one
XFree86 uses to re-use different object files across different systems?
Sounds like a complete disaster to me.
Wouldn't it be better to _not_ consider this to be part of libgcc, and
instead have a well-defined EH record format and just tell people to use
it in their system libraries. Possibly with example code (ie the current
libgcc source for the problem at hand).
Because I don't think libgcc can handle the special cases anyway (see
above). And trying to is just going to cause problems.
Linus
More information about the Gcc
mailing list