summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2020-03-17 16:06:30 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2020-03-17 16:14:12 +0000
commitb21a9b1c4eb175938b07855e670a39302726a03d (patch)
treef69b8ee7bc2f0310882cee0daf04c82c63e801d9
parent444e9f3c582b2d20800b0fe4aa363fb7e801cbc2 (diff)
getopt varies too much between platforms, and we already use compat/getopt.c
for Linux so just use it everywhere.
-rw-r--r--compat.h2
-rw-r--r--configure.ac40
2 files changed, 6 insertions, 36 deletions
diff --git a/compat.h b/compat.h
index 70801d0d..b7ec5a69 100644
--- a/compat.h
+++ b/compat.h
@@ -370,7 +370,6 @@ int utf8proc_mbtowc(wchar_t *, const char *, size_t);
int utf8proc_wctomb(char *, wchar_t);
#endif
-#ifndef HAVE_GETOPT
/* getopt.c */
extern int BSDopterr;
extern int BSDoptind;
@@ -384,6 +383,5 @@ int BSDgetopt(int, char *const *, const char *);
#define optopt BSDoptopt
#define optreset BSDoptreset
#define optarg BSDoptarg
-#endif
#endif /* COMPAT_H */
diff --git a/configure.ac b/configure.ac
index d98b72f2..947a0a2f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -125,6 +125,12 @@ AC_FUNC_STRNLEN
# Look for clock_gettime. Must come before event_init.
AC_SEARCH_LIBS(clock_gettime, rt)
+# Always use our getopt because 1) glibc's doesn't enforce argument order 2)
+# musl does not set optarg to NULL for flags without arguments (although it is
+# not required to, but it is helpful) 3) there are probably other weird
+# implementations.
+AC_LIBOBJ(getopt)
+
# Look for libevent.
PKG_CHECK_MODULES(
LIBEVENT,
@@ -424,40 +430,6 @@ else
AC_LIBOBJ(unvis)
fi
-# Look for getopt. glibc's getopt does not enforce argument order and the ways
-# of making it do so are stupid, so just use our own instead.
-AC_CHECK_FUNC(getopt, found_getopt=yes, found_getopt=no)
-if test "x$found_getopt" != xno; then
- AC_MSG_CHECKING(if getopt is suitable)
- AC_EGREP_CPP(
- yes,
- [
- #include <features.h>
- #ifdef __GLIBC__
- yes
- #endif
- ],
- [
- found_getopt=no
- AC_MSG_RESULT(no)
- ],
- AC_MSG_RESULT(yes))
-fi
-if test "x$found_getopt" != xno; then
- AC_CHECK_DECLS(
- [optarg, optind, optreset],
- ,
- found_getopt=no,
- [
- #include <unistd.h>
- ])
-fi
-if test "x$found_getopt" != xno; then
- AC_DEFINE(HAVE_GETOPT)
-else
- AC_LIBOBJ(getopt)
-fi
-
# Look for fdforkpty and forkpty in libutil.
AC_SEARCH_LIBS(fdforkpty, util, found_fdforkpty=yes, found_fdforkpty=no)
if test "x$found_fdforkpty" = xyes; then