Boost logo

Boost :

Subject: Re: [boost] [context] Floating Point Exception
From: Daniel Larimer (dlarimer_at_[hidden])
Date: 2011-07-02 12:17:52


On Jul 1, 2011, at 3:44 PM, Oliver Kowalke wrote:

> Am 29.06.2011 20:18, schrieb Daniel Larimer:
>> Attempting to use the latest Boost.Context implementation on Mac OS X and
>> everything was going fine except for a few small issues:
>>
>> 1) fcontext_x86_64_sysv_macho_gas.S fails to compile because:
>> fcontext_x86_64_sysv_macho_gas.S:50:Unknown pseudo-op: .type
>> fcontext_x86_64_sysv_macho_gas.S:50:Rest of line ignored. 1st junk character
>> valued 95 (_).
>> fcontext_x86_64_sysv_macho_gas.S:51:Alignment too large: 15. assumed.
>>
>> 2) I can fix those errors by commenting out the .type line and changing to
>> .balign 16 or .align 8

        Your new code still has the invalid Unknown pseudo-op: .type.

>>
>> 3) Compiled with:
>> gcc-4.5.0 -o fcontext_x86_64_sysv_macho_gas.S.o -c
>> fcontext_x86_64_sysv_macho_gas.S
>
> could you write a little helloworld-app and compile it with -S and send me the generated assembler?
>
        Sure. Do you want it to use your context or just want to see int main( ) { printf( "hello world"); return 0; } ?

>> 4) protected_stack() cannot map /dev/zero
>> - solutions were to mkfile -n 1m /tmp/zero and then open that
>> - use ::mmap( 0, size__, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON,
>> -1, 0); instead of specifying any file.
>>
>
> MAP_ANON is not standard - have think about it (would require to test for addition additional preprocessor macros)
>
>> After getting all of those things "working" I attempted to print out a
>> floating point number and it dies deep inside __ntoa(), but I could get it
>> to crash by doing any floating point operations from within the contexts
>> stack.
>>
>
> fixed missing fp x87 word initialisation
>
        Seems to have fixed things. Asm version is 2x as fast as ucontext for my use case.

>> I noticed that none of the examples test for floating point ops. You might
>> want to include that as part of your standard testing.

        I saw you added these tests to git... did it work on other platforms, or did you have to change multiple asm files?
>>
>
> thx, added
>
> http://ok73.ok.funpic.de/boost.context-0.7.4.zip
>
> Oliver
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk