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