mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-04 16:10:04 +00:00
kexec-tools: Fix build with GCC-14 on musl
(From OE-Core rev: 30e226d48ae04e387d53fbde1b729569ae35bad5) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 704f51f72c301bd081a635dbe94e52aa97ffb827) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
parent
da1e522530
commit
32ddc0417f
|
|
@ -0,0 +1,54 @@
|
|||
From 32c8ffa7ace6f1b7e63f9ddffab00b00c36a7b57 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 15 May 2024 21:18:08 -0700
|
||||
Subject: [PATCH] x86-linux-setup.c: Use POSIX basename API
|
||||
|
||||
Musl C library only supports POSIX basename function. while glibc has
|
||||
both GNU extention as well as POSIX basename implemented. Switch to
|
||||
using posix version, so it can work across musl and glibc
|
||||
|
||||
basename prototype has been removed from string.h from latest musl [1]
|
||||
compilers e.g. clang-18/GCC-14 flags the absense of prototype as error.
|
||||
therefore include libgen.h for providing it.
|
||||
|
||||
[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
|
||||
|
||||
Upstream-Status: Submitted [https://lists.infradead.org/pipermail/kexec/2024-May/030034.html]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
kexec/arch/i386/x86-linux-setup.c | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
|
||||
index 9a281dc..73251b9 100644
|
||||
--- a/kexec/arch/i386/x86-linux-setup.c
|
||||
+++ b/kexec/arch/i386/x86-linux-setup.c
|
||||
@@ -14,6 +14,7 @@
|
||||
*
|
||||
*/
|
||||
#define _GNU_SOURCE
|
||||
+#include <libgen.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@@ -329,12 +330,14 @@ static int add_edd_entry(struct x86_linux_param_header *real_mode,
|
||||
memset(edd_info, 0, sizeof(struct edd_info));
|
||||
|
||||
/* extract the device number */
|
||||
- if (sscanf(basename(sysfs_name), "int13_dev%hhx", &devnum) != 1) {
|
||||
+ char* sysfs_name_copy = strdup(sysfs_name);
|
||||
+ if (sscanf(basename(sysfs_name_copy), "int13_dev%hhx", &devnum) != 1) {
|
||||
fprintf(stderr, "Invalid format of int13_dev dir "
|
||||
- "entry: %s\n", basename(sysfs_name));
|
||||
+ "entry: %s\n", basename(sysfs_name_copy));
|
||||
+ free(sysfs_name_copy);
|
||||
return -1;
|
||||
}
|
||||
-
|
||||
+ free(sysfs_name_copy);
|
||||
/* if there's a MBR signature, then add it */
|
||||
if (file_scanf(sysfs_name, "mbr_signature", "0x%x", &mbr_sig) == 1) {
|
||||
real_mode->edd_mbr_sig_buffer[*current_mbr] = mbr_sig;
|
||||
--
|
||||
2.45.1
|
||||
|
||||
|
|
@ -18,6 +18,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz
|
|||
file://0005-Disable-PIE-during-link.patch \
|
||||
file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \
|
||||
file://Fix-building-on-x86_64-with-binutils-2.41.patch \
|
||||
file://0001-x86-linux-setup.c-Use-POSIX-basename-API.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "f33d2660b3e38d25a127e87097978e0f7a9a73ab5151a29eb80974d169ff6a29"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user