Michael Buesch wrote:
> On Wednesday 28 October 2009 21:29:10 Felix Fietkau wrote:
>> I did a test with all packages of trunk selected (/packages not
>> included), and 3 packages broke with very weird build failures.
>> This was with a small change to include/package.mk that sets
>> MAKE := $(MAKE) -j 8
>> and some other patches to replace $(MAKE) all install calls with
>> multiple calls.
>> The three packages that broke were apex, iproute2, openssl. Also when
>> I've done similar tests in the past, some other packages also broke,
>> though only under rare, hard to trigger circumstances.
>> If somebody makes a patch that enables package build parallelization, I
>> definitely don't want to have this enabled by default whenever somebody
>> does make -j in the OpenWrt build system.
>> I think most people that use make -j would prefer to have something that
>> may be a little slower, but doesn't cause unexpected build failures
>> depending on the parallelization level.
> 
> Yeah. I'm fine with an option that defaults to off and has a big warning 
> message.
> However, I don't know the buildsystem good enough to add such an option and
> proper parallelization...
I don't know a good solution for that either. Currently
include/package.mk and some other include files forcibly override
MAKEFLAGS, which isolates the individual package makefile processes from
any overrides for the parent context. We'd have to find a way to pass
just the jobserver fds to the child processes.
Another way would be to add a configurable parallelization level for
individual package make processes, which results in a similar override
as the one I used for testing.

- Felix
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to