Re: Build failure of janest-base on arm64...
Hi Stéphane,
On Mon, Jan 13, 2020 at 05:32:35PM +0100, Stéphane Glondu wrote:
>janest-base FTBFS on arm64 (and only on this architecture) (buildd
>arm-arm-04) with a SIGILL. However, I cannot reproduce on arm64
>porterbox (amdahl). I've given it back, and it still fails (on arm-ubc-02).
>
>Does somebody have an idea on what's going on?
Hmmm. So, that's failing on two different machines, each with
different hardware types:
* arm-arm-04 (AMD Seattle, Cortex-A57)
* arm-ubc-02 (Socionext Synquacer, Cortex-A53)
but works on YA different one:
* amdahl (APM X-Gene 1)
I've just checked on arm-arm-04 and I don't see anything in the syslog
to give clues as to what mught have failed. Checking locally on my
Macchiatobin:
* mjolnir (Marvell Armada 8040, Cortex-A72)
it also fails, which gives me a more useful way to attack this with a
debugger.
(sid-arm64)steve@mjolnir:~/build/janest-base/janest-base-0.13.0/_build/default/compiler-stdlib/src$ gdb ../gen/gen.exe
...
(gdb) r -ocaml-where /usr/lib/ocaml -o caml.ml
Starting program: /home/steve/build/janest-base/janest-base-0.13.0/_build/default/compiler-stdlib/gen/gen.exe -ocaml-where /usr/lib/ocaml -o caml.ml
Program received signal SIGILL, Illegal instruction.
0x0000aaaaab0647f8 in e843419@0031_00000203_b74 ()
(gdb) bt
#0 0x0000aaaaab0647f8 in e843419@0031_00000203_b74 ()
#1 0x0000aaaaab062ff8 in camlPredef__common_initial_env_322 () at typing/predef.ml:227
#2 0x0000aaaaab063700 in camlPredef__build_initial_env_390 () at typing/predef.ml:239
#3 0x0000aaaaab07800c in camlEnv__entry () at typing/env.ml:2685
#4 0x0000aaaaaafb1adc in caml_program ()
#5 0x0000aaaaab21f644 in caml_start_program ()
#6 0x0000aaaaab21fec0 in caml_startup_common ()
#7 0x0000aaaaab21ff08 in caml_startup ()
#8 0x0000aaaaaafb1220 in main ()
(gdb) list
1 ../sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c: No such file or directory.
(gdb) disassemble
Dump of assembler code for function e843419@0031_00000203_b74:
=> 0x0000aaaaab0647f8 <+0>: .inst 0x00000000 ; undefined
0x0000aaaaab0647fc <+4>: b 0xaaaaab063008 <camlPredef__common_initial_env_322+2112>
End of assembler dump.
I'm not sure exactly what's going on here. I know *nothing* about
ocaml to know what the code in predef.ml is trying to do. Line 227 is
add_type ident_exn decl_exn (
The reference to dl-procinfo.c is buried in the guts of glibc - that
file defines the expected cpuinfo flags. *Guessing* - is something in
ocaml trying to parse the cpuinfo flags and making a mistake? That
*might* explain why you're getting different results here from one
machine to the next. But that's just a guess.
--
Steve McIntyre, Cambridge, UK. steve@einval.com
"This dress doesn't reverse." -- Alden Spiess
Reply to: