discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Problem with exception handling: WAS: no thread-safe +initialize in


From: Sebastian Reitenbach
Subject: Re: Problem with exception handling: WAS: no thread-safe +initialize in old gnustep runtime?
Date: Wed, 15 Jun 2011 08:15:21 +0200
User-agent: SOGoMail 1.3.7

Hi, 

On Tuesday, June 14, 2011 23:50 CEST, Riccardo Mottola 
<riccardo.mottola@libero.it> wrote: 
 
> Hi
> > My feeling is that first priority ought to be to figure out why the signal 
> > handling code is not working ... I know it can't be 100% reliable (after 
> > all signal handling is not really thread safe), but it ought to be catching 
> > any problem in the stack trace normally, and recovering.  Writing an 
> > alternative signal handling implementation using the latest BSD APIs rather 
> > than the original signal() system call, would seem to make sense here.
> >    
> I wonder why it should not work. I can run Sudoku on OpenBSD using gcc 
> and its runtime just fine.

on what platform is it working for you, I'm on i386, and IIRC also have seen it 
on sparc? Do you link against libffi or ffcall?
I install make with the following parameters:
CONFIGURE_ARGS= --with-layout=openbsd \
                --prefix=${PREFIX} \
                --with-config-file=${SYSCONFDIR}/GNUstep.conf \
                --with-tar=${LOCALBASE}/bin/gtar \
                --enable-multi-platform \
                --with-library-combo="gnu-gnu-gnu" \
                --with-thread-lib="-pthread" \
                --enable-strict-v2-mode
and base with the following:
CONFIGURE_ARGS= --disable-procfs \
                --disable-procfs-psinfo

in the ports, there are some patches to -base, but the only one that may look 
suspicious is this to NSObject, fixing the build with clang:
--- Source/NSObject.m.orig      Thu Apr 14 14:36:06 2011
+++ Source/NSObject.m   Mon May 23 12:57:03 2011
@@ -955,7 +955,7 @@ objc_create_block_classes_as_subclasses_of(Class super
       finalize_sel = @selector(finalize);
       finalize_imp = class_getMethodImplementation(self, finalize_sel);
 
-#if (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
+#if defined(__FreeBSD__) && defined(__i386__)
       // Manipulate the FPU to add the exception mask. (Fixes SIGFPE
       // problems on *BSD)
       // Note this only works on x86


I'll retry without that patch, and see whether it changes sth.

cheers,
Sebastian


 
 
 
 



reply via email to

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