summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Kukkonen <jussi.kukkonen@intel.com>2018-02-24 15:22:05 +0100
committerAlexander Naumov <alexander_naumov@opensuse.org>2018-02-24 15:22:05 +0100
commitec90292592dd2c9d5c108390841e3df24e377ed5 (patch)
tree8c507dbe27fa4234c64a2ac9c6d6660b4d7d0f8c
parentc573b89139e7a068f5573abd565605bed60f293f (diff)
downloadscreen-ec90292592dd2c9d5c108390841e3df24e377ed5.tar.gz
[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>
-rw-r--r--src/configure.ac14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/configure.ac b/src/configure.ac
index bd748d9..ab799d2 100644
--- a/src/configure.ac
+++ b/src/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)