
On 07/08/2012 14:04, Oliver Kowalke wrote:
Am 07.08.2012 14:02, schrieb Luke Elliott:
Hello Oliver
There's actually already a ticket on this (https://svn.boost.org/trac/boost/ticket/7110 not from me) but since it's unassigned I thought I'd post here with a few more details.
Hi Luke,
could you try the appended asm - it might fail by computing the absolute address of label finish.
Oliver
No joy I'm afraid: as -o "../../../bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/asm/fcontext_i386_sysv_macho_gas.o" "../../../libs/context/src/asm/fcontext_i386_sysv_macho_gas.S" -arch i686 ../../../libs/context/src/asm/fcontext_i386_sysv_macho_gas.S:98:bad register name `%eip)' Apparently reading eip in 32-bit mode is a no-go? From some googling, I tried: call _get_eip leal finish(%eip), %ecx with _get_eip: mov (%esp), %ecx ret Which assembles. But at link time: ld: illegal text-relocation to finish in ../../../bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/asm/fcontext_i386_sysv_macho_gas.o from _make_fcontext in ../../../bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/asm/fcontext_i386_sysv_macho_gas.o for architecture i386 HTH! Luke.