Use system __progname variable in progname module if available
diff --git a/configure.ac b/configure.ac
index c9cf0a4..ab7f96a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,6 +37,15 @@ AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
# Checks for library functions.
+AC_MSG_CHECKING([for __progname])
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[extern char *__progname;
+ const char *p = __progname;]])],
+ [AC_DEFINE([HAVE___PROGNAME], [1], [Define to 1 if you have __progname])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+
AC_CHECK_FUNCS([getexecname])
AC_CONFIG_FILES([
diff --git a/src/progname.c b/src/progname.c
index b5132d8..4d0fee7 100644
--- a/src/progname.c
+++ b/src/progname.c
@@ -33,7 +33,11 @@
#include <string.h>
#include <stdlib.h>
+#ifdef HAVE___PROGNAME
+extern const char *__progname;
+#else
static const char *__progname = NULL;
+#endif
const char *
getprogname(void)