dev-util/fuzz: fix compilation on musl

Missing include for string.h, glibc transitively included strcmp
Removed different getopt definition for non-glibc situation:
we are all living in POSIX-land (Somewhat. Hopefully. Mostly.) and
definitions for getopt are the same on musl and glibc.

Closes: https://bugs.gentoo.org/944111
Closes: https://bugs.gentoo.org/934059
Signed-off-by: NHOrus <jy6x2b32pie9@yahoo.com>
Closes: https://github.com/gentoo/gentoo/pull/40514
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
NHOrus 2025-02-10 18:43:11 +04:00 committed by Sam James
parent c15b3ff1a5
commit 1d042be2d8
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
2 changed files with 39 additions and 2 deletions

View File

@ -0,0 +1,34 @@
Fix missing include on musl, as strcmp is not transitively included
Remove arg-less declaration for non-glibc case: we have POSIX here,
getopt has same prototype in glibc and in musl
https://bugs.gentoo.org/934059
https://bugs.gentoo.org/944111
--- a/getopt.c
+++ b/getopt.c
@@ -43,6 +43,7 @@
#endif
#include <stdio.h>
+#include <string.h>
/* Comment out all this code if we are using the GNU C Library, and are not
actually compiling the library itself. This code is part of the GNU C
--- a/getopt.h
+++ b/getopt.h
@@ -99,14 +99,12 @@
#define optional_argument 2
#if defined (__STDC__) && __STDC__
-#ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
+/* But in Gentoo we have glibc and musl, and they have same POSIX
+ definition */
extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-#endif /* __GNU_LIBRARY__ */
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
const struct option *longopts, int *longind);
extern int getopt_long_only (int argc, char *const *argv,

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -21,7 +21,10 @@ KEYWORDS="~amd64 ~x86"
DEPEND="sys-libs/readline:="
RDEPEND="${DEPEND}"
PATCHES=( "${WORKDIR}"/${DEB_P}-${DEB_PR}.diff )
PATCHES=(
"${WORKDIR}"/"${DEB_P}-${DEB_PR}.diff"
"${FILESDIR}"/"${P}-musl.patch"
)
src_prepare() {
default