From 44da0e3b4ff7fa15ad28b628f57412a05dae653c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Thu, 26 Feb 2026 13:31:48 +0100 Subject: [PATCH] libxl: constify some local variables for building with glibc 2.43 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Archlinux just updated glibc to 2.43+r5+g856c426a7534-1 and that causes libxl build failure: libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’: libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 447 | endptr = strchr(str, '='); | ^ libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 452 | endptr = strchr(str, ','); | ^ libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] 454 | endptr = strchr(str, 0); | ^ cc1: all warnings being treated as errors Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const endptr still is needed, to be compatible with the second argument to strtoul(). Add second variable for this reason. And while at it, move semicolon to its own line Signed-off-by: Marek Marczykowski-Górecki Reviewed-by: Jan Beulich Acked-by: Anthony PERARD --- tools/libs/light/libxl_cpuid.c | 21 ++++++++++++--------- tools/libs/light/libxl_internal.c | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c index 8420b2465f..14f08df33a 100644 --- a/tools/libs/light/libxl_cpuid.c +++ b/tools/libs/light/libxl_cpuid.c @@ -440,29 +440,32 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy, str = endptr + 1; entry = cpuid_find_match(policy, leaf, subleaf); for (str = endptr + 1; *str != 0;) { + const char *endptrc; + if (str[0] != 'e' || str[2] != 'x') { return 4; } value = str[1] - 'a'; - endptr = strchr(str, '='); - if (value > 3 || endptr == NULL) { + endptrc = strchr(str, '='); + if (value > 3 || endptrc == NULL) { return 4; } - str = endptr + 1; - endptr = strchr(str, ','); - if (endptr == NULL) { - endptr = strchr(str, 0); + str = endptrc + 1; + endptrc = strchr(str, ','); + if (endptrc == NULL) { + endptrc = strchr(str, 0); } - if (endptr - str != 32) { + if (endptrc - str != 32) { return 5; } entry->policy[value] = calloc(32 + 1, 1); strncpy(entry->policy[value], str, 32); entry->policy[value][32] = 0; - if (*endptr == 0) { + if (*endptrc == 0) { break; } - for (str = endptr + 1; *str == ' ' || *str == '\n'; str++); + for (str = endptrc + 1; *str == ' ' || *str == '\n'; str++) + ; } return 0; } diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c index 2941ca0bbd..d70cfed7d8 100644 --- a/tools/libs/light/libxl_internal.c +++ b/tools/libs/light/libxl_internal.c @@ -204,7 +204,7 @@ char *libxl__strndup(libxl__gc *gc, const char *c, size_t n) char *libxl__dirname(libxl__gc *gc, const char *s) { - char *c = strrchr(s, '/'); + const char *c = strrchr(s, '/'); if (!c) return NULL;