Go to file
Thomas Petazzoni bbb7f6c16c Makefile: add check of binaries architecture
As shown recently by the firejail example, it is easy to miss that a
package builds and installs binaries without actually cross-compiling
them: they are built for the host architecture instead of the target
architecture.

This commit adds a small helper script, check-bin-arch, called as a
GLOBAL_INSTRUMENTATION_HOOKS at the end of the target installation of
each package, to verify that the files installed by this package have
been built for the correct architecture.

Being called as a GLOBAL_INSTRUMENTATION_HOOKS allows the build to error
out right after the installation of the faulty package, and therefore
get autobuilder error detection properly assigned to this specific
package.

Example output with the firejail package enabled, when building for an
ARM target:

ERROR: architecture for ./usr/lib/firejail/libconnect.so is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/bin/firejail is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/lib/firejail/libtrace.so is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/lib/firejail/libtracelog.so is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/lib/firejail/ftee is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/lib/firejail/faudit is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/bin/firemon is Advanced Micro Devices X86-64, should be ARM
ERROR: architecture for ./usr/bin/firecfg is Advanced Micro Devices X86-64, should be ARM

Many thanks to Yann E. Morin and Arnout Vandecappelle for their reviews
and suggestions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-20 22:22:22 +01:00
arch arch: add BR2_READELF_ARCH_NAME hidden config option 2017-03-20 22:22:17 +01:00
board configs/qemu: update xtensa linux to 4.9 2017-03-14 21:55:04 +01:00
boot uboot: improve BR2_TARGET_UBOOT_SPL_NAME help text 2017-03-14 23:38:39 +01:00
configs configs/qemu: update xtensa linux to 4.9.16 2017-03-20 22:00:06 +01:00
docs docs/manual: document MPL licenses 2017-03-16 16:58:04 +01:00
fs fs/iso9660: doesn't support (grub2) EFI 2017-03-01 21:52:58 +01:00
linux linux: bump default to version 4.10.4 2017-03-18 15:27:20 +01:00
package Makefile: add check of binaries architecture 2017-03-20 22:22:22 +01:00
support Makefile: add check of binaries architecture 2017-03-20 22:22:22 +01:00
system skeleton: fix permissions on /dev/pts/ptmx 2017-03-18 15:24:56 +01:00
toolchain package/pkg-toolchain-external: indentation cleanup 2017-03-19 14:09:37 +01:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
.gitlab-ci.yml gitlab-ci: add gcc-multilib to the docker image 2017-03-10 14:22:25 +01:00
.gitlab-ci.yml.in gitlab-ci: add gcc-multilib to the docker image 2017-03-10 14:22:25 +01:00
CHANGES Update for 2016.11.3 2017-03-10 12:37:14 +01:00
Config.in package: add generic support for lz archives 2017-02-15 22:11:11 +01:00
Config.in.legacy polarssl: remove unmaintained package 2017-03-18 14:16:49 +01:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS package/libnpth: new package 2017-03-19 21:27:42 +01:00
Makefile Add gitlab-CI support 2017-03-05 22:21:50 +01:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README README: add reference to submitting-patches 2016-02-01 19:16:08 +01:00

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