In Makefiles, variables are split, filtered, and otherwise mangled on a space as a separator. In a shell, they will also be split on TABs. We split and filter and iterate on variables in a lot of places, and most importantly, spaces in PATH is very seldom tested, if at all, so a lot of packages will not be working properly in such a situation. For example, the config.guess contains constructs that are not resilient to a space in PATH: PATH=$PATH:/.attbin ; export PATH Also, our fakedate will iterate over PATH: for P in `echo $PATH | tr ':' ' '`; do Those are only two cases, but the first means basically all autotools-based packages are susceptible to subtle breakage. Furthermore, Buildroot itself does not support that the top-level or output directories are in a path with spaces anyway. So, instead of chasing all cases that might be potentially broken, let's just detect the case and bail out, like we already do when PATH contains a \n, or when it contains the current working directory. Reported-by: Dan Raymond <draymond@foxvalley.net> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
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 Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches