daemonize: fix build with gcc-15

* fix build with gcc-15.0.1
  submitted to upstream: https://github.com/bmc/daemonize/pull/37

  following error:
../git/getopt.c: In function 'x_getopt':
../git/getopt.c:51:16: error: too many arguments to function 'write'; expected 0, have 3
51 | (void) write(2, argv[0], (unsigned)strlen(argv[0]));
| ^~~~~ ~
../git/getopt.c:78:17: note: in expansion of macro 'ERR'
78 | ERR(": illegal option -- ", c);
| ^~~
../git/getopt.c:48:20: note: declared here
48 | extern int write();
| ^~~~~

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
mark.yang 2025-03-27 16:59:03 +09:00 committed by Khem Raj
parent cc493b34d8
commit 70463638b5
No known key found for this signature in database
GPG Key ID: BB053355919D3314
2 changed files with 49 additions and 1 deletions

View File

@ -0,0 +1,46 @@
From c47fdcc0a900aea93b1967c20db42743171ab1ac Mon Sep 17 00:00:00 2001
From: "mark.yang" <mark.yang@lge.com>
Date: Thu, 27 Mar 2025 16:46:42 +0900
Subject: [PATCH] fix getopt.c too many arguments to function 'write' error in
gcc-15.0.1
In the original code, write() was declared as 'extern int write();',
which is interpreted as a function taking no parameters.
This caused errors when actually calling it with 3 parameters.
The current fix to declare it as 'extern int write(int, const void *, unsigned);'
is the correct solution.
This properly defines the write function to accept 3 parameters.
../git/getopt.c: In function 'x_getopt':
../git/getopt.c:51:16: error: too many arguments to function 'write'; expected 0, have 3
51 | (void) write(2, argv[0], (unsigned)strlen(argv[0]));\
| ^~~~~ ~
../git/getopt.c:78:17: note: in expansion of macro 'ERR'
78 | ERR(": illegal option -- ", c);
| ^~~
../git/getopt.c:48:20: note: declared here
48 | extern int write();\
| ^~~~~
Upstream-Status: Submitted [https://github.com/bmc/daemonize/pull/37]
Signed-off-by: mark.yang <mark.yang@lge.com>
---
getopt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/getopt.c b/getopt.c
index 3f37c55..f298da7 100644
--- a/getopt.c
+++ b/getopt.c
@@ -45,7 +45,7 @@
#include <string.h>
#define ERR(s, c) if(x_opterr){\
- extern int write();\
+ extern int write(int, const void *, unsigned);\
char errbuf[2];\
errbuf[0] = c; errbuf[1] = '\n';\
(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
--
2.34.1

View File

@ -7,7 +7,9 @@ PV = "1.7.8"
inherit autotools
SRCREV = "18869a797dab12bf1c917ba3b4782fef484c407c"
SRC_URI = "git://github.com/bmc/daemonize.git;branch=master;protocol=https \
SRC_URI = " \
git://github.com/bmc/daemonize.git;branch=master;protocol=https \
file://0001-fix-getopt.c-too-many-arguments-to-function-write-er.patch \
"
S = "${WORKDIR}/git"