Hi Mehdi,
I was able to
reproduce the problem. Here is the output :
-bash-4.1$ opam switch 4.02.3
=-=- Installing compiler 4.02.3 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[default.comp] http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.3.tar.gz downloaded
Now compiling OCaml. This may take a while, please bear with us...
[ERROR] Compiler build failed at "make world.opt":
# opam-version 1.2.2
# os linux
# command make world.opt
# path /home/abenali/.opam/4.02.3/build/ocaml
# exit-code 2
# env-file /home/abenali/.opam/log/log-30082-6d07ae.env
# stdout-file /home/abenali/.opam/log/log-30082-6d07ae.out
# stderr-file /home/abenali/.opam/log/log-30082-6d07ae.err
### stdout ###
# [...]
# ln -s ../byterun/debugger.c debugger.c
# gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_none -DSYS_unknown -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -c -o debugger.o debugger.c
# ln -s ../byterun/meta.c meta.c
# gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_none -DSYS_unknown -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -c -o meta.o meta.c
# ln -s ../byterun/dynlink.c dynlink.c
# gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_none -DSYS_unknown -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT -c -o dynlink.o dynlink.c
# make[4]: Leaving directory `/gpfs/vesta-home/abenali/.opam/4.02.3/build/ocaml/asmrun'
# make[3]: Leaving directory `/gpfs/vesta-home/abenali/.opam/4.02.3/build/ocaml'
# make[2]: Leaving directory `/gpfs/vesta-home/abenali/.opam/4.02.3/build/ocaml'
# make[1]: Leaving directory `/gpfs/vesta-home/abenali/.opam/4.02.3/build/ocaml'
### stderr ###
# backtrace.c:103:14: warning: implicit declaration of function 'Callback_link' [-Wimplicit-function-declaration]
# [...]
# ^
# backtrace.c:103:44: warning: initialization makes pointer from integer without a cast [enabled by default]
# struct caml_context * next_context = Callback_link(*sp);
# ^
# make[4]: *** No rule to make target `none.o', needed by `libasmrun.a'. Stop.
# make[3]: *** [makeruntimeopt] Error 2
# make[2]: *** [opt-core] Error 2
# make[1]: *** [opt.opt] Error 2
# make: *** [world.opt] Error 2
-bash-4.1$ uname -a
Linux vestalac1 2.6.32-431.20.5.el6.ppc64 #1 SMP Wed Jul 16 05:27:12 EDT 2014 ppc64 ppc64 ppc64 GNU/Linux
and here is a bit of the /proc/cpuinfo:
...
processor : 47
cpu : POWER7 (architected), altivec supported
clock : 3720.000000MHz
revision : 2.1 (pvr 003f 0201)
timebase : 512000000
platform : pSeries
model : IBM,8205-E6B
machine : CHRP IBM,8205-E6B
Using ocaml 4.03.0+dev12-2015-11-20 solved the problem, but I don’t more.
Cheers,
Anthony
On 01/20/2016 07:19 PM, Mehdi Dogguy wrote:
On 19/01/2016 22:10, Mehdi Dogguy wrote:Can you please tell us about the patches applied on top of 4.02.3 to get it compiling? I've already compiled opam using ocaml 4.01 or 4.02 on ppc64el without any issues. So, I am a bit surprised. Maybe I've missed something though.FWIW, the same question applies even one consider ppc64 (big endian), s390 or s390x. In my experience, all four architectures didn't cause issues wrt. ocaml projects (or ocaml itself). So, I'm genuinely interested in hearing what could go (or went) wrong there and how observed issues were fixed. ocamlopt is certainly not available everywhere and sometimes, one has to put a little patch relevant on bytecode architectures. but i didn't see more complex or deep issues there.
-- Anthony Scemama Laboratoire de Chimie et Physique Quantiques IRSAMC - CNRS - Universite de Toulouse