Subject: [boost] [context] Floating Point Exception
From: Daniel Larimer (dlarimer_at_[hidden])
Date: 2011-06-29 14:18:52
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
3) Compiled with:
gcc-4.5.0 -o fcontext_x86_64_sysv_macho_gas.S.o -c
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.
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
I noticed that none of the examples test for floating point ops. You might
want to include that as part of your standard testing.