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