discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with ffi/forwardInvocation and exception handling on OpenSol


From: Saso Kiselkov
Subject: Re: Problem with ffi/forwardInvocation and exception handling on OpenSolaris
Date: Mon, 28 Jun 2010 13:27:55 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100423 Lightning/1.0b1 Thunderbird/3.0.4

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I checked and gnustep-make actually does generate the correct flags:

gcc main.m -c \
              -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1
- -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fpic -fPIC -DGSWARN
- -DGSDIAGNOSE -Wno-import -m64 -fno-strict-aliasing -fexceptions
- -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fgnu-runtime -W -Wall -O0
- -ggdb3 -I/usr/gcc/4.3/lib/gcc/i386-pc-solaris2.11/4.3.3/include/
- -fconstant-string-class=NSConstantString -I.
- -I/export/home/diablos/GNUstep/Library/Headers
- -I/usr/GNUstep/Local/Library/Headers
-I/usr/GNUstep/System/Library/Headers \
               -o obj/main.m.o

Since the problem could be in libgcc_s, what should I do? Rebuild my
compiler? Your insight is greatly appreciated!

BR,
- --
Saso

On 06/28/2010 01:23 PM, David Chisnall wrote:
> On 28 Jun 2010, at 11:59, Saso Kiselkov wrote:
> 
>> So if I understand correct, instead of doing an [exception raise], I
>> should call the _Unwind_Backtrace function below? I tried it and it
>> generated:
>>
>> 40157e:do_throw() in /export/home/diablos/excp_fail/obj/excp_fail
> 
> Ah, Solaris - one of the only two platforms (Darwin being the other) where 
> that code actually works as documented...
> 
> So, the unwind library can't propagate beyond the do_throw() function.  This 
> means that either do_throw() or -forwardInvocation: (not sure which, I'd have 
> to check the libgcc_s code, and I don't want to because it's horrible) hasn't 
> been compiled with unwind support.
> 
> Since these are both in your main.m file, I would imagine that the problem is 
> a lack of -fexceptions in the compile flags for this file.  GNUstep Make (in 
> theory, at least), ought to be providing this flag, but it might only be 
> providing -fobjc-exceptions, which means that C functions won't have unwind 
> data generated.
> 
> David
> 
> -- Send from my Jacquard Loom
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkwohzsACgkQRO8UcfzpOHD+hACdGHN7+UTniwKV7ph9DuDZldXs
SqEAnjOwCR9d91q68WrLRuxe40+c5rLe
=+keN
-----END PGP SIGNATURE-----



reply via email to

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