[Buildroot] [PATCH v2 1/1] package/dtc: bump version to 1.8.1 and switch to meson build
Philippe MONTCHO <[email protected]>
| Newsgroups | net.busybox.buildroot |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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 <[email protected]> --- ...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 <[email protected]> +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 <[email protected]> +--- + 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 <[email protected]> -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 <[email protected]> -Signed-off-by: David Gibson <[email protected]> -Upstream: https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=9a1c801a1a3c102bf95c5339c9e985b26b823a21 -Signed-off-by: Alexis Lothoré <[email protected]> - ---- - 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 [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot