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.
No comments:
Post a Comment