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

