You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
748 lines
16 KiB
748 lines
16 KiB
https://bugs.gentoo.org/869371
|
|
|
|
Upstream variant: https://lists.gnu.org/archive/html/screen-devel/2022-08/msg00000.html
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -157,10 +157,11 @@ if test -n "$ULTRIX"; then
|
|
fi
|
|
AC_CHECKING(for POSIX.1)
|
|
AC_EGREP_CPP(YES_IS_DEFINED,
|
|
[#include <sys/types.h>
|
|
#include <unistd.h>
|
|
+int
|
|
main () {
|
|
#ifdef _POSIX_VERSION
|
|
YES_IS_DEFINED;
|
|
#endif
|
|
], AC_NOTE(- you have a POSIX system) AC_DEFINE(POSIX) posix=1)
|
|
@@ -231,10 +232,11 @@ dnl
|
|
|
|
AC_CHECKING(BSD job jontrol)
|
|
AC_TRY_LINK(
|
|
[#include <sys/types.h>
|
|
#include <sys/ioctl.h>
|
|
+#include <unistd.h>
|
|
], [
|
|
#ifdef POSIX
|
|
tcsetpgrp(0, 0);
|
|
#else
|
|
int x = TIOCSPGRP;
|
|
@@ -248,48 +250,64 @@ int y = TIOCNOTTY;
|
|
|
|
dnl
|
|
dnl **** setresuid(), setreuid(), seteuid() ****
|
|
dnl
|
|
AC_CHECKING(setresuid)
|
|
-AC_TRY_LINK(,[
|
|
+AC_TRY_LINK(
|
|
+[#include <unistd.h>
|
|
+], [
|
|
setresuid(0, 0, 0);
|
|
], AC_DEFINE(HAVE_SETRESUID))
|
|
AC_CHECKING(setreuid)
|
|
-AC_TRY_LINK(,[
|
|
+AC_TRY_LINK(
|
|
+[#include <unistd.h>
|
|
+], [
|
|
setreuid(0, 0);
|
|
], AC_DEFINE(HAVE_SETREUID))
|
|
dnl
|
|
dnl seteuid() check:
|
|
dnl linux seteuid was broken before V1.1.11
|
|
dnl NeXT, AUX, ISC, and ultrix are still broken (no saved uid support)
|
|
dnl Solaris seteuid doesn't change the saved uid, bad for
|
|
dnl multiuser screen sessions
|
|
AC_CHECKING(seteuid)
|
|
-AC_TRY_LINK(,[
|
|
+AC_TRY_LINK(
|
|
+[#include <unistd.h>
|
|
+],[
|
|
#if defined(linux) || defined(NeXT) || defined(_AUX_SOURCE) || defined(AUX) || defined(ultrix) || (defined(sun) && defined(SVR4)) || defined(ISC) || defined(sony_news)
|
|
-seteuid_is_broken(0);
|
|
+int seteuid_is_broken(int); seteuid_is_broken(0);
|
|
#else
|
|
seteuid(0);
|
|
#endif
|
|
], AC_DEFINE(HAVE_SETEUID))
|
|
|
|
dnl execvpe
|
|
AC_CHECKING(execvpe)
|
|
-AC_TRY_LINK(,[
|
|
+AC_TRY_LINK(
|
|
+[#include <unistd.h>
|
|
+],[
|
|
execvpe(0, 0, 0);
|
|
], AC_DEFINE(HAVE_EXECVPE)
|
|
CFLAGS="$CFLAGS -D_GNU_SOURCE")
|
|
|
|
dnl
|
|
dnl **** select() ****
|
|
dnl
|
|
|
|
AC_CHECKING(select)
|
|
-AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
|
|
+AC_TRY_LINK(
|
|
+[#include <sys/select.h>
|
|
+],[
|
|
+ select(0, 0, 0, 0, 0);
|
|
+],,
|
|
LIBS="$LIBS -lnet -lnsl"
|
|
AC_CHECKING(select with $LIBS)
|
|
-AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
|
|
+AC_TRY_LINK(
|
|
+[#include <sys/select.h>
|
|
+],[
|
|
+ select(0, 0, 0, 0, 0);
|
|
+],,
|
|
AC_MSG_ERROR(!!! no select - no screen))
|
|
)
|
|
dnl
|
|
dnl **** FIFO tests ****
|
|
dnl
|
|
@@ -314,11 +332,11 @@ AC_TRY_RUN([
|
|
#define S_IFIFO 0010000
|
|
#endif
|
|
|
|
char *fin = "/tmp/conftest$$";
|
|
|
|
-main()
|
|
+int main()
|
|
{
|
|
struct stat stb;
|
|
fd_set f;
|
|
|
|
(void)alarm(5);
|
|
@@ -326,40 +344,40 @@ main()
|
|
#ifdef POSIX
|
|
if (mkfifo(fin, 0777))
|
|
#else
|
|
if (mknod(fin, S_IFIFO|0777, 0))
|
|
#endif
|
|
- exit(1);
|
|
+ return 1;
|
|
if (stat(fin, &stb) || (stb.st_mode & S_IFIFO) != S_IFIFO)
|
|
- exit(1);
|
|
+ return 1;
|
|
close(0);
|
|
#ifdef __386BSD__
|
|
/*
|
|
* The next test fails under 386BSD, but screen works using fifos.
|
|
* Fifos in O_RDWR mode are only used for the BROKEN_PIPE case and for
|
|
* the select() configuration test.
|
|
*/
|
|
- exit(0);
|
|
+ return 0;
|
|
#endif
|
|
if (open(fin, O_RDONLY | O_NONBLOCK))
|
|
- exit(1);
|
|
+ return 1;
|
|
if (fork() == 0)
|
|
{
|
|
close(0);
|
|
if (open(fin, O_WRONLY | O_NONBLOCK))
|
|
- exit(1);
|
|
+ return 1;
|
|
close(0);
|
|
if (open(fin, O_WRONLY | O_NONBLOCK))
|
|
- exit(1);
|
|
+ return 1;
|
|
if (write(0, "TEST", 4) == -1)
|
|
- exit(1);
|
|
- exit(0);
|
|
+ return 1;
|
|
+ return 0;
|
|
}
|
|
FD_SET(0, &f);
|
|
if (select(1, &f, 0, 0, 0) == -1)
|
|
- exit(1);
|
|
- exit(0);
|
|
+ return 1;
|
|
+ return 0;
|
|
}
|
|
], AC_NOTE(- your fifos are usable) fifo=1,
|
|
AC_NOTE(- your fifos are not usable),
|
|
AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1)
|
|
rm -f /tmp/conftest*
|
|
@@ -385,30 +403,31 @@ AC_TRY_RUN([
|
|
#define S_IFIFO 0010000
|
|
#endif
|
|
|
|
char *fin = "/tmp/conftest$$";
|
|
|
|
+int
|
|
main()
|
|
{
|
|
struct timeval tv;
|
|
fd_set f;
|
|
|
|
#ifdef POSIX
|
|
if (mkfifo(fin, 0600))
|
|
#else
|
|
if (mknod(fin, S_IFIFO|0600, 0))
|
|
#endif
|
|
- exit(1);
|
|
+ return 1;
|
|
close(0);
|
|
if (open(fin, O_RDONLY|O_NONBLOCK))
|
|
- exit(1);
|
|
+ return 1;
|
|
FD_SET(0, &f);
|
|
tv.tv_sec = 1;
|
|
tv.tv_usec = 0;
|
|
if (select(1, &f, 0, 0, &tv))
|
|
- exit(1);
|
|
- exit(0);
|
|
+ return 1;
|
|
+ return 0;
|
|
}
|
|
], AC_NOTE(- your implementation is ok),
|
|
AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1,
|
|
AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok))
|
|
rm -f /tmp/conftest*
|
|
@@ -432,46 +455,48 @@ AC_TRY_RUN([
|
|
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/un.h>
|
|
+#include <signal.h>
|
|
|
|
char *son = "/tmp/conftest$$";
|
|
|
|
+int
|
|
main()
|
|
{
|
|
int s1, s2, l;
|
|
struct sockaddr_un a;
|
|
fd_set f;
|
|
|
|
(void)alarm(5);
|
|
if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
|
|
- exit(1);
|
|
+ return 1;
|
|
a.sun_family = AF_UNIX;
|
|
strcpy(a.sun_path, son);
|
|
(void) unlink(son);
|
|
if (bind(s1, (struct sockaddr *) &a, strlen(son)+2) == -1)
|
|
- exit(1);
|
|
+ return 1;
|
|
if (listen(s1, 2))
|
|
- exit(1);
|
|
+ return 1;
|
|
if (fork() == 0)
|
|
{
|
|
if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
|
|
kill(getppid(), 3);
|
|
(void)connect(s2, (struct sockaddr *)&a, strlen(son) + 2);
|
|
if (write(s2, "HELLO", 5) == -1)
|
|
kill(getppid(), 3);
|
|
- exit(0);
|
|
+ return 0;
|
|
}
|
|
l = sizeof(a);
|
|
close(0);
|
|
if (accept(s1, &a, &l))
|
|
- exit(1);
|
|
+ return 1;
|
|
FD_SET(0, &f);
|
|
if (select(1, &f, 0, 0, 0) == -1)
|
|
- exit(1);
|
|
- exit(0);
|
|
+ return 1;
|
|
+ return 0;
|
|
}
|
|
], AC_NOTE(- your sockets are usable) sock=1,
|
|
AC_NOTE(- your sockets are not usable),
|
|
AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1)
|
|
rm -f /tmp/conftest*
|
|
@@ -491,26 +516,27 @@ AC_TRY_RUN([
|
|
#include <sys/socket.h>
|
|
#include <sys/un.h>
|
|
|
|
char *son = "/tmp/conftest$$";
|
|
|
|
+int
|
|
main()
|
|
{
|
|
int s;
|
|
struct stat stb;
|
|
struct sockaddr_un a;
|
|
if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
|
|
- exit(0);
|
|
+ return 0;
|
|
a.sun_family = AF_UNIX;
|
|
strcpy(a.sun_path, son);
|
|
(void) unlink(son);
|
|
if (bind(s, (struct sockaddr *) &a, strlen(son)+2) == -1)
|
|
- exit(0);
|
|
+ return 0;
|
|
if (stat(son, &stb))
|
|
- exit(1);
|
|
+ return 1;
|
|
close(s);
|
|
- exit(0);
|
|
+ return 0;
|
|
}
|
|
],AC_NOTE(- you are normal),
|
|
AC_NOTE(- unix domain sockets are not kept in the filesystem)
|
|
AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1,
|
|
AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal))
|
|
@@ -545,122 +571,167 @@ char *nam = "/tmp/conftest$$";
|
|
#endif
|
|
#ifndef S_IFIFO
|
|
#define S_IFIFO 0010000
|
|
#endif
|
|
|
|
+int
|
|
main()
|
|
{
|
|
fd_set f;
|
|
|
|
#ifdef __FreeBSD__
|
|
/* From Andrew A. Chernov (ache@astral.msk.su):
|
|
* opening RDWR fifo fails in BSD 4.4, but select return values are
|
|
* right.
|
|
*/
|
|
- exit(0);
|
|
+ return 0;
|
|
#endif
|
|
(void)alarm(5);
|
|
#ifdef POSIX
|
|
if (mkfifo(nam, 0777))
|
|
#else
|
|
if (mknod(nam, S_IFIFO|0777, 0))
|
|
#endif
|
|
- exit(1);
|
|
+ return 1;
|
|
close(0);
|
|
if (open(nam, O_RDWR | O_NONBLOCK))
|
|
- exit(1);
|
|
+ return 1;
|
|
if (write(0, "TEST", 4) == -1)
|
|
- exit(1);
|
|
+ return 1;
|
|
|
|
#else
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/un.h>
|
|
+#include <signal.h>
|
|
|
|
+int
|
|
main()
|
|
{
|
|
int s1, s2, l;
|
|
struct sockaddr_un a;
|
|
fd_set f;
|
|
|
|
(void)alarm(5);
|
|
if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
|
|
- exit(1);
|
|
+ return 1;
|
|
a.sun_family = AF_UNIX;
|
|
strcpy(a.sun_path, nam);
|
|
(void) unlink(nam);
|
|
if (bind(s1, (struct sockaddr *) &a, strlen(nam)+2) == -1)
|
|
- exit(1);
|
|
+ return 1;
|
|
if (listen(s1, 2))
|
|
- exit(1);
|
|
+ return 1;
|
|
if (fork() == 0)
|
|
{
|
|
if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
|
|
kill(getppid(), 3);
|
|
(void)connect(s2, (struct sockaddr *)&a, strlen(nam) + 2);
|
|
if (write(s2, "HELLO", 5) == -1)
|
|
kill(getppid(), 3);
|
|
- exit(0);
|
|
+ return 0;
|
|
}
|
|
l = sizeof(a);
|
|
close(0);
|
|
if (accept(s1, (struct sockaddr *)&a, &l))
|
|
- exit(1);
|
|
+ return 1;
|
|
#endif
|
|
|
|
|
|
FD_SET(0, &f);
|
|
if (select(1, &f, 0, 0, 0) == -1)
|
|
- exit(1);
|
|
+ return 1;
|
|
if (select(1, &f, &f, 0, 0) != 2)
|
|
- exit(1);
|
|
- exit(0);
|
|
+ return 1;
|
|
+ return 0;
|
|
}
|
|
],AC_NOTE(- select is ok),
|
|
AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN),
|
|
AC_NOTE(- skipping check because we are cross compiling; assuming select is ok))
|
|
|
|
dnl
|
|
dnl **** termcap or terminfo ****
|
|
dnl
|
|
AC_CHECKING(for tgetent)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK([
|
|
+ #include <curses.h>
|
|
+ #include <term.h>
|
|
+], [
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
olibs="$LIBS"
|
|
LIBS="-lcurses $olibs"
|
|
AC_CHECKING(libcurses)
|
|
-AC_TRY_LINK(,[
|
|
+AC_TRY_LINK([#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
#ifdef __hpux
|
|
__sorry_hpux_libcurses_is_totally_broken_in_10_10();
|
|
#else
|
|
tgetent((char *)0, (char *)0);
|
|
#endif
|
|
],,
|
|
LIBS="-ltermcap $olibs"
|
|
AC_CHECKING(libtermcap)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK(
|
|
+[#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
LIBS="-ltermlib $olibs"
|
|
AC_CHECKING(libtermlib)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK(
|
|
+[#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
LIBS="-lncursesw $olibs"
|
|
AC_CHECKING(libncursesw)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK(
|
|
+[#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
LIBS="-ltinfow $olibs"
|
|
AC_CHECKING(libtinfow)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK(
|
|
+[#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
LIBS="-lncurses $olibs"
|
|
AC_CHECKING(libncurses)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK(
|
|
+[#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
LIBS="-ltinfo $olibs"
|
|
AC_CHECKING(libtinfo)
|
|
-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
+AC_TRY_LINK(
|
|
+[#include <curses.h>
|
|
+ #include <term.h>
|
|
+],[
|
|
+ tgetent((char *)0, (char *)0);
|
|
+],,
|
|
AC_MSG_ERROR(!!! no tgetent - no screen)))))))))
|
|
|
|
AC_TRY_RUN([
|
|
+#include <curses.h>
|
|
+#include <string.h>
|
|
+#include <term.h>
|
|
+
|
|
+int
|
|
main()
|
|
{
|
|
- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
|
|
+ return(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
|
|
}], AC_NOTE(- you use the termcap database),
|
|
AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO),
|
|
AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO))
|
|
AC_CHECKING(ospeed)
|
|
AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
|
|
@@ -677,11 +748,15 @@ fi
|
|
|
|
if test "$cross_compiling" = no ; then
|
|
AC_CHECKING(for SVR4 ptys)
|
|
sysvr4ptys=
|
|
if test -c /dev/ptmx ; then
|
|
-AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
|
|
+AC_TRY_LINK([
|
|
+ #include <stdlib.h>
|
|
+], [
|
|
+ ptsname(0);grantpt(0);unlockpt(0);
|
|
+],[AC_DEFINE(HAVE_SVR4_PTYS)
|
|
sysvr4ptys=1])
|
|
fi
|
|
fi
|
|
|
|
AC_CHECK_FUNCS(getpt)
|
|
@@ -733,33 +808,36 @@ AC_CHECKING(default tty permissions/group)
|
|
rm -f conftest_grp
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <unistd.h>
|
|
+int
|
|
main()
|
|
{
|
|
struct stat sb;
|
|
char *x,*ttyname();
|
|
int om, m;
|
|
FILE *fp;
|
|
|
|
- if (!(x = ttyname(0))) exit(1);
|
|
- if (stat(x, &sb)) exit(1);
|
|
+ if (!(x = ttyname(0))) return 1;
|
|
+ if (stat(x, &sb)) return 1;
|
|
om = sb.st_mode;
|
|
- if (om & 002) exit(0);
|
|
+ if (om & 002) return 0;
|
|
m = system("mesg y");
|
|
- if (m == -1 || m == 127) exit(1);
|
|
- if (stat(x, &sb)) exit(1);
|
|
+ if (m == -1 || m == 127) return 1;
|
|
+ if (stat(x, &sb)) return 1;
|
|
m = sb.st_mode;
|
|
- if (chmod(x, om)) exit(1);
|
|
- if (m & 002) exit(0);
|
|
- if (sb.st_gid == getgid()) exit(1);
|
|
+ if (chmod(x, om)) return 1;
|
|
+ if (m & 002) return 0;
|
|
+ if (sb.st_gid == getgid()) return 1;
|
|
if (!(fp=fopen("conftest_grp", "w")))
|
|
- exit(1);
|
|
+ return 1;
|
|
fprintf(fp, "%d\n", sb.st_gid);
|
|
fclose(fp);
|
|
- exit(0);
|
|
+ return 0;
|
|
}
|
|
],[
|
|
if test -f conftest_grp; then
|
|
ptygrp=`cat conftest_grp`
|
|
AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
|
|
@@ -869,17 +942,25 @@ AC_CHECKING(for libutil(s))
|
|
test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
|
|
test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
|
|
fi
|
|
|
|
AC_CHECKING(getloadavg)
|
|
-AC_TRY_LINK(,[getloadavg((double *)0, 0);],
|
|
+AC_TRY_LINK(
|
|
+[
|
|
+ #include <stdlib.h>
|
|
+],[
|
|
+ getloadavg((double *)0, 0);],
|
|
AC_DEFINE(LOADAV_GETLOADAVG) load=1,
|
|
if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
|
|
olibs="$LIBS"
|
|
LIBS="$LIBS -lkvm"
|
|
AC_CHECKING(getloadavg with -lkvm)
|
|
-AC_TRY_LINK(,[getloadavg((double *)0, 0);],
|
|
+AC_TRY_LINK(
|
|
+[
|
|
+ #include <stdlib.h>
|
|
+],[
|
|
+ getloadavg((double *)0, 0);],
|
|
AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
|
|
fi
|
|
)
|
|
|
|
if test -z "$load" ; then
|
|
@@ -931,10 +1012,11 @@ else
|
|
|
|
$nlist64
|
|
|
|
struct nlist nl[2];
|
|
|
|
+int
|
|
main()
|
|
{
|
|
#if !defined(_AUX_SOURCE) && !defined(AUX)
|
|
# ifdef NLIST_NAME_UNION
|
|
nl[0].n_un.n_name = "$av";
|
|
@@ -944,12 +1026,12 @@ main()
|
|
#else
|
|
strncpy(nl[0].n_name, "$av", sizeof(nl[0].n_name));
|
|
#endif
|
|
nlist(LOADAV_UNIX, nl);
|
|
if (nl[0].n_value == 0)
|
|
- exit(1);
|
|
- exit(0);
|
|
+ return 1;
|
|
+ return 0;
|
|
}
|
|
],avensym=$av;break)
|
|
if test "$av" = _Loadavg; then
|
|
nlist64='#define nlist nlist64'
|
|
fi
|
|
@@ -1068,21 +1150,22 @@ void
|
|
hand()
|
|
{
|
|
got++;
|
|
}
|
|
|
|
+int
|
|
main()
|
|
{
|
|
/* on hpux we use sigvec to get bsd signals */
|
|
#ifdef __hpux
|
|
(void)signal(SIGCLD, hand);
|
|
kill(getpid(), SIGCLD);
|
|
kill(getpid(), SIGCLD);
|
|
if (got < 2)
|
|
- exit(1);
|
|
+ return 1;
|
|
#endif
|
|
- exit(0);
|
|
+ return 0;
|
|
}
|
|
],,AC_DEFINE(SYSVSIGS),:)
|
|
|
|
fi
|
|
|
|
@@ -1107,14 +1190,22 @@ oldlibs="$LIBS"
|
|
LIBS="$LIBS -lsun"
|
|
AC_CHECKING(IRIX sun library)
|
|
AC_TRY_LINK(,,,LIBS="$oldlibs")
|
|
|
|
AC_CHECKING(syslog)
|
|
-AC_TRY_LINK(,[closelog();], , [oldlibs="$LIBS"
|
|
+AC_TRY_LINK(
|
|
+[#include <syslog.h>
|
|
+], [
|
|
+ closelog();
|
|
+], , [oldlibs="$LIBS"
|
|
LIBS="$LIBS -lbsd"
|
|
AC_CHECKING(syslog in libbsd.a)
|
|
-AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
|
|
+AC_TRY_LINK(
|
|
+[#include <syslog.h>
|
|
+], [
|
|
+ closelog();
|
|
+], AC_NOTE(- found.), [LIBS="$oldlibs"
|
|
AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
|
|
|
|
AC_EGREP_CPP(YES_IS_DEFINED,
|
|
[#ifdef M_UNIX
|
|
YES_IS_DEFINED;
|
|
@@ -1147,66 +1238,87 @@ fi
|
|
dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW))
|
|
AC_CHECKING(getspnam)
|
|
AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
|
|
|
|
AC_CHECKING(getttyent)
|
|
-AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
|
|
+AC_TRY_LINK(
|
|
+[
|
|
+ #include <ttyent.h>
|
|
+],[
|
|
+ getttyent();
|
|
+], AC_DEFINE(GETTTYENT))
|
|
|
|
AC_CHECKING(fdwalk)
|
|
AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
|
|
|
|
AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
|
|
AC_TRY_RUN([
|
|
+#include <string.h>
|
|
+
|
|
+int
|
|
main() {
|
|
char buf[10];
|
|
strcpy(buf, "abcdefghi");
|
|
bcopy(buf, buf + 2, 3);
|
|
if (strncmp(buf, "ababcf", 6))
|
|
- exit(1);
|
|
+ return 1;
|
|
strcpy(buf, "abcdefghi");
|
|
bcopy(buf + 2, buf, 3);
|
|
if (strncmp(buf, "cdedef", 6))
|
|
- exit(1);
|
|
- exit(0); /* libc version works properly. */
|
|
+ return 1;
|
|
+ return 0; /* libc version works properly. */
|
|
}], AC_DEFINE(USEBCOPY),,:)
|
|
|
|
AC_TRY_RUN([
|
|
+#include <string.h>
|
|
+
|
|
#define bcopy(s,d,l) memmove(d,s,l)
|
|
+int
|
|
main() {
|
|
char buf[10];
|
|
strcpy(buf, "abcdefghi");
|
|
bcopy(buf, buf + 2, 3);
|
|
if (strncmp(buf, "ababcf", 6))
|
|
- exit(1);
|
|
+ return 1;
|
|
strcpy(buf, "abcdefghi");
|
|
bcopy(buf + 2, buf, 3);
|
|
if (strncmp(buf, "cdedef", 6))
|
|
- exit(1);
|
|
- exit(0); /* libc version works properly. */
|
|
+ return 1;
|
|
+ return 0; /* libc version works properly. */
|
|
}], AC_DEFINE(USEMEMMOVE),,
|
|
AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE))
|
|
|
|
|
|
AC_TRY_RUN([
|
|
+#include <string.h>
|
|
+
|
|
#define bcopy(s,d,l) memcpy(d,s,l)
|
|
+int
|
|
main() {
|
|
char buf[10];
|
|
strcpy(buf, "abcdefghi");
|
|
bcopy(buf, buf + 2, 3);
|
|
if (strncmp(buf, "ababcf", 6))
|
|
- exit(1);
|
|
+ return 1;
|
|
strcpy(buf, "abcdefghi");
|
|
bcopy(buf + 2, buf, 3);
|
|
if (strncmp(buf, "cdedef", 6))
|
|
- exit(1);
|
|
- exit(0); /* libc version works properly. */
|
|
+ return 1;
|
|
+ return 0; /* libc version works properly. */
|
|
}], AC_DEFINE(USEMEMCPY),,:)
|
|
|
|
AC_SYS_LONG_FILE_NAMES
|
|
|
|
AC_MSG_CHECKING(for vsprintf)
|
|
-AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
|
|
+AC_TRY_LINK(
|
|
+[
|
|
+ #include <stdarg.h>
|
|
+ #include <stdio.h>
|
|
+],
|
|
+[
|
|
+ va_list valist; vsprintf(0,0,valist);
|
|
+], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
|
|
|
|
AC_HEADER_DIRENT
|
|
|
|
AC_MSG_CHECKING(for setenv)
|
|
if test -z "$ac_setenv_args"; then
|
|
|