[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] setjmp not working?
From: |
Ole Streicher |
Subject: |
Re: [Libunwind-devel] setjmp not working? |
Date: |
Sun, 28 Oct 2012 17:44:50 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:16.0) Gecko/20121017 Thunderbird/16.0.1 |
Am 26.10.2012 17:17, schrieb Arun Sharma:
> On Fri, Oct 26, 2012 at 4:42 AM, Ole Streicher <address@hidden> 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