mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:29:02 +02:00
tini: Support posix basename from musl libc
This fixes building with musl libc. Signed-off-by: Kyungjik Min <dpmin7@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
parent
37ce8a486f
commit
dd625f5d90
|
@ -0,0 +1,76 @@
|
||||||
|
From 10479a6eef32f8e64fd5bf894dee9c7a6f21ce4c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
Date: Sun, 14 Apr 2024 15:33:51 +0200
|
||||||
|
Subject: [PATCH] Support POSIX basename() from musl libc
|
||||||
|
|
||||||
|
Musl libc 1.2.5 removed the definition of the basename() function from
|
||||||
|
string.h and only provides it in libgen.h as the POSIX standard
|
||||||
|
defines it.
|
||||||
|
|
||||||
|
This change fixes compilation with musl libc 1.2.5.
|
||||||
|
````
|
||||||
|
build_dir/target-mips_24kc_musl/tini-0.19.0/src/tini.c:227:36: error: implicit declaration of function 'basename' [-Wimplicit-function-declaration]
|
||||||
|
227 | fprintf(file, "%s (%s)\n", basename(name), TINI_VERSION_STRING);
|
||||||
|
build_dir/target-mips_24kc_musl/tini-0.19.0/src/tini.c:227:25: error: format '%s' expects argument of type 'char *', but argument 3 has type 'int' [-Werror=format=]
|
||||||
|
227 | fprintf(file, "%s (%s)\n", basename(name), TINI_VERSION_STRING);
|
||||||
|
| ~^ ~~~~~~~~~~~~~~
|
||||||
|
| | |
|
||||||
|
| char * int
|
||||||
|
| %d
|
||||||
|
|
||||||
|
````
|
||||||
|
|
||||||
|
basename() modifies the input string, copy it first with strdup(), If
|
||||||
|
strdup() returns NULL the code will handle it.
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [https://github.com/krallin/tini/pull/223]
|
||||||
|
|
||||||
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
---
|
||||||
|
src/tini.c | 15 +++++++++++----
|
||||||
|
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tini.c b/src/tini.c
|
||||||
|
index 7914d3a..41d1506 100644
|
||||||
|
--- a/src/tini.c
|
||||||
|
+++ b/src/tini.c
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
+#include <libgen.h>
|
||||||
|
|
||||||
|
#include "tiniConfig.h"
|
||||||
|
#include "tiniLicense.h"
|
||||||
|
@@ -224,14 +225,19 @@ int spawn(const signal_configuration_t* const sigconf_ptr, char* const argv[], i
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_usage(char* const name, FILE* const file) {
|
||||||
|
- fprintf(file, "%s (%s)\n", basename(name), TINI_VERSION_STRING);
|
||||||
|
+ char *dirc, *bname;
|
||||||
|
+
|
||||||
|
+ dirc = strdup(name);
|
||||||
|
+ bname = basename(dirc);
|
||||||
|
+
|
||||||
|
+ fprintf(file, "%s (%s)\n", bname, TINI_VERSION_STRING);
|
||||||
|
|
||||||
|
#if TINI_MINIMAL
|
||||||
|
- fprintf(file, "Usage: %s PROGRAM [ARGS] | --version\n\n", basename(name));
|
||||||
|
+ fprintf(file, "Usage: %s PROGRAM [ARGS] | --version\n\n", bname);
|
||||||
|
#else
|
||||||
|
- fprintf(file, "Usage: %s [OPTIONS] PROGRAM -- [ARGS] | --version\n\n", basename(name));
|
||||||
|
+ fprintf(file, "Usage: %s [OPTIONS] PROGRAM -- [ARGS] | --version\n\n", bname);
|
||||||
|
#endif
|
||||||
|
- fprintf(file, "Execute a program under the supervision of a valid init process (%s)\n\n", basename(name));
|
||||||
|
+ fprintf(file, "Execute a program under the supervision of a valid init process (%s)\n\n", bname);
|
||||||
|
|
||||||
|
fprintf(file, "Command line options:\n\n");
|
||||||
|
|
||||||
|
@@ -261,6 +267,7 @@ void print_usage(char* const name, FILE* const file) {
|
||||||
|
fprintf(file, " %s: Send signals to the child's process group.\n", KILL_PROCESS_GROUP_GROUP_ENV_VAR);
|
||||||
|
|
||||||
|
fprintf(file, "\n");
|
||||||
|
+ free(dirc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_license(FILE* const file) {
|
|
@ -9,6 +9,7 @@ SRC_URI = " \
|
||||||
git://github.com/krallin/tini.git;branch=master;protocol=https \
|
git://github.com/krallin/tini.git;branch=master;protocol=https \
|
||||||
file://0001-Do-not-strip-the-output-binary-allow-yocto-to-do-thi.patch \
|
file://0001-Do-not-strip-the-output-binary-allow-yocto-to-do-thi.patch \
|
||||||
file://0001-tini.c-a-function-declaration-without-a-prototype-is.patch \
|
file://0001-tini.c-a-function-declaration-without-a-prototype-is.patch \
|
||||||
|
file://0001-Support-POSIX-basename-from-musl-libc.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user