Looks like this part from dchagin's patch http://lists.freebsd.org/pipermail/freebsd-emulation/2008-September/005273.html didn't get applied, at least alpha versions of Linux Firefox 3.7 needs it http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ because of this code: http://mxr.mozilla.org/mozilla-central/source/toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc#239 That Firefox also needs a small patch to allow setsockopt() with SOCK_SEQPACKET, I've put that here: http://people.freebsd.org/~nox/afunix_seqpacket_sockopt.patch ..and if you aren't running head you also need to merge this commit first: http://svn.freebsd.org/viewvc/base?view=revision&revision=197775 I'v put an 8-stable patch for that here: http://people.freebsd.org/~nox/afunix_seqpacket-8stable.patch (But the java plugin still doesn't work, only flash...) Index: src/sys/amd64/linux32/linux.h @@ -691,6 +691,7 @@ union l_semun { #define LINUX_SO_NO_CHECK 11 #define LINUX_SO_PRIORITY 12 #define LINUX_SO_LINGER 13 +#define LINUX_SO_PASSCRED 16 #define LINUX_SO_PEERCRED 17 #define LINUX_SO_RCVLOWAT 18 #define LINUX_SO_SNDLOWAT 19 Index: src/sys/compat/linux/linux_socket.c @@ -295,6 +295,8 @@ linux_to_bsd_so_sockopt(int opt) return (SO_OOBINLINE); case LINUX_SO_LINGER: return (SO_LINGER); + case LINUX_SO_PASSCRED: + return (LOCAL_CREDS); case LINUX_SO_PEERCRED: return (LOCAL_PEERCRED); case LINUX_SO_RCVLOWAT: @@ -1376,6 +1378,11 @@ linux_setsockopt(struct thread *td, stru switch (bsd_args.level) { case SOL_SOCKET: name = linux_to_bsd_so_sockopt(args->optname); + switch (args->optname) { + case LINUX_SO_PASSCRED: + /* FreeBSD bug? socket level opts at non socket level */ bsd_args.level = 0; + break; + } switch (name) { case SO_RCVTIMEO: /* FALLTHROUGH */ @@ -1453,6 +1460,11 @@ linux_getsockopt(struct thread *td, stru switch (bsd_args.level) { case SOL_SOCKET: name = linux_to_bsd_so_sockopt(args->optname); + switch (args->optname) { + case LINUX_SO_PASSCRED: + /* FreeBSD bug? socket level opts at non socket level */ bsd_args.level = 0; + break; + } switch (name) { case SO_RCVTIMEO: /* FALLTHROUGH */ Index: src/sys/i386/linux/linux.h @@ -667,6 +667,7 @@ union l_semun { #define LINUX_SO_NO_CHECK 11 #define LINUX_SO_PRIORITY 12 #define LINUX_SO_LINGER 13 +#define LINUX_SO_PASSCRED 16 #define LINUX_SO_PEERCRED 17 #define LINUX_SO_RCVLOWAT 18 #define LINUX_SO_SNDLOWAT 19