53 lines
1.5 KiB
Diff
53 lines
1.5 KiB
Diff
|
From: Maarten ter Huurne <maarten@treewalker.org>
|
||
|
Date: Sun, 14 Sep 2014 11:16:58 +0200
|
||
|
Subject: Avoid mis-identifying systems as SVR4
|
||
|
|
||
|
My openSUSE 13.1 Linux system was detected as SVR4 because it had
|
||
|
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.
|
||
|
|
||
|
Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
|
||
|
---
|
||
|
configure.in | 14 ++++++++++++--
|
||
|
1 file changed, 12 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/configure.in b/configure.in
|
||
|
index f78f81f..181b7f9 100644
|
||
|
--- a/configure.in
|
||
|
+++ b/configure.in
|
||
|
@@ -178,14 +178,24 @@ AC_EGREP_CPP(yes,
|
||
|
#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)
|
||
|
--
|
||
|
1.8.4.5
|
||
|
|