On FreeBSD13, firefox 88.0.1_1,2 crash with bad system call, if kernel is not compiled with COMPAT_FREEBSD11.
Firefox is build from port using :
ALSA : off
CANBERRA : on
DBUS : on
DEBUG : off
FFMPEG : on
JACK : off
LIBPROXY : on
LTO : on
PROFILE : off
PULSEAUDIO : on
SNDIO : on
TEST : off
I don't think it was the case with previous version.
Set sysctl kern.lognosys=3 then run firefox. Either the controlling terminal
(if any) or dmesg would log which syscall was called. Show it there.
pid 1790 comm firefox: nosys 188
Indeed 188 is the pre-ino64 stat(2).
I noted some time ago that firefox built on stable/11, calls stat@FBSD_1.5 with
the pointer to old struct stat, causing memory corruption. I suspect both this
and your problem are caused by some attempt to dynamically call the syscall.
I cannot provide any more useful input, wait for the maintainers.
(In reply to Stéphane D'Alu from comment #0)
lang/rust generated code requires COMPAT_FREEBSD11, see https://cgit.freebsd.org/ports/tree/Mk/Uses/cargo.mk#n276
www/firefox uses libc crate which due to lack of OS version in --target triple binds to symbols from the oldest still supported FreeBSD major version. After FreeBSD 11.* reaches EOL on 2021-09-30 upstream may bump the default from relying on COMPAT_FREEBSD11 to COMPAT_FREEBSD12. Also, if LIBC_CI is defined via environ(7) libc crate would use freebsd-version(1) to try binding natively but it doesn't support 14.0-CURRENT yet.
Thanks for the explanations.