I'm (foolishly perhaps) writing an AIX device driver using G++ and I
want to be able to use exceptions.
I just bumped into a problem where I am running out of stack. In the
particular environment, I have either 4K of stack on a 32 bit
platform or 8K of stack on a 64 bit platform. ((AIX on PPC boots up
into 32 or 64 bit mode).
Unwind_RaiseException consumes 5168 of stack and the next routine,
uw_init_context_1, consumes another 2608 bytes of stack (this is in
64 bit mode).
A lot of drivers have to "flip" the stack and execute on a private
stack. They usually do it using a small piece of assembly language.
I'm wondering if gcc/g++ has a way to do this easier. Perhaps, the
exception code has already been written to run on alternative
stacks. Perhaps there really is a Santa Clause...
Thanks for any help,
Perry Smith ( pedz@xxxxxxxxxxxxxxxx )
Ease Software, Inc. ( http://www.easesoftware.com )
Low cost SATA Disk Systems for IBMs p5, pSeries, and RS/6000 AIX systems