Am 26.10.2012 17:17, schrieb Arun Sharma:
> On Fri, Oct 26, 2012 at 4:42 AM, Ole Streicher <[email protected]> wrote:
>> I am working on the packaging of the "IRAF" package
>> <http://iraf.noao.edu/>. The package uses a special variant of
>> setjmp()/longjmp() called from Fortran. Due to the nature of setjmp(),
>> this cannot be called directly from a subroutine.
>
> The reason why a x86_64 asm version had to be written had to do with
> %rax getting clobbered by a portable implementation. This caused C++
> exception handling to break.
>
> Not very familiar with the ABIs of the other archs to know if a
> portable implementation is possible.
In principle it is. Just two points need to be solved there:
* the setjmp library should actually be built,
* the jmpbuf.h should be publicely accessible
I had the problems with both; for some reason on x86 (32 and 64 bit) the
setjmp library appears to be almost empty. "nm *.o" in this directory gives
-----------------8<-----------------
longjmp.o:
U abort
00000000 t __nonworking__longjmp
U _UI_longjmp_cont
U _ULx86_get_reg
U _ULx86_init_local
U _ULx86_resume
U _ULx86_set_reg
U _ULx86_step
U _Ux86_getcontext
siglongjmp.o:
-----------------8<-----------------
setjmp.c was even not compiled via "configure; make". How does one get a
working setjmp/longjmp library?
Best regards
Ole
_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel