
On Wed, 2015-02-25 at 10:27 +0100, Oliver Kowalke wrote:
the patch was merged into boost.build - could you fetch the new version (file src/engine/jam.h <https://github.com/boostorg/build/pull/58/files#diff-c88fe8afebc632d0bef2bd5985137af2>) and check if boost.context (please fetch) builds and runs as expected?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Hi Oliver, I have pulled the jam.h patch and pulled the latest boost.context (develop branch), however it fails to build with the following error. gcc.compile.asm ../../../bin.v2/libs/context/build/gcc-4.9.1/debug/address-model-64/architecture-arm/link-static/threading-multi/asm/jump_arm64_aapcs_elf_gas.o ../../../libs/context/src/asm/jump_arm64_aapcs_elf_gas.S: Assembler messages: ../../../libs/context/src/asm/jump_arm64_aapcs_elf_gas.S:86: Error: operand 1 should be a floating-point register -- `stp fp,lr,[sp,#0x90]' ../../../libs/context/src/asm/jump_arm64_aapcs_elf_gas.S:89: Error: operand 1 should be an integer register -- `str lr,[sp,#0xa0]' ../../../libs/context/src/asm/jump_arm64_aapcs_elf_gas.S:116: Error: operand 1 should be a floating-point register -- `ldp fp,lr,[sp,#0x90]' The assembler does not recognise the names 'fp', or 'lr'. Instead you must use x29, or x30. I thought I had done this already in my original patch. Apologies if I made a mistake. Patch below:- With this patch it now reports gcc.compile.asm ../../../bin.v2/libs/context/build/gcc-4.9.1/debug/address-model-64/architecture-arm/link-static/threading-multi/asm/jump_arm64_aapcs_elf_gas.o gcc.archive ../../../bin.v2/libs/context/build/gcc-4.9.1/debug/address-model-64/architecture-arm/link-static/threading-multi/libboost_context.a gcc.link ../../../bin.v2/libs/context/test/test_context.test/gcc-4.9.1/debug/address-model-64/architecture-arm/link-static/threading-multi/test_context testing.capture-output ../../../bin.v2/libs/context/test/test_context.test/gcc-4.9.1/debug/address-model-64/architecture-arm/link-static/threading-multi/test_context.run **passed** ../../../bin.v2/libs/context/test/test_context.test/gcc-4.9.1/debug/address-model-64/architecture-arm/link-static/threading-multi/test_context.test ...updated 6 targets... All the best, Ed. --- CUT HERE --- commit f5905ba4672c78fc5b250e990a9103beb226baeb Author: Edward Nevill <edward.nevill@linaro.org> Date: Wed Feb 25 11:45:23 2015 +0000 Correct register names in arm64 diff --git a/src/asm/jump_arm64_aapcs_elf_gas.S b/src/asm/jump_arm64_aapcs_elf_gas.S index 889008f..09bd7b5 100644 --- a/src/asm/jump_arm64_aapcs_elf_gas.S +++ b/src/asm/jump_arm64_aapcs_elf_gas.S @@ -83,10 +83,10 @@ jump_fcontext: stp x23, x24, [sp, #0x60] stp x25, x26, [sp, #0x70] stp x27, x28, [sp, #0x80] - stp fp, lr, [sp, #0x90] + stp x29, x30, [sp, #0x90] # save LR as PC - str lr, [sp, #0xa0] + str x30, [sp, #0xa0] # store RSP (pointing to context-data) in first argument (x0). # STR cannot have sp as a target register @@ -113,7 +113,7 @@ jump_fcontext: ldp x23, x24, [sp, #0x60] ldp x25, x26, [sp, #0x70] ldp x27, x28, [sp, #0x80] - ldp fp, lr, [sp, #0x90] + ldp x29, x30, [sp, #0x90] # use third arg as return value after jump # and as first arg in context function --- CUT HERE ---