libunwind-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]