ssp@ssp-vb:/mnt/ssp/1$ ocamlbuild -toolchain android -use-ocamlfind router.native
+ ocamlfind -toolchain android ocamlc -c -package ZMQ -package lwt.unix -package ppx_deriving_protobuf -o router.cmo router.ml
+ ocamlfind -toolchain android ocamlopt -c -package ZMQ -package lwt.unix -package ppx_deriving_protobuf -o router.cmx router.ml
+ ocamlfind -toolchain android ocamlopt -linkpkg -package ZMQ -package lwt.unix -package ppx_deriving_protobuf lwt_zmq.cmx router.cmx -o router.native
/home/ssp/build/tmp-glibc/sysroots/i686-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation
/home/ssp/build/tmp-glibc/sysroots/i686-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: /home/ssp/.opam/4.04.0+32bit/android-sysroot/lib/ppx_deriving/ppx_deriving_runtime.a(ppx_deriving_runtime.o): Relocations in generic ELF (EM: 3)
/home/ssp/build/tmp-glibc/sysroots/i686-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: /home/ssp/.opam/4.04.0+32bit/android-sysroot/lib/ppx_deriving/ppx_deriving_runtime.a(ppx_deriving_runtime.o): Relocations in generic ELF (EM: 3)
/home/ssp/build/tmp-glibc/sysroots/i686-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/6.2.0/ld: /home/ssp/.opam/4.04.0+32bit/android-sysroot/lib/ppx_deriving/ppx_deriving_runtime.a(ppx_deriving_runtime.o): Relocations in generic ELF (EM: 3)
/home/ssp/.opam/4.04.0+32bit/android-sysroot/lib/ppx_deriving/ppx_deriving_runtime.a: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking
Command exited with code 2.
Compilation unsuccessful after building 7 targets (0 cached) in 00:00:01.
So, I've extracted content of ppx_deriving_runtime.a:
ssp@ssp-vb:/mnt/ssp/1$ ar x /home/ssp/.opam/4.04.0+32bit/android-sysroot/lib/ppx_deriving/ppx_deriving_runtime.a
ssp@ssp-vb:/mnt/ssp/1$ file ppx_deriving_runtime.o
ppx_deriving_runtime.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
It's simple to fix ppx_deriving-android to create right version of library: just add "-toolchain android" to pkg/build.ml:
When I tried to build my code I got:
So, I've extracted content of ppx_deriving_runtime.a:
It's simple to fix ppx_deriving-android to create right version of library: just add "-toolchain android" to pkg/build.ml:
But package failed to build since it can't find dynlink.cmxa compiled for ARM: