Go to file
Lothar Felten c7ffd8a75d package/dtc: fix include guards for older kernel/u-boot
U-Boot has a copy of dtc in-tree. However, it has a bug in its build
system which could result in both one of the in-tree dtc include files
and the same host-installed include file to be #included.

Normally, that wouldn't be a problem, because (a) the two include files
are compatible, so it doesn't matter which one you include, and (b) the
include guards are the same in both, so only one of them really does
get included. However, upstream dtc has changed the include guards,
removing the leading underscore. Therefore, now the header file does
get included twice, which leads to multiple definitions like:

/builds/buildroot.org/buildroot/output/host/include/libfdt.h:1790:19: error: redefinition of 'fdt_appendprop_cell'
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
                   ^~~~~~~~~~~~~~~~~~~
In file included from tools/fdt_host.h:11:0,
                 from tools/imagetool.h:24,
                 from tools/atmelimage.c:8:
tools/../include/libfdt.h:1656:19: note: previous definition of 'fdt_appendprop_cell' was here
 static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
                   ^~~~~~~~~~~~~~~~~~~

To fix this, patch (host) dtc to accept the old include guard as well,
which restores the old behaviour. This patch is probably not
upstreamable, since it's really a hack to work around an issue in
U-Boot.  Note that it has been fixed upstream, but Buildroot supports
building older versions of U-Boot as well.

Note that the problem may still occur if you have libdtc-dev installed
on the host. However, now there is a simple workaround: enable
BR2_TARGET_UBOOT_NEEDS_DTC.

Note that a similar problem also occurs with the beaglebone fork of the
kernel. It's not clear if it has been fixed there.

Signed-off-by: Lothar Felten <lothar.felten@gmail.com>
[Arnout: rewrite commit message, rewrap patch commit message]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2018-10-20 12:35:03 +01:00
arch arch: drop BR2_GCC_TARGET_CPU_REVISION option 2018-10-01 14:52:32 +02:00
board configs/bananapi_m2_ultra: new defconfig 2018-10-14 10:10:36 +02:00
boot boot/uboot: fix environment image generation on big endian systems 2018-10-14 21:11:58 +02:00
configs configs/raspberrypi*: bump kernel version to 6d27aa156c 2018-10-15 13:15:19 +02:00
docs docs/website: add TkOS to the sponsors 2018-10-17 21:27:14 +02:00
fs fs/btrfs: remove destination file before generation 2018-08-25 23:59:23 +02:00
linux {linux, linux-headers}: fix linux-4.9.133.tar.xz checksum 2018-10-17 21:45:41 +02:00
package package/dtc: fix include guards for older kernel/u-boot 2018-10-20 12:35:03 +01:00
support support/testing/tests/core: SSP & hardening flags 2018-10-20 13:25:27 +02:00
system system: update Config.in comment about systemd dependencies 2018-09-15 00:05:48 +02:00
toolchain toolchain/toolchain-wrapper: add BR2_SSP_* support 2018-10-20 12:51:21 +02:00
utils utils/get-developers: fix python 3.x compatibility 2018-10-12 09:05:50 +02:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 .flake8: ignore utils/diffconfig 2018-03-13 22:37:54 +01:00
.gitignore
.gitlab-ci.yml support/testing/tests/core: SSP & hardening flags 2018-10-20 13:25:27 +02:00
.gitlab-ci.yml.in Makefile: introduce check-package target 2018-08-12 14:39:32 +02:00
CHANGES Update for 2018.08.1 2018-10-07 11:44:17 +02:00
Config.in Config.in: add BR2_HOST_GCC_AT_LEAST_8 2018-05-02 14:50:14 +02:00
Config.in.legacy package/linux-headers: really drop the 4.17 choice 2018-10-07 21:45:16 +02:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS python-py: new package 2018-10-15 14:36:45 +02:00
Makefile arch: add support for RISC-V 64-bit (riscv64) architecture 2018-09-23 23:42:41 +02:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
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