Konstantin Belousov <kostik...@gmail.com> writes: > On Wed, Apr 12, 2017 at 02:00:31AM +0200, Jan Beich wrote: > >> Christoph Moench-Tegeder <c...@burggraben.net> writes: >> >> > ## Jan Beich (jbe...@freebsd.org): >> > >> >> Walter Schwarzenfeld (privately) writes: >> >> > With gtk3 on it starts after sysctl p1003_1b.sem_nsems_max=512. >> >> > Please => pkg-message. >> >> >> >> Don't use sem(4), it's deprecated since FreeBSD 9.0. >> >> p1003_1b.sem_nsems_max >> >> doesn't have an effect with the new implementation. >> >> >> >> https://svnweb.freebsd.org/changeset/base/201546 >> > >> > Um. Firefox' "configure" code explicitly checks the maximum number >> > of semaphores via sysconf(_SC_SEM_NSEMS_MAX) (that's in >> > python/futures/concurrent/futures/process.py l. 250). As far as I >> > can tell, in FreeBSD 10.3 that value is set by sysctl >> > p1003_1b.sem_nsems_max - so at least for the "old" FreeBSD, that >> > would be the way to go? (and it worked for me). >> >> FreeBSD 8.x has been EOL since 2015-08-01. However, sysconf() ends up >> using sem(4) even for new code. Maybe someone from threads@ knows more. >> >> $ getconf SEM_NSEMS_MAX >> undefined >> >> $ kldload sem >> $ getconf SEM_NSEMS_MAX >> 30 > > The following should fix sysconf(3): > > diff --git a/lib/libc/gen/sysconf.c b/lib/libc/gen/sysconf.c > index ffd9f6b4fa7..a69f3778b64 100644 > --- a/lib/libc/gen/sysconf.c > +++ b/lib/libc/gen/sysconf.c > @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); > #include <limits.h> > #include <paths.h> > #include <pthread.h> /* we just need the limits */ > +#include <semaphore.h> > #include <time.h> > #include <unistd.h> > #include "un-namespace.h" > @@ -299,13 +300,9 @@ do_NAME_MAX: > mib[1] = CTL_P1003_1B_RTSIG_MAX; > goto yesno; > case _SC_SEM_NSEMS_MAX: > - mib[0] = CTL_P1003_1B; > - mib[1] = CTL_P1003_1B_SEM_NSEMS_MAX; > - goto yesno; > + return (-1); > case _SC_SEM_VALUE_MAX: > - mib[0] = CTL_P1003_1B; > - mib[1] = CTL_P1003_1B_SEM_VALUE_MAX; > - goto yesno; > + return (SEM_VALUE_MAX); > case _SC_SIGQUEUE_MAX: > mib[0] = CTL_P1003_1B; > mib[1] = CTL_P1003_1B_SIGQUEUE_MAX;
I confirm, the patch fixes Firefox 53+ build with sem(4) loaded.
signature.asc
Description: PGP signature