From: Philippe MONTCHO <philippemontcho@gmail.com>
To: buildroot@buildroot.org
Cc: ju.o@free.fr, fiona.klute@gmx.de,
Philippe MONTCHO <philippemontcho@gmail.com>
Subject: [Buildroot] [PATCH v2 1/1] package/dtc: bump version to 1.8.1 and switch to meson build
Date: Thu, 13 Aug 2026 15:08:46 +0200 [thread overview]
Message-ID: <20260813130848.875659-1-philippemontcho@gmail.com> (raw)
In-Reply-To: <20260805141803.1647733-1-philippemontcho@gmail.com>
Release note, since 1.7.2:
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tag/?h=v1.8.0
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tag/?h=v1.8.1
- Some typos has been fixed in Readme.license:
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/README.license?h=v1.8.1&id=205fbef17b7b2f410e34ac79aa1559a8d492b66c
- This commit also removes 0002-fix-discarded-const-qualifiers.patch,
since it has been merged in v1.8.0 already
- upstream dtc warns that Makefile-based builds are deprecated in
favor of Meson after version was updated. So we migrate to Meson build.
- we also add a patch to downgrade unrecognized check name fatal error
to non-fatal warning, so that unknown check names passed by external
tools no longer abort the build.
Signed-off-by: Philippe MONTCHO <philippemontcho@gmail.com>
---
changes v1 -> v2
- add link to the v1.8.0 release note in commit message (Suggested by Julien)
- add package/dtc/0002-downgrade-unrecognized-check-name-error.patch (Suggested by Julien)
- remove the logic around $(DTC_INSTALL_GOAL) (Suggested by Julien)
- update CONF_OPTS (Suggested by Julien)
- add Readme.license changes reason (Suggested by Fiona)
- link git.kernel.org repository in commit message(Suggested by Fiona)
Signed-off-by: Philippe MONTCHO <philippemontcho@gmail.com>
---
...ngrade-unrecognized-check-name-error.patch | 47 ++++++++++
.../0002-fix-discarded-const-qualifiers.patch | 88 -------------------
package/dtc/dtc.hash | 4 +-
package/dtc/dtc.mk | 56 +++---------
4 files changed, 63 insertions(+), 132 deletions(-)
create mode 100644 package/dtc/0002-downgrade-unrecognized-check-name-error.patch
delete mode 100644 package/dtc/0002-fix-discarded-const-qualifiers.patch
diff --git a/package/dtc/0002-downgrade-unrecognized-check-name-error.patch b/package/dtc/0002-downgrade-unrecognized-check-name-error.patch
new file mode 100644
index 0000000000..f255d8f7d0
--- /dev/null
+++ b/package/dtc/0002-downgrade-unrecognized-check-name-error.patch
@@ -0,0 +1,47 @@
+From e23b89701bbfbab629ba11cbce945a439e1ac85f Mon Sep 17 00:00:00 2001
+From: Philippe MONTCHO <philippemontcho@gmail.com>
+Date: Tue, 11 Aug 2026 15:41:39 +0200
+Subject: [PATCH] checks.c: downgrade unrecognized check name error
+
+dtc removed the graph_child_address checker in v1.8.0 [1], after
+introducing it in v1.4.7 [2].
+U-boot has been passing -Wno-graph_child_address to dtc since
+v2020.07 [3], and only stopped doing so in v2026.07 [4].
+Any defconfig pinning a U-boot version older than v2026.07 fails to
+build once dtc is bumped to >= v1.8.0, with :
+
+FATAL ERROR: Unrecognized check name "graph_child_address"
+
+This buildroot patch downgrades this to a non-fatal warning, so that
+outdated or unknown check names passed by external tools (such as U-boot
+pinned to pre-v2026.07 release) no longer abort the build.
+
+This is a Buildroot-specific patch, not intended for submission
+upstream: U-Boot has already fixed this on its side as of v2026.07.
+
+[1] https://github.com/dgibson/dtc/commit/cba90ce82064ad1e6d25f20d8eaa940bd2fc97e
+[2] https://github.com/dgibson/dtc/commit/df536831d02c51556a8e88cd8da0be024448415
+[3] https://source.denx.de/u-boot/u-boot/-/commit/5972ff077e0f6db36f327f303b0c381f56238ef
+[4] https://source.denx.de/u-boot/u-boot/-/commit/b427decccfe983eda4f815ddcf5dcbe733cd04f
+
+Signed-off-by: Philippe MONTCHO <philippemontcho@gmail.com>
+---
+ checks.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/checks.c b/checks.c
+index a6037ed..ca74677 100644
+--- a/checks.c
++++ b/checks.c
+@@ -2054,7 +2054,7 @@ void parse_checks_option(bool warn, bool error, const char *arg)
+ }
+ }
+
+- die("Unrecognized check name \"%s\"\n", name);
++ fprintf(stderr, "Warning: Unrecognized check name \"%s\"\n", name);
+ }
+
+ void process_checks(bool force, struct dt_info *dti)
+--
+2.43.0
+
diff --git a/package/dtc/0002-fix-discarded-const-qualifiers.patch b/package/dtc/0002-fix-discarded-const-qualifiers.patch
deleted file mode 100644
index 95db886389..0000000000
--- a/package/dtc/0002-fix-discarded-const-qualifiers.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 9a1c801a1a3c102bf95c5339c9e985b26b823a21 Mon Sep 17 00:00:00 2001
-From: Stephen Gallagher <sgallagh@redhat.com>
-Date: Tue, 6 Jan 2026 14:19:30 -0500
-Subject: Fix discarded const qualifiers
-
-It's unsafe to implicitly discard the const qualifier on a pointer. In
-overlay_fixup_phandle(), this was probably just an oversight, and making
-the "sep" variable a const char * is sufficient to fix it.
-
-In create_node(), however, the "p" variable is directly modifying the
-buffer pointed to by "const char* node_name". To fix this, we need to
-actually make a duplicate of the buffer and operate on that instead.
-
-This introduces a malloc()/free() and an unbounded strdup() into the
-operation, but fdtput isn't a long-running service and the node_name
-argument comes directly from argv, so this shouldn't introduce a
-significant performance impact.
-
-Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
-Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-Upstream: https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=9a1c801a1a3c102bf95c5339c9e985b26b823a21
-Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
-
----
- fdtput.c | 8 +++++---
- libfdt/fdt_overlay.c | 3 ++-
- meson.build | 1 +
- 3 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fdtput.c b/fdtput.c
-index 05f2b93..fdb581a 100644
---- a/fdtput.c
-+++ b/fdtput.c
-@@ -254,19 +254,21 @@ static int create_paths(char **blob, const char *in_path)
- static int create_node(char **blob, const char *node_name)
- {
- int node = 0;
-- char *p;
-+ const char *p;
-+ char *path = NULL;
-
- p = strrchr(node_name, '/');
- if (!p) {
- report_error(node_name, -1, -FDT_ERR_BADPATH);
- return -1;
- }
-- *p = '\0';
-
- *blob = realloc_node(*blob, p + 1);
-
- if (p > node_name) {
-- node = fdt_path_offset(*blob, node_name);
-+ path = xstrndup(node_name, (size_t)(p - node_name));
-+ node = fdt_path_offset(*blob, path);
-+ free(path);
- if (node < 0) {
- report_error(node_name, -1, node);
- return -1;
-diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
-index e6b9eb6..51a3859 100644
---- a/libfdt/fdt_overlay.c
-+++ b/libfdt/fdt_overlay.c
-@@ -407,7 +407,8 @@ static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
- const char *fixup_str = value;
- uint32_t path_len, name_len;
- uint32_t fixup_len;
-- char *sep, *endptr;
-+ const char *sep;
-+ char *endptr;
- int poffset, ret;
-
- fixup_end = memchr(value, '\0', len);
-diff --git a/meson.build b/meson.build
-index 66b44e8..501b706 100644
---- a/meson.build
-+++ b/meson.build
-@@ -18,6 +18,7 @@ add_project_arguments(
- '-Wshadow',
- '-Wsuggest-attribute=format',
- '-Wwrite-strings',
-+ '-Wdiscarded-qualifiers',
- ]),
- language: 'c'
- )
---
-cgit 1.2.3-korg
-
-
diff --git a/package/dtc/dtc.hash b/package/dtc/dtc.hash
index f05e902df0..391d63bc10 100644
--- a/package/dtc/dtc.hash
+++ b/package/dtc/dtc.hash
@@ -1,7 +1,7 @@
# from https://www.kernel.org/pub/software/utils/dtc/sha256sums.asc
-sha256 92d8ca769805ae1f176204230438fe52808f4e1c7944053c9eec0e649b237539 dtc-1.7.2.tar.xz
+sha256 23526015a6f1550e0541a53fe7acea1b5a11e3697cdf3a3bdc076abc38f6045d dtc-1.8.1.tar.xz
# Hash for license files
-sha256 78e1e1ce5728a990d59c7de61d4741c49185d5129daf783b386380a214328d68 README.license
+sha256 8a516adc332c25503be9de4a511f9fce45370761a67046811b1c5a5268f2327a README.license
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 GPL
sha256 6313108c23efffa36948f8b2cff1560a5935373b527b0e1a837cc77e6ed1bacd BSD-2-Clause
diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk
index 5b810c6e65..c16a3c6c8d 100644
--- a/package/dtc/dtc.mk
+++ b/package/dtc/dtc.mk
@@ -4,7 +4,7 @@
#
################################################################################
-DTC_VERSION = 1.7.2
+DTC_VERSION = 1.8.1
DTC_SOURCE = dtc-$(DTC_VERSION).tar.xz
DTC_SITE = https://www.kernel.org/pub/software/utils/dtc
DTC_LICENSE = GPL-2.0+ or BSD-2-Clause (library)
@@ -14,24 +14,24 @@ DTC_INSTALL_STAGING = YES
DTC_DEPENDENCIES = host-bison host-flex host-pkgconf
HOST_DTC_DEPENDENCIES = host-bison host-flex host-pkgconf
-DTC_MAKE_OPTS = \
- PREFIX=/usr \
- NO_PYTHON=1 \
- NO_VALGRIND=1
+DTC_CONF_OPTS = \
+ -Dpython=disabled \
+ -Dvalgrind=disabled \
+ -Dtests=false
# For the host, we install headers in a special subdirectory to avoid
# conflicts with the in-kernel libfdt copy.
-HOST_DTC_MAKE_OPTS = \
- PREFIX=$(HOST_DIR) \
- INCLUDEDIR=$(HOST_DIR)/include/libfdt \
- NO_PYTHON=1 \
- NO_VALGRIND=1 \
- NO_YAML=1
+HOST_DTC_CONF_OPTS = \
+ --includedir=$(HOST_DIR)/include/libfdt \
+ -Dpython=disabled \
+ -Dvalgrind=disabled \
+ -Dyaml=disabled
ifeq ($(BR2_PACKAGE_LIBYAML),y)
DTC_DEPENDENCIES += libyaml
+DTC_CONF_OPTS += -Dyaml=enabled
else
-DTC_MAKE_OPTS += NO_YAML=1
+DTC_CONF_OPTS += -Dyaml=disabled
endif
define DTC_POST_INSTALL_TARGET_RM_DTDIFF
@@ -41,39 +41,11 @@ endef
ifeq ($(BR2_PACKAGE_DTC_PROGRAMS),y)
DTC_LICENSE += , GPL-2.0+ (programs)
-DTC_INSTALL_GOAL = install
ifeq ($(BR2_PACKAGE_BASH),)
DTC_POST_INSTALL_TARGET_HOOKS += DTC_POST_INSTALL_TARGET_RM_DTDIFF
endif
-else # $(BR2_PACKAGE_DTC_PROGRAMS) != y
-
-DTC_INSTALL_GOAL = install-lib
-
endif # $(BR2_PACKAGE_DTC_PROGRAMS) != y
-define DTC_BUILD_CMDS
- $(TARGET_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(TARGET_CFLAGS) -fPIC" -C $(@D) $(DTC_MAKE_OPTS)
-endef
-
-# For staging, only the library is needed
-define DTC_INSTALL_STAGING_CMDS
- $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) $(DTC_MAKE_OPTS) install-lib \
- install-includes
-endef
-
-define DTC_INSTALL_TARGET_CMDS
- $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) $(DTC_MAKE_OPTS) $(DTC_INSTALL_GOAL)
-endef
-
-# host build
-define HOST_DTC_BUILD_CMDS
- $(HOST_CONFIGURE_OPTS) $(MAKE) EXTRA_CFLAGS="$(HOST_CFLAGS) -fPIC" -C $(@D) $(HOST_DTC_MAKE_OPTS)
-endef
-
-define HOST_DTC_INSTALL_CMDS
- $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(HOST_DTC_MAKE_OPTS) install
-endef
-
-$(eval $(generic-package))
-$(eval $(host-generic-package))
+$(eval $(meson-package))
+$(eval $(host-meson-package))
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2026-08-13 13:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-05 14:17 [Buildroot] [PATCH 1/1] package/dtc: bump version to 1.8.1 and switch to meson build Philippe MONTCHO
2026-08-07 17:41 ` Julien Olivain via buildroot
2026-08-07 20:02 ` Fiona Klute via buildroot
2026-08-08 7:13 ` Julien Olivain via buildroot
2026-08-10 8:30 ` Philippe MONTCHO
2026-08-13 13:08 ` Philippe MONTCHO [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260813130848.875659-1-philippemontcho@gmail.com \
--to=philippemontcho@gmail.com \
--cc=buildroot@buildroot.org \
--cc=fiona.klute@gmx.de \
--cc=ju.o@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox