FreeBSD Port: www/firefox
Konstantin Belousov
kostikbel at gmail.com
Wed Apr 12 08:17:31 UTC 2017
On Wed, Apr 12, 2017 at 02:00:31AM +0200, Jan Beich wrote:
> Christoph Moench-Tegeder <cmt at burggraben.net> writes:
>
> > ## Jan Beich (jbeich at 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;
More information about the freebsd-threads
mailing list