[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: