4c24006b0e
With recent dtc but old u-boot, compilation issues occur related to libfdt. These problems really are u-boot issue since it does not properly set include paths so that its own headers are included. Nevertheless, since the u-boot version is typically decided by users and stuck at some version provided by a SoC or board vendor, it is not feasible to fix those old versions. Instead, already several fixes were made in the past, in Buildroot. See commits:c7ffd8a75d
"package/dtc: fix include guards for older kernel/u-boot"f437bf547c
"uboot: fix build for older uboot source trees"bf73334232
"uboot: fix build when libfdt-devel is installed system-wide"0bf80e4bcd
"uboot: ensure host includes are searched before system default includes"b15a7a62d3
"uboot: revert "uboot: use local libfdt.h""baae5156ce
"uboot: use local fdt headers"3a6573ccee
"uboot: use local libfdt.h" Commitc7ffd8a75d
fixes the problem caused by dtc having changed their include guards from _FOO_H to FOO_H (leading underscore removed). Old u-boot would still use _FOO_H, which (combined with host-dtc headers that use FOO_H) would cause the inclusion of two different copies of the same nominal include file, e.g. libfdt.h or libfdt_env.h, causing 'error: redefinition of xxx' compilation issues. The fix sets the 'new' include guard when the 'old' one is detected, preventing a second inclusion of the same nominal file. For some u-boot versions, however, this change not only needs to be made in libfdt.h and libfdt_env.h, but also in 'fdt.h'. Update the dtc patch to do just that. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
63 lines
1.7 KiB
Diff
63 lines
1.7 KiB
Diff
From 086283ed7f1886de05407bc75dd4c070c78a6f50 Mon Sep 17 00:00:00 2001
|
|
From: Lothar Felten <lothar.felten@gmail.com>
|
|
Date: Mon, 8 Oct 2018 13:29:44 +0200
|
|
Subject: [PATCH] Fix include guards for older kernel/u-boot sources
|
|
|
|
Linux kernels before 4.17 and U-Boot versions before 2018.07 use libfdt
|
|
include guards with leading underscores.
|
|
|
|
Those have been removed in dtc-1.4.7.
|
|
|
|
This patch handles both include guard types and allows the compilation
|
|
of older Linux kernel and u-boot sources.
|
|
|
|
Signed-off-by: Lothar Felten <lothar.felten@gmail.com>
|
|
[ThomasDS: also update fdt.h which has the same issue, seen on U-Boot
|
|
2011.03]
|
|
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
|
|
---
|
|
libfdt/fdt.h | 4 ++++
|
|
libfdt/libfdt.h | 4 ++++
|
|
libfdt/libfdt_env.h | 4 ++++
|
|
3 files changed, 12 insertions(+)
|
|
|
|
diff --git a/libfdt/fdt.h b/libfdt/fdt.h
|
|
index 74961f9..2904f48 100644
|
|
--- a/libfdt/fdt.h
|
|
+++ b/libfdt/fdt.h
|
|
@@ -1,3 +1,7 @@
|
|
+#ifdef _FDT_H
|
|
+#warning "Please consider updating your kernel and/or u-boot version"
|
|
+#define FDT_H
|
|
+#endif
|
|
#ifndef FDT_H
|
|
#define FDT_H
|
|
/*
|
|
diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
|
|
index 830b77e..bef4566 100644
|
|
--- a/libfdt/libfdt.h
|
|
+++ b/libfdt/libfdt.h
|
|
@@ -1,3 +1,7 @@
|
|
+#ifdef _LIBFDT_H
|
|
+#warning "Please consider updating your kernel and/or u-boot version"
|
|
+#define LIBFDT_H
|
|
+#endif
|
|
#ifndef LIBFDT_H
|
|
#define LIBFDT_H
|
|
/*
|
|
diff --git a/libfdt/libfdt_env.h b/libfdt/libfdt_env.h
|
|
index eb20538..6a61e6a 100644
|
|
--- a/libfdt/libfdt_env.h
|
|
+++ b/libfdt/libfdt_env.h
|
|
@@ -1,3 +1,7 @@
|
|
+#ifdef _LIBFDT_ENV_H
|
|
+#warning "Please consider updating your kernel and/or u-boot version"
|
|
+#define LIBFDT_ENV_H
|
|
+#endif
|
|
#ifndef LIBFDT_ENV_H
|
|
#define LIBFDT_ENV_H
|
|
/*
|
|
--
|
|
2.19.2
|
|
|