|
From ec90292592dd2c9d5c108390841e3df24e377ed5 Mon Sep 17 00:00:00 2001
|
|
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
|
|
Date: Sat, 24 Feb 2018 15:22:05 +0100
|
|
Subject: [PATCH] [PATCH 4/4] Avoid mis-identifying systems as SVR4
|
|
|
|
Linux can be misdetected as SVR4 because it has
|
|
libelf installed. This leads to linking with libelf, even though no
|
|
symbols from that library were actually used, and to a workaround for
|
|
a buggy getlogin() being enabled.
|
|
|
|
It is not documented which exact SVR4 system had the bug that the
|
|
workaround was added for, so all I could do is make an educated guess
|
|
at the #defines its compiler would be likely to set.
|
|
|
|
Modified from patch by Maarten ter Huurne.
|
|
|
|
Upstream-Status: Submitted [http://savannah.gnu.org/bugs/?43223]
|
|
|
|
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
|
|
---
|
|
configure.ac | 14 ++++++++++++--
|
|
1 file changed, 12 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/configure.ac b/src/configure.ac
|
|
index bd748d9..ab799d2 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -179,14 +179,24 @@ AC_EGREP_CPP(YES_IS_DEFINED,
|
|
#endif
|
|
], LIBS="$LIBS -lsocket -linet";seqptx=1)
|
|
|
|
+AC_CHECKING(SVR4)
|
|
+AC_EGREP_CPP(yes,
|
|
+[main () {
|
|
+#if defined(SVR4) || defined(__SVR4)
|
|
+ yes;
|
|
+#endif
|
|
+], AC_NOTE(- you have a SVR4 system) AC_DEFINE(SVR4) svr4=1)
|
|
+if test -n "$svr4" ; then
|
|
oldlibs="$LIBS"
|
|
LIBS="$LIBS -lelf"
|
|
AC_CHECKING(SVR4)
|
|
AC_TRY_LINK([#include <utmpx.h>
|
|
],,
|
|
-[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
|
|
-[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
|
|
+[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(BUGGYGETLOGIN),
|
|
+[AC_CHECK_HEADER(elf.h, AC_DEFINE(BUGGYGETLOGIN))])]
|
|
,LIBS="$oldlibs")
|
|
+fi
|
|
+
|
|
AC_CHECK_HEADERS([stropts.h string.h strings.h])
|
|
|
|
AC_CHECKING(for Solaris 2.x)
|
|
--
|
|
2.17.1
|
|
|