The reinstall, rebuild and reconfigure commands rely on the left-to-right order of evaluation of the dependencies to make sure that the stamp files are removed before attempting to rebuild. However, this order of evaluation is not guaranteed. In particular, if top-level parallel build is enabled, they are executed in parallel and the stamp file may not have been removed yet when it is evaluated to decide if rebuild has to be done. Since make 4.4, it is possible to reproduce this issue by passing `--shuffle=reverse` to the make commandline. To solve this, add a .WAIT directive between the clean and install/build/configure dependencies. .WAIT was introduced in make 4.4 as well. It makes sure that the dependencies on the left are evaluated before the dependencies on the right - exactly what we want here. Earlier versions of make don't know about .WAIT, so we need to add a .PHONY dependency to effectively ignore it. Note that this doesn't fix the problem for make versions earlier than 4.4. However, the issue isn't really that important: reinstall, rebuild and reconfigure are development tools, they're not fully reliable to begin with, and it's anyway less likely that someone uses `make -j` when doing a reinstall/rebuild/reconfigure. Signed-off-by: Arnout Vandecappelle <arnout@mind.be> Reported-by: James Hilliard <james.hilliard1@gmail.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.checkpackageignore | ||
.clang-format | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.shellcheckrc | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on OFTC IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches