Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Jan 2015 11:35:20 -0700 (MST)
From:      sson <sson@FreeBSD.org>
To:        freebsd-python@freebsd.org
Subject:   Re: python waf bypasses _MAKE_JOBS number
Message-ID:  <1420828520061-5979566.post@n5.nabble.com>
In-Reply-To: <CAALwa8=q-3ZAQRxkgU0_EJL4qHYoA2%2BtE-=9%2BODSVi-uHeP2Aw@mail.gmail.com>
References:  <54AC74E0.4050404@ignoranthack.me> <20150107072132.GA1050@medusa.sysfault.org> <54AD5BB9.2060701@ignoranthack.me> <1420653060968-5979111.post@n5.nabble.com> <20150109183334.Horde.DDLUOEFT2TrMFUcP63h_9Q1@webmail.df.eu> <54B0154B.80801@ignoranthack.me> <CAALwa8=q-3ZAQRxkgU0_EJL4qHYoA2%2BtE-=9%2BODSVi-uHeP2Aw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Antoine Brodin-2 wrote
> On Fri, Jan 9, 2015 at 5:52 PM, Sean Bruno &lt;

> sbruno@

> &gt; wrote:
>> Marcus:
>>
>> The thing that I would like "fixed" is python waf ignoring the fact
>> that it should not try and detect the number of CPUs on the system.
>>
>=20
> Let me rephrase the problem,  there are some problems in some
> individual ports using waf.
> Those ports do not respect ${MAKE_JOBS_NUMBER},  especially when
> MAKE_JOBS_NUMBER=3D1.
> This breaks qemu which is not multi job friendly  (people using qemu
> have DISABLE_MAKE_JOBS=3Dyes which sets MAKE_JOBS_NUMBER to 1).
>=20
> Cheers,
>=20
> Antoine
> _______________________________________________

> freebsd-python@

>  mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-python
> To unsubscribe, send any mail to "

> freebsd-python-unsubscribe@

> "


Actually Qemu (user-mode) is thread friendly (for the most part, anyway).=
=20
Lots of other threaded programs will run just fine.  There is a known
problem with dealing with signals and threads but this is not the case with
waf (and shows up usually with cmake instead).    The problem with waf seem=
s
to be the old bug that was reported in
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D160717 seems to still
exist in the FreeBSD/arm, FreeBSD/mips, and maybe other threading
implementations.

The workaround is to only use "--jobs=3D1" with python waf.  Of course, thi=
s
is what Proudriere wants to do anyway but it seems that all the port
maintainers that use the waf build system assume if the "--job=3D..." argum=
ent
is not given then python waf will assume that it should be "--jobs=3D1" by
default.

Look at the Makefile for the devel/talloc port for example=E2=80=A6  Note t=
hat
Poudriere defines the DISABLE_MAKE_JOB variable.

.if !defined(DISABLE_MAKE_JOBS) && !defined(MAKE_JOBS_UNSAFE)
CONFIGURE_ARGS+=3D        --jobs=3D${MAKE_JOBS_NUMBER}
_MAKE_JOBS+=3D            --jobs=3D${MAKE_JOBS_NUMBER}
.endif

Therefore, CONFIGURE_ARGS and _MAKE_JOBS never get set to =E2=80=9C=E2=80=
=94jobs=3D1=E2=80=9D and
Python waf then assumes it should be =E2=80=9C=E2=80=94jobs=3D<number of co=
res>=E2=80=9D.

Maybe it should be?...

.if !defined(DISABLE_MAKE_JOBS) && !defined(MAKE_JOBS_UNSAFE)
 CONFIGURE_ARGS+=3D        --jobs=3D${MAKE_JOBS_NUMBER}
 _MAKE_JOBS+=3D            --jobs=3D${MAKE_JOBS_NUMBER}
.else
 CONFIGURE_ARGS+=3D  =E2=80=9C=E2=80=94jobs=3D1=E2=80=9D
 _MAKE_JOBS+=3D =E2=80=9C=E2=80=94jobs=3D1"
.endif

So maybe it is more like a documentation bug with waf?

Best Regards,

-stacey.



--
View this message in context: http://freebsd.1045724.n5.nabble.com/python-w=
af-bypasses-MAKE-JOBS-number-tp5978938p5979566.html
Sent from the freebsd-python mailing list archive at Nabble.com.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1420828520061-5979566.post>