build: Conditionalize bsd_getopt() on macOS

The system library provides a getopt() with BSD semantics.
This commit is contained in:
Guillem Jover 2023-04-18 03:58:24 +02:00
parent c12068179c
commit 6385ccc977
3 changed files with 11 additions and 1 deletions

View File

@ -309,6 +309,7 @@ AC_CHECK_FUNCS([\
]) ])
need_arc4random=yes need_arc4random=yes
need_bsd_getopt=yes
need_md5=yes need_md5=yes
need_nlist=yes need_nlist=yes
need_strl=yes need_strl=yes
@ -330,6 +331,7 @@ AS_CASE([$host_os],
# On macOS these are provided by the system, and libbsd has never built # On macOS these are provided by the system, and libbsd has never built
# there, so we can avoid providing these with no ABI breakage. # there, so we can avoid providing these with no ABI breakage.
need_arc4random=no need_arc4random=no
need_bsd_getopt=no
need_transparent_libmd=no need_transparent_libmd=no
need_md5=no need_md5=no
need_nlist=no need_nlist=no
@ -345,6 +347,7 @@ AS_CASE([$host_os],
AM_CONDITIONAL([HAVE_GETENTROPY], [test "x$ac_cv_func_getentropy" = "xyes"]) AM_CONDITIONAL([HAVE_GETENTROPY], [test "x$ac_cv_func_getentropy" = "xyes"])
AM_CONDITIONAL([NEED_ARC4RANDOM], [test "x$need_arc4random" = "xyes"]) AM_CONDITIONAL([NEED_ARC4RANDOM], [test "x$need_arc4random" = "xyes"])
AM_CONDITIONAL([NEED_BSD_GETOPT], [test "x$need_bsd_getopt" = "xyes"])
AM_CONDITIONAL([NEED_TRANSPARENT_LIBMD], [test "x$need_transparent_libmd" = "xyes"]) AM_CONDITIONAL([NEED_TRANSPARENT_LIBMD], [test "x$need_transparent_libmd" = "xyes"])
AM_CONDITIONAL([NEED_MD5], [test "x$need_md5" = "xyes"]) AM_CONDITIONAL([NEED_MD5], [test "x$need_md5" = "xyes"])
AM_CONDITIONAL([NEED_NLIST], [test "x$need_nlist" = "xyes"]) AM_CONDITIONAL([NEED_NLIST], [test "x$need_nlist" = "xyes"])

View File

@ -47,6 +47,7 @@
#endif #endif
__BEGIN_DECLS __BEGIN_DECLS
#if !defined(__APPLE__)
extern int optreset; extern int optreset;
#ifdef LIBBSD_OVERLAY #ifdef LIBBSD_OVERLAY
@ -55,6 +56,7 @@ extern int optreset;
#endif #endif
int bsd_getopt(int argc, char * const argv[], const char *shortopts); int bsd_getopt(int argc, char * const argv[], const char *shortopts);
#endif
mode_t getmode(const void *set, mode_t mode); mode_t getmode(const void *set, mode_t mode);
void *setmode(const char *mode_str); void *setmode(const char *mode_str);

View File

@ -75,7 +75,6 @@ EXTRA_libbsd_la_DEPENDENCIES += \
# EOL # EOL
endif endif
libbsd_la_SOURCES = \ libbsd_la_SOURCES = \
bsd_getopt.c \
closefrom.c \ closefrom.c \
dehumanize_number.c \ dehumanize_number.c \
err.c \ err.c \
@ -116,6 +115,12 @@ libbsd_la_SOURCES = \
wcslcpy.c \ wcslcpy.c \
# EOL # EOL
if NEED_BSD_GETOPT
libbsd_la_SOURCES += \
bsd_getopt.c \
# EOL
endif
if NEED_ARC4RANDOM if NEED_ARC4RANDOM
if !HAVE_GETENTROPY if !HAVE_GETENTROPY
libbsd_la_SOURCES += \ libbsd_la_SOURCES += \