
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