Boost logo

Boost :

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
fcontext_x86_64_sysv_macho_gas.S

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
stack.

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

Dan


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