Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Apr 2017 21:10:00 +0200
From:      Jan Beich <jbeich@FreeBSD.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Christoph Moench-Tegeder <cmt@burggraben.net>, freebsd-gecko@freebsd.org, freebsd-threads@freebsd.org
Subject:   Re: FreeBSD Port: www/firefox
Message-ID:  <efwx-e92v-wny@FreeBSD.org>
In-Reply-To: <20170412081718.GU1788@kib.kiev.ua> (Konstantin Belousov's message of "Wed, 12 Apr 2017 11:17:18 %2B0300")
References:  <CAFn_OkF1V3CHTQCQFG_HDJ5dmuXvTYxX6UOoe81rpKyiF19WcA@mail.gmail.com> <1491928081558-6179754.post@n6.nabble.com> <37de-onxw-wny@FreeBSD.org> <20170411182519.GB1556@elch.exwg.net> <o9w2-ebq8-wny@FreeBSD.org> <20170412081718.GU1788@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
--=-=-=
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Konstantin Belousov <kostikbel@gmail.com> writes:

> On Wed, Apr 12, 2017 at 02:00:31AM +0200, Jan Beich wrote:
>
>> Christoph Moench-Tegeder <cmt@burggraben.net> writes:
>>=20
>> > ## Jan Beich (jbeich@FreeBSD.org):
>> >
>> >> Walter Schwarzenfeld (privately) writes:
>> >> > With gtk3 on it starts after sysctl p1003_1b.sem_nsems_max=3D512.
>> >> > Please =3D> pkg-message.
>> >>=20
>> >> Don't use sem(4), it's deprecated since FreeBSD 9.0. p1003_1b.sem_nse=
ms_max
>> >> doesn't have an effect with the new implementation.
>> >>=20
>> >> 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).
>>=20
>> 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.
>>=20
>> $ getconf SEM_NSEMS_MAX
>> undefined
>>=20
>> $ 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] =3D CTL_P1003_1B_RTSIG_MAX;
>  		goto yesno;
>  	case _SC_SEM_NSEMS_MAX:
> -		mib[0] =3D CTL_P1003_1B;
> -		mib[1] =3D CTL_P1003_1B_SEM_NSEMS_MAX;
> -		goto yesno;
> +		return (-1);
>  	case _SC_SEM_VALUE_MAX:
> -		mib[0] =3D CTL_P1003_1B;
> -		mib[1] =3D CTL_P1003_1B_SEM_VALUE_MAX;
> -		goto yesno;
> +		return (SEM_VALUE_MAX);
>  	case _SC_SIGQUEUE_MAX:
>  		mib[0] =3D CTL_P1003_1B;
>  		mib[1] =3D CTL_P1003_1B_SIGQUEUE_MAX;

I confirm, the patch fixes Firefox 53+ build with sem(4) loaded.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQF8BAEBCgBmBQJY7nuIXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXREQjQ0MzY3NEM3RDIzNTc4NkUxNDkyQ0VF
NEM3Nzg4MzQ3OURCRERCAAoJEOTHeINHnb3b6VQH/1N1+GzRuT236h304Gmjmttf
K46wLTKqkNGiQhmHjUipa04Mqgn7tRC9JxisG70WcP2rbx7Q94J02BZqm9opx7zE
gCoT7xKMVpjAxic3ZVOrWeTFQGZVMgwCMYoAPtUfv32RURbUFvLKqX16PihTdHf3
magHE6/m3A5hOFxTbK4MGLT8oXGGSacXqcUacjwtEnb5Nk63j4EnkcpW0KHfYLEi
PKNXPHid/Fi6ISFPj9gRmzDgWwLV/+sm1n6UuRehxhKLxBT06fT6xFWzXEQrUhle
qdGq6lzT+Qk26T+02UTvSVd7mMLSJoa7TpYusI7QfbNgtL/vtfSRNE9pUbmN+Lo=
=PmDL
-----END PGP SIGNATURE-----
--=-=-=--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?efwx-e92v-wny>