Hi, I'm adding this patch just for later reference. It fixes building of 4.01.0-2 on powerpcspe as native arch.
Roland
Index: ocaml-4.01.0/asmrun/power-elf.S =================================================================== --- ocaml-4.01.0.orig/asmrun/power-elf.S 2013-11-30 20:32:23.399088089 +0100 +++ ocaml-4.01.0/asmrun/power-elf.S 2013-11-30 20:32:23.391088031 +0100 @@ -73,6 +73,7 @@ stwu 27, 4(11) stwu 28, 4(11) addi 11, 1, 32 - 8 +#ifndef __NO_FPRS__ stfdu 1, 8(11) stfdu 2, 8(11) stfdu 3, 8(11) @@ -104,6 +105,7 @@ stfdu 29, 8(11) stfdu 30, 8(11) stfdu 31, 8(11) +#endif /* Call the GC */ bl caml_garbage_collection /* Reload new allocation pointer and allocation limit */ @@ -135,6 +137,7 @@ lwzu 27, 4(11) lwzu 28, 4(11) addi 11, 1, 32 - 8 +#ifndef __NO_FPRS__ lfdu 1, 8(11) lfdu 2, 8(11) lfdu 3, 8(11) @@ -166,6 +169,7 @@ lfdu 29, 8(11) lfdu 30, 8(11) lfdu 31, 8(11) +#endif /* Return to caller, restarting the allocation */ Loadglobal(0, caml_last_return_address, 11) addic 0, 0, -16 /* Restart the allocation (4 instructions) */ @@ -262,6 +266,7 @@ stwu 29, 4(11) stwu 30, 4(11) stwu 31, 4(11) +#ifndef __NO_FPRS__ stfdu 14, 8(11) stfdu 15, 8(11) stfdu 16, 8(11) @@ -280,6 +285,7 @@ stfdu 29, 8(11) stfdu 30, 8(11) stfdu 31, 8(11) +#endif /* Set up a callback link */ addi 1, 1, -16 Loadglobal(9, caml_bottom_of_stack, 11) @@ -343,6 +349,7 @@ lwzu 29, 4(11) lwzu 30, 4(11) lwzu 31, 4(11) +#ifndef __NO_FPRS__ lfdu 14, 8(11) lfdu 15, 8(11) lfdu 16, 8(11) @@ -361,6 +368,7 @@ lfdu 29, 8(11) lfdu 30, 8(11) lfdu 31, 8(11) +#endif /* Reload return address */ lwz 0, 256+4(1) mtlr 0 --- ocaml-4.01.0.orig/testsuite/tests/asmcomp/power-elf.S +++ ocaml-4.01.0/testsuite/tests/asmcomp/power-elf.S @@ -14,6 +14,49 @@ /* GPR 14 at sp+16 ... GPR 31 at sp+84 FPR 14 at sp+92 ... FPR 31 at sp+228 */ +#ifdef __NO_FPRS__ +#define Save_callee_save \ + addic 11, 1, 16-4; \ + stwu 14, 4(11); \ + stwu 15, 4(11); \ + stwu 16, 4(11); \ + stwu 17, 4(11); \ + stwu 18, 4(11); \ + stwu 19, 4(11); \ + stwu 20, 4(11); \ + stwu 21, 4(11); \ + stwu 22, 4(11); \ + stwu 23, 4(11); \ + stwu 24, 4(11); \ + stwu 25, 4(11); \ + stwu 26, 4(11); \ + stwu 27, 4(11); \ + stwu 28, 4(11); \ + stwu 29, 4(11); \ + stwu 30, 4(11); \ + stwu 31, 4(11); + +#define Restore_callee_save \ + addic 11, 1, 16-4; \ + lwzu 14, 4(11); \ + lwzu 15, 4(11); \ + lwzu 16, 4(11); \ + lwzu 17, 4(11); \ + lwzu 18, 4(11); \ + lwzu 19, 4(11); \ + lwzu 20, 4(11); \ + lwzu 21, 4(11); \ + lwzu 22, 4(11); \ + lwzu 23, 4(11); \ + lwzu 24, 4(11); \ + lwzu 25, 4(11); \ + lwzu 26, 4(11); \ + lwzu 27, 4(11); \ + lwzu 28, 4(11); \ + lwzu 29, 4(11); \ + lwzu 30, 4(11); \ + lwzu 31, 4(11); +#else #define Save_callee_save \ addic 11, 1, 16-4; \ stwu 14, 4(11); \ @@ -91,6 +134,7 @@ lfdu 29, 8(11); \ lfdu 30, 8(11); \ lfdu 31, 8(11) +#endif .section ".text"