On 2023/07/24 12:19, Laurence Tratt wrote:
> On an Intel amd64 machine with the latest snapshot (Jul 24th), net/unison
> dies for me on startup with the culprit being `caml_startup__code_begin`. I
> guess this is because O'Caml hasn't been updated sufficiently for IBT? Here's
> what I see:
> 
>   $ unison -h
>   fish: Job 1, 'unison -h' terminated by signal SIGILL (Illegal instruction)
>   $ gdb unison
>   GNU gdb 6.3
>   Copyright 2004 Free Software Foundation, Inc.
>   GDB is free software, covered by the GNU General Public License, and you are
>   welcome to change it and/or distribute copies of it under certain 
> conditions.
>   Type "show copying" to see the conditions.
>   There is absolutely no warranty for GDB.  Type "show warranty" for details.
>   This GDB was configured as "amd64-unknown-openbsd7.3"...
>   (gdb) run
>   Starting program: /usr/local/bin/unison
>   Error while reading shared library symbols:
>   Dwarf Error: wrong version in compilation unit header (is 4, should be 2) 
> [in module /usr/libexec/ld.so]
> 
>   Program received signal SIGILL, Illegal instruction.
>   0x00000d8d44d79a30 in caml_startup__code_begin () from /usr/local/bin/unison
> 
> However, Unison on this same snapshot works fine on an AMD amd64
> machine. AFAIK the main difference between the two is the lack of IBT
> support on the AMD machine.
> 
> 
> Laurie
> 

Yes that's exactly it.

I have just committed changes to ocaml ports to use USE_NOBTCFI=Yes
to disable branch tracking. They can be removed easily if the ocaml
compiler gains support for generating the landing pad nops.

Reply via email to