mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-09 07:51:59 -09:00
3ce3e04d02aa6b8f1841b6faafa14260085fc350
Building a simple configuration such as: BR2_aarch64=y BR2_FORCE_HOST_BUILD=y Under our reference Docker container, as an out-of-tree build: ./utils/docker-run make O=output-test will fail during the glibc staging installation step with: /usr/bin/install -c -m 644 /home/thomas/buildroot/br/output-glibc/build/glibc-2.42-3-gbc13db73937730401d592b33092db6df806d193e/build/libc.a /usr/lib64/libc.a /usr/bin/install: cannot create regular file '/usr/lib64/libc.a': Permission denied The problem being that the install_root variable is for some reason lost along the way. We definitely pass it during the staging installation step, but then glibc calls a sub-make and in that submake, install_root is empty. Observations: - Building the same configuration inside the Docker container, but in-tree, doesn't exhibit the problem. - Building outside of the Docker container, but with the same make version as the one we build due to BR2_FORCE_HOST_BUILD=y doesn't exhibit the problem. However, it turns out that glibc sets install_root to $(DESTDIR). And passing DESTDIR just works. So we drop our custom GLIBC_INSTALL_STAGING_OPTS to rely on the default one, and this fixes the problem. It's not extremely satisfying to not fully understand what's going on, but after spending quite some time on this, and having a trivial and actually pretty nice workaround, we simply propose to use this solution. There is no autobuilder issue as we're not using our Docker container to do autobuild builds. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
…
…
…
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
Description
Languages
Makefile
62.5%
Python
19%
C
8.5%
Shell
6.1%
PHP
1.4%
Other
2.1%