Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

      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