summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--TODO8
-rw-r--r--acconfig.h6
-rw-r--r--bjm.c12
-rw-r--r--config.h.in18
-rwxr-xr-xconfigure219
-rw-r--r--configure.in5
-rw-r--r--file.c25
-rw-r--r--io.c29
-rw-r--r--linux/dummy.h1
-rw-r--r--linux/syscall.h4
-rw-r--r--linux/syscallent.h66
-rw-r--r--mem.c25
-rw-r--r--net.c17
-rw-r--r--process.c65
-rw-r--r--signal.c21
-rw-r--r--sock.c4
-rw-r--r--stream.c2
-rw-r--r--system.c53
-rw-r--r--term.c12
-rw-r--r--util.c8
21 files changed, 404 insertions, 214 deletions
diff --git a/ChangeLog b/ChangeLog
index 8a5ab4482..1d7777d9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+Sun May 9 02:18:30 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge in patches from Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+ + some layout and other minor fixes
+ + add some m68k-specific things to linux/syscallent.h. Note that m68k
+ is similar enough to i386 to not need it's own subdirectory
+ + add support for sendfile and mremap syscalls for Linux
+ * Merge in patches from Sascha Schumann <sascha@schumann.2ns.de>
+ + ioctls.h vs sys/ioctl.h on Alpha platform
+ + pointer was casted to an int in stream.c
+ + strsignal() needs -D_GNU_SOURCE in CFLAGS
+ + several other casts changed
+ + correct ARM/POWERPC architecture defines in acconfig.h
+ * Merge in patches from Morten Welinder <terra@diku.dk>
+ + add some autoconf-tests for includefiles
+ + handle solaris version of sigcontext struct (actually I hacked this
+ up again, but the idea is his :)
+
Sun Apr 18 22:32:42 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
* Update syscalls for linux alpha, patch from Bart Warmerdam
diff --git a/TODO b/TODO
index 18824be93..ae11ae886 100644
--- a/TODO
+++ b/TODO
@@ -1,9 +1,13 @@
-- new entries from wta
getdents has wrong structure; track down kernel version
+clone doesn't work; cloned processes can hang
+replace printargs with something that reads a configuration-file
+rename functions that are used for general things:
+ sys_chdir -> general_1stringarg
+generate syscallent.h from the kernel sources
-- old entries from jrs
-require override to run suid and/or sgid executables normally
attempt reopen of /proc file if we get EAGAIN from any /proc ioctl
kill procs we error out of on svr4
enclose "total x dents" in a comment
@@ -18,7 +22,6 @@ add pread, pwrite to I/O dumping
add system assist for qualifiers on svr4
change printcall to getcaller and fix for linux and svr4
fix fork hang for svr4 without pollable procfs
-add thread support
print events on entry to and revents on exit from poll
monitor procfs open and release the other child if the process wants to own it
fix incorrect syscall number if exit without entry on svr4 without pr_syscall
@@ -27,4 +30,3 @@ ignore faults which occur before exec
look for more ioctls on solaris, used in nslookup for example
consider adding backtrace support
consider adding general purpose interpreter
-rename program to sctrace to avoid conflict with svr4 strace?
diff --git a/acconfig.h b/acconfig.h
index 44a4921c0..8a9a9c3d4 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -24,6 +24,12 @@
/* Define if this is an alpha architecture. */
#undef ALPHA
+/* Define if this is a arm architecture. */
+#undef ARM
+
+/* Define if this is an powerpc architecture. */
+#undef POWERPC
+
/* Define if you have SVR4 and the poll system call works on /proc files. */
#undef HAVE_POLLABLE_PROCFS
diff --git a/bjm.c b/bjm.c
index 2bb91a970..d21ce7cd4 100644
--- a/bjm.c
+++ b/bjm.c
@@ -1,5 +1,7 @@
#include "defs.h"
+#if defined(LINUX)
+
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/time.h>
@@ -49,13 +51,5 @@ struct tcb *tcp;
return 0;
}
-int
-sys_delete_module(tcp)
-struct tcb *tcp;
-{
+#endif /* LINUX */
- if (entering(tcp)) {
- printstr(tcp, tcp->u_arg[0], -1);
- }
- return 0;
-}
diff --git a/config.h.in b/config.h.in
index 09991bebd..4d2772f2e 100644
--- a/config.h.in
+++ b/config.h.in
@@ -75,12 +75,12 @@
/* Define if this is an alpha architecture. */
#undef ALPHA
-/* Define if this is an powerpc architecture. */
-#undef POWERPC
-
/* Define if this is a arm architecture. */
#undef ARM
+/* Define if this is an powerpc architecture. */
+#undef POWERPC
+
/* Define if you have SVR4 and the poll system call works on /proc files. */
#undef HAVE_POLLABLE_PROCFS
@@ -141,6 +141,9 @@
/* Define if you have the <dirent.h> header file. */
#undef HAVE_DIRENT_H
+/* Define if you have the <ioctls.h> header file. */
+#undef HAVE_IOCTLS_H
+
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
@@ -153,9 +156,15 @@
/* Define if you have the <sys/filio.h> header file. */
#undef HAVE_SYS_FILIO_H
+/* Define if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
+/* Define if you have the <sys/ptrace.h> header file. */
+#undef HAVE_SYS_PTRACE_H
+
/* Define if you have the <sys/stream.h> header file. */
#undef HAVE_SYS_STREAM_H
@@ -165,5 +174,8 @@
/* Define if you have the <sys/tiuser.h> header file. */
#undef HAVE_SYS_TIUSER_H
+/* Define if you have the <termio.h> header file. */
+#undef HAVE_TERMIO_H
+
/* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL
diff --git a/configure b/configure
index f9ee55f4d..25a903d74 100755
--- a/configure
+++ b/configure
@@ -629,7 +629,7 @@ echo "$ac_t""$arch" 1>&6
# Autoheader trick. Heh, heh.
arch_list='
-@@@syms="$syms I386 M68K SPARC MIPS ALPHA ARM"@@@
+@@@syms="$syms I386 M68K SPARC MIPS ALPHA ARM POWERPC"@@@
'
osarch="$opsys"
@@ -640,6 +640,7 @@ fi
OPSYS=`echo $opsys | tr '[a-z]' '[A-Z]'`
ARCH=`echo $arch | tr '[a-z]' '[A-Z]'`
+CFLAG="-D_GNU_SOURCE $CFLAGS"
cat >> confdefs.h <<EOF
@@ -655,7 +656,7 @@ EOF
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:659: checking for $ac_word" >&5
+echo "configure:660: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -685,7 +686,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:689: checking for $ac_word" >&5
+echo "configure:690: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -736,7 +737,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:740: checking for $ac_word" >&5
+echo "configure:741: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -768,7 +769,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:772: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:773: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -779,12 +780,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 783 "configure"
+#line 784 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -810,12 +811,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:814: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:815: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:819: checking whether we are using GNU C" >&5
+echo "configure:820: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -824,7 +825,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:828: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -843,7 +844,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:847: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:848: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -888,16 +889,16 @@ then
last="$i"
CC="$HOSTCC -b $i"
echo $ac_n "checking for working $CC""... $ac_c" 1>&6
-echo "configure:892: checking for working $CC" >&5
+echo "configure:893: checking for working $CC" >&5
cat > conftest.$ac_ext <<EOF
-#line 894 "configure"
+#line 895 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
worked=1
break
@@ -919,7 +920,7 @@ rm -f conftest*
fi
echo $ac_n "checking for pollable procfs""... $ac_c" 1>&6
-echo "configure:923: checking for pollable procfs" >&5
+echo "configure:924: checking for pollable procfs" >&5
if eval "test \"`echo '$''{'ac_cv_pollable_procfs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -937,7 +938,7 @@ esac
else
cat > conftest.$ac_ext <<EOF
-#line 941 "configure"
+#line 942 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -976,7 +977,7 @@ fail:
}
EOF
-if { (eval echo configure:980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_pollable_procfs=yes
else
@@ -1000,19 +1001,19 @@ EOF
fi
echo $ac_n "checking for pr_syscall in struct prstatus""... $ac_c" 1>&6
-echo "configure:1004: checking for pr_syscall in struct prstatus" >&5
+echo "configure:1005: checking for pr_syscall in struct prstatus" >&5
if eval "test \"`echo '$''{'ac_cv_struct_pr_syscall'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1009 "configure"
+#line 1010 "configure"
#include "confdefs.h"
#include <sys/procfs.h>
int main() {
struct prstatus s; s.pr_syscall;
; return 0; }
EOF
-if { (eval echo configure:1016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_pr_syscall=yes
else
@@ -1034,12 +1035,12 @@ EOF
fi
echo $ac_n "checking for msg_control in struct msghdr""... $ac_c" 1>&6
-echo "configure:1038: checking for msg_control in struct msghdr" >&5
+echo "configure:1039: checking for msg_control in struct msghdr" >&5
if eval "test \"`echo '$''{'ac_cv_struct_msg_control'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1043 "configure"
+#line 1044 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -1048,7 +1049,7 @@ int main() {
struct msghdr m; m.msg_control;
; return 0; }
EOF
-if { (eval echo configure:1052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_msg_control=yes
else
@@ -1074,7 +1075,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1078: checking for $ac_word" >&5
+echo "configure:1079: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1105,7 +1106,7 @@ done
echo $ac_n "checking for primary include directory""... $ac_c" 1>&6
-echo "configure:1109: checking for primary include directory" >&5
+echo "configure:1110: checking for primary include directory" >&5
includedir=/usr/include
if test -n "$GCC"
then
@@ -1127,7 +1128,7 @@ echo "$ac_t""$includedir" 1>&6
if test "x$OPSYS" = "xSUNOS4" && test "x$ARCH" = "xSPARC"
then
echo $ac_n "checking for valid machine include directory""... $ac_c" 1>&6
-echo "configure:1131: checking for valid machine include directory" >&5
+echo "configure:1132: checking for valid machine include directory" >&5
if test -d "$includedir/sun4"
then
rm -f machine
@@ -1160,7 +1161,7 @@ then
fi
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1164: checking how to run the C preprocessor" >&5
+echo "configure:1165: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1175,13 +1176,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1179 "configure"
+#line 1180 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1186: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1192,13 +1193,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1196 "configure"
+#line 1197 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1202: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1209,13 +1210,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1213 "configure"
+#line 1214 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1241,13 +1242,13 @@ echo "$ac_t""$CPP" 1>&6
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1245: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:1246: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 1251 "configure"
+#line 1252 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -1265,7 +1266,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 1269 "configure"
+#line 1270 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -1298,7 +1299,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1302: checking for a BSD compatible install" >&5
+echo "configure:1303: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1351,12 +1352,12 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1355: checking for working const" >&5
+echo "configure:1356: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1360 "configure"
+#line 1361 "configure"
#include "confdefs.h"
int main() {
@@ -1405,7 +1406,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1426,12 +1427,12 @@ EOF
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1430: checking for ANSI C header files" >&5
+echo "configure:1431: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1435 "configure"
+#line 1436 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1439,7 +1440,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1443: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1456,7 +1457,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1460 "configure"
+#line 1461 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1474,7 +1475,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1478 "configure"
+#line 1479 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1495,7 +1496,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1499 "configure"
+#line 1500 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1506,7 +1507,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1534,12 +1535,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1538: checking for $ac_hdr that defines DIR" >&5
+echo "configure:1539: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1543 "configure"
+#line 1544 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -1547,7 +1548,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:1551: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -1572,7 +1573,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1576: checking for opendir in -ldir" >&5
+echo "configure:1577: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1580,7 +1581,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1584 "configure"
+#line 1585 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1591,7 +1592,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1613,7 +1614,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1617: checking for opendir in -lx" >&5
+echo "configure:1618: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1621,7 +1622,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1625 "configure"
+#line 1626 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1632,7 +1633,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:1636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1655,12 +1656,12 @@ fi
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1659: checking return type of signal handlers" >&5
+echo "configure:1660: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1664 "configure"
+#line 1665 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1677,7 +1678,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1696,12 +1697,12 @@ EOF
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:1700: checking for st_blksize in struct stat" >&5
+echo "configure:1701: checking for st_blksize in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1705 "configure"
+#line 1706 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1709,7 +1710,7 @@ int main() {
struct stat s; s.st_blksize;
; return 0; }
EOF
-if { (eval echo configure:1713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blksize=yes
else
@@ -1730,12 +1731,12 @@ EOF
fi
echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6
-echo "configure:1734: checking for st_blocks in struct stat" >&5
+echo "configure:1735: checking for st_blocks in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1739 "configure"
+#line 1740 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1743,7 +1744,7 @@ int main() {
struct stat s; s.st_blocks;
; return 0; }
EOF
-if { (eval echo configure:1747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blocks=yes
else
@@ -1766,12 +1767,12 @@ else
fi
echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
-echo "configure:1770: checking for st_rdev in struct stat" >&5
+echo "configure:1771: checking for st_rdev in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1775 "configure"
+#line 1776 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1779,7 +1780,7 @@ int main() {
struct stat s; s.st_rdev;
; return 0; }
EOF
-if { (eval echo configure:1783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_rdev=yes
else
@@ -1800,12 +1801,12 @@ EOF
fi
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:1804: checking whether stat file-mode macros are broken" >&5
+echo "configure:1805: checking whether stat file-mode macros are broken" >&5
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1809 "configure"
+#line 1810 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1856,12 +1857,12 @@ EOF
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:1860: checking for uid_t in sys/types.h" >&5
+echo "configure:1861: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1865 "configure"
+#line 1866 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -1890,12 +1891,12 @@ EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:1894: checking for mode_t" >&5
+echo "configure:1895: checking for mode_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1899 "configure"
+#line 1900 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1923,7 +1924,7 @@ EOF
fi
echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:1927: checking type of array argument to getgroups" >&5
+echo "configure:1928: checking type of array argument to getgroups" >&5
if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1931,7 +1932,7 @@ else
ac_cv_type_getgroups=cross
else
cat > conftest.$ac_ext <<EOF
-#line 1935 "configure"
+#line 1936 "configure"
#include "confdefs.h"
/* Thanks to Mike Rendell for this test. */
@@ -1956,7 +1957,7 @@ main()
}
EOF
-if { (eval echo configure:1960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_type_getgroups=gid_t
else
@@ -1970,7 +1971,7 @@ fi
if test $ac_cv_type_getgroups = cross; then
cat > conftest.$ac_ext <<EOF
-#line 1974 "configure"
+#line 1975 "configure"
#include "confdefs.h"
#include <unistd.h>
EOF
@@ -1994,19 +1995,19 @@ EOF
echo $ac_n "checking whether sys/types.h defines makedev""... $ac_c" 1>&6
-echo "configure:1998: checking whether sys/types.h defines makedev" >&5
+echo "configure:1999: checking whether sys/types.h defines makedev" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_types_h_makedev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2003 "configure"
+#line 2004 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
return makedev(0, 0);
; return 0; }
EOF
-if { (eval echo configure:2010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_sys_types_h_makedev=yes
else
@@ -2024,17 +2025,17 @@ echo "$ac_t""$ac_cv_header_sys_types_h_makedev" 1>&6
if test $ac_cv_header_sys_types_h_makedev = no; then
ac_safe=`echo "sys/mkdev.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/mkdev.h""... $ac_c" 1>&6
-echo "configure:2028: checking for sys/mkdev.h" >&5
+echo "configure:2029: checking for sys/mkdev.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2033 "configure"
+#line 2034 "configure"
#include "confdefs.h"
#include <sys/mkdev.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2038: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2062,17 +2063,17 @@ fi
if test $ac_cv_header_sys_mkdev_h = no; then
ac_safe=`echo "sys/sysmacros.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/sysmacros.h""... $ac_c" 1>&6
-echo "configure:2066: checking for sys/sysmacros.h" >&5
+echo "configure:2067: checking for sys/sysmacros.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2071 "configure"
+#line 2072 "configure"
#include "confdefs.h"
#include <sys/sysmacros.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2076: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2100,19 +2101,19 @@ fi
fi
echo $ac_n "checking for sig_atomic_t in signal.h""... $ac_c" 1>&6
-echo "configure:2104: checking for sig_atomic_t in signal.h" >&5
+echo "configure:2105: checking for sig_atomic_t in signal.h" >&5
if eval "test \"`echo '$''{'ac_cv_sig_atomic_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2109 "configure"
+#line 2110 "configure"
#include "confdefs.h"
#include <signal.h>
int main() {
sig_atomic_t x;
; return 0; }
EOF
-if { (eval echo configure:2116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sig_atomic_t=yes
else
@@ -2134,7 +2135,7 @@ EOF
fi
echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:2138: checking for main in -lnsl" >&5
+echo "configure:2139: checking for main in -lnsl" >&5
ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2142,14 +2143,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2146 "configure"
+#line 2147 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:2153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2179,12 +2180,12 @@ fi
for ac_func in sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl putpmsg prctl sendmsg
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2183: checking for $ac_func" >&5
+echo "configure:2184: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2188 "configure"
+#line 2189 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2207,7 +2208,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2231,21 +2232,21 @@ else
fi
done
-for ac_hdr in sys/filio.h sys/asynch.h sys/stream.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h
+for ac_hdr in sys/filio.h sys/asynch.h sys/stream.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2239: checking for $ac_hdr" >&5
+echo "configure:2240: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2244 "configure"
+#line 2245 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2272,12 +2273,12 @@ fi
done
echo $ac_n "checking for sys_errlist declaration""... $ac_c" 1>&6
-echo "configure:2276: checking for sys_errlist declaration" >&5
+echo "configure:2277: checking for sys_errlist declaration" >&5
if eval "test \"`echo '$''{'ac_cv_decl_sys_errlist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2281 "configure"
+#line 2282 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <errno.h>
@@ -2290,7 +2291,7 @@ int main() {
char *msg = *(sys_errlist + 1);
; return 0; }
EOF
-if { (eval echo configure:2294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl_sys_errlist=yes
else
@@ -2310,12 +2311,12 @@ EOF
fi
echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:2314: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:2315: checking for sys_siglist declaration in signal.h or unistd.h" >&5
if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2319 "configure"
+#line 2320 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -2327,7 +2328,7 @@ int main() {
char *msg = *(sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:2331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl_sys_siglist=yes
else
@@ -2348,12 +2349,12 @@ EOF
fi
echo $ac_n "checking for _sys_siglist declaration""... $ac_c" 1>&6
-echo "configure:2352: checking for _sys_siglist declaration" >&5
+echo "configure:2353: checking for _sys_siglist declaration" >&5
if eval "test \"`echo '$''{'ac_cv_decl__sys_siglist'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2357 "configure"
+#line 2358 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -2365,7 +2366,7 @@ int main() {
char *msg = *(_sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:2369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl__sys_siglist=yes
else
diff --git a/configure.in b/configure.in
index a43b563a6..1f4ef63b1 100644
--- a/configure.in
+++ b/configure.in
@@ -61,7 +61,7 @@ AC_MSG_RESULT($arch)
# Autoheader trick. Heh, heh.
arch_list='
-@@@syms="$syms I386 M68K SPARC MIPS ALPHA ARM"@@@
+@@@syms="$syms I386 M68K SPARC MIPS ALPHA ARM POWERPC"@@@
'
osarch="$opsys"
@@ -73,6 +73,7 @@ OPSYS=`echo $opsys | tr '[a-z]' '[A-Z]'`
ARCH=`echo $arch | tr '[a-z]' '[A-Z]'`
changequote([,])dnl
+CFLAG="-D_GNU_SOURCE $CFLAGS"
AC_CONFIG_HEADER(config.h)
AC_SUBST(opsys)
AC_DEFINE_UNQUOTED($OPSYS)
@@ -125,7 +126,7 @@ AC_HEADER_MAJOR
AC_SIG_ATOMIC_T
AC_CHECK_LIB(nsl, main)
AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl putpmsg prctl sendmsg)
-AC_CHECK_HEADERS(sys/filio.h sys/asynch.h sys/stream.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h)
+AC_CHECK_HEADERS(sys/filio.h sys/asynch.h sys/stream.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h)
AC_DECL_SYS_ERRLIST
AC_DECL_SYS_SIGLIST
AC_DECL__SYS_SIGLIST
diff --git a/file.c b/file.c
index b47efc204..63a7ccea8 100644
--- a/file.c
+++ b/file.c
@@ -283,21 +283,19 @@ struct tcb *tcp;
if (entering(tcp)) {
if (tcp->u_arg[4] == SEEK_SET)
tprintf("%ld, %llu, ", tcp->u_arg[0],
- (((unsigned long long int) tcp->u_arg[1]) << 32
- | (unsigned long) tcp->u_arg[2]));
+ (((long long int) tcp->u_arg[1]) << 32
+ | (unsigned long long) tcp->u_arg[2]));
else
tprintf("%ld, %lld, ", tcp->u_arg[0],
(((long long int) tcp->u_arg[1]) << 32
- | (unsigned long) tcp->u_arg[2]));
+ | (unsigned long long) tcp->u_arg[2]));
}
else {
- if (syserror(tcp))
+ long long int off;
+ if (syserror(tcp) || umove(tcp, tcp->u_arg[3], &off) < 0)
tprintf("%#lx, ", tcp->u_arg[3]);
- else {
- long long int off;
- umove(tcp, tcp->u_arg[3], &off);
- tprintf("{%lld}, ", off);
- }
+ else
+ tprintf("[%llu], ", off);
printxval(whence, tcp->u_arg[4], "SEEK_???");
}
return 0;
@@ -764,7 +762,8 @@ static struct xlat fsmagic[] = {
{ 0x9660, "ISOFS_SUPER_MAGIC" },
{ 0x137f, "MINIX_SUPER_MAGIC" },
{ 0x138f, "MINIX_SUPER_MAGIC2" },
- { 0x2468, "NEW_MINIX_SUPER_MAGIC" },
+ { 0x2468, "MINIX2_SUPER_MAGIC" },
+ { 0x2478, "MINIX2_SUPER_MAGIC2" },
{ 0x4d44, "MSDOS_SUPER_MAGIC" },
{ 0x6969, "NFS_SUPER_MAGIC" },
{ 0x9fa0, "PROC_SUPER_MAGIC" },
@@ -814,7 +813,7 @@ long addr;
tprintf("{f_type=%s, f_fbsize=%u, f_blocks=%u, f_bfree=%u, ",
sprintfstype(statbuf.f_type),
statbuf.f_bsize, statbuf.f_blocks, statbuf.f_bfree);
- tprintf("f_bavail=%u, f_files=%u, f_ffree=%u, f_namelen=%u}",
+ tprintf("f_bavail=%u, f_files=%u, f_ffree=%u, f_namelen=%u",
statbuf.f_bavail,statbuf.f_files, statbuf.f_ffree, statbuf.f_namelen);
#else /* !ALPHA */
tprintf("{f_type=%s, f_bsize=%lu, f_blocks=%lu, f_bfree=%lu, ",
@@ -826,7 +825,7 @@ long addr;
(unsigned long)statbuf.f_files,
(unsigned long)statbuf.f_ffree);
#ifdef linux
- tprintf(", f_namelen=%lu}", (unsigned long)statbuf.f_namelen);
+ tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
#endif /* linux */
#endif /* !ALPHA */
tprintf("}");
@@ -1296,7 +1295,7 @@ struct tcb *tcp;
if (syserror(tcp))
tprintf("%#lx", tcp->u_arg[0]);
else
- printstr(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ printpathn(tcp, tcp->u_arg[0], tcp->u_rval - 1);
tprintf(", %lu", tcp->u_arg[1]);
}
return 0;
diff --git a/io.c b/io.c
index 4e00fe4e0..543772ada 100644
--- a/io.c
+++ b/io.c
@@ -93,7 +93,7 @@ struct tcb *tcp;
tprintf("{");
printstr(tcp, (long) iov[i].iov_base,
iov[i].iov_len);
- tprintf(", %u}", iov[i].iov_len);
+ tprintf(", %lu}", (unsigned long)iov[i].iov_len);
}
tprintf("]");
}
@@ -129,7 +129,7 @@ struct tcb *tcp;
tprintf("{");
printstr(tcp, (long) iov[i].iov_base,
iov[i].iov_len);
- tprintf(", %u}", iov[i].iov_len);
+ tprintf(", %lu}", (unsigned long)iov[i].iov_len);
}
tprintf("]");
}
@@ -186,7 +186,8 @@ struct tcb *tcp;
tprintf("%#lx", tcp->u_arg[1]);
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
- tprintf(", %lu, %lu", tcp->u_arg[2], tcp->u_arg[3]);
+ tprintf(", %lu, %llu", tcp->u_arg[2],
+ *(unsigned long long *)&tcp->u_arg[3]);
}
return 0;
}
@@ -198,7 +199,27 @@ struct tcb *tcp;
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
- tprintf(", %lu, %lu", tcp->u_arg[2], tcp->u_arg[3]);
+ tprintf(", %lu, %llu", tcp->u_arg[2],
+ *(unsigned long long *)&tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+int
+sys_sendfile(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ off_t offset;
+
+ tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
+ if (!tcp->u_arg[2])
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ tprintf("[%lu]", offset);
+ tprintf(", %lu", tcp->u_arg[3]);
}
return 0;
}
diff --git a/linux/dummy.h b/linux/dummy.h
index 3cc87fbe3..1535127d1 100644
--- a/linux/dummy.h
+++ b/linux/dummy.h
@@ -56,7 +56,6 @@
#define sys_sched_get_priority_max printargs
#define sys_sched_get_priority_min printargs
#define sys_sched_rr_get_interval printargs
-#define sys_mremap printargs
/* like another call */
#define sys_uselib sys_chdir
diff --git a/linux/syscall.h b/linux/syscall.h
index ed4c620c3..213e29eac 100644
--- a/linux/syscall.h
+++ b/linux/syscall.h
@@ -81,6 +81,7 @@ int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd();
int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
+int sys_sendfile();
/* sys_socketcall subcalls */
@@ -153,3 +154,6 @@ int osf_statfs(), osf_fstatfs(), sys_getpagesize(), sys_madvise();
int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
int sys_capget(), sys_capset();
+#ifdef M68K
+int sys_cacheflush();
+#endif
diff --git a/linux/syscallent.h b/linux/syscallent.h
index da783026a..0b66a01bd 100644
--- a/linux/syscallent.h
+++ b/linux/syscallent.h
@@ -44,7 +44,11 @@
{ 1, 0, sys_time, "time" }, /* 13 */
{ 3, TF, sys_mknod, "mknod" }, /* 14 */
{ 2, TF, sys_chmod, "chmod" }, /* 15 */
+#ifdef M68K
+ { 3, TF, sys_chown, "chown" }, /* 16 */
+#else
{ 3, TF, sys_chown, "lchown" }, /* 16 */
+#endif
{ 0, 0, sys_break, "break" }, /* 17 */
{ 2, TF, sys_oldstat, "oldstat" }, /* 18 */
{ 3, 0, sys_lseek, "lseek" }, /* 19 */
@@ -151,12 +155,16 @@
{ 2, TP, sys_clone, "clone" }, /* 120 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
{ 1, 0, sys_uname, "uname" }, /* 122 */
+#ifdef M68K
+ { 4, 0, sys_cacheflush, "cacheflush" }, /* 123 */
+#else
{ 3, 0, sys_modify_ldt, "modify_ldt" }, /* 123 */
+#endif
{ 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 125 */
{ 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
{ 2, 0, sys_create_module, "create_module" }, /* 127 */
- { 4, 0, sys_init_module, "init_module" }, /* 128 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
{ 1, 0, sys_delete_module, "delete_module" }, /* 129 */
{ 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
{ 4, 0, sys_quotactl, "quotactl" }, /* 131 */
@@ -173,31 +181,35 @@
{ 5, 0, sys_select, "select" }, /* 142 */
{ 2, 0, sys_flock, "flock" }, /* 143 */
{ 3, 0, sys_msync, "msync" }, /* 144 */
- { 5, 0, sys_readv, "readv" }, /* 145 */
- { 5, 0, sys_writev, "writev" }, /* 146 */
- { 5, 0, sys_getsid, "getsid" }, /* 147 */
- { 5, 0, sys_fdatasync, "fdatasync" }, /* 148 */
- { 5, 0, sys_sysctl, "_sysctl" }, /* 149 */
- { 5, 0, sys_mlock, "mlock" }, /* 150 */
- { 5, 0, sys_munlock, "munlock" }, /* 151 */
- { 5, 0, sys_mlockall, "mlockall" }, /* 152 */
- { 5, 0, sys_munlockall, "munlockall" }, /* 153 */
- { 5, 0, sys_sched_setparam, "sched_setparam"}, /* 154 */
- { 5, 0, sys_sched_getparam, "sched_getparam"}, /* 155 */
- { 5, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 156 */
- { 5, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
- { 5, 0, sys_sched_yield, "sched_yield"}, /* 158 */
- { 5, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
- { 5, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
- { 5, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
- { 5, 0, sys_nanosleep, "nanosleep" }, /* 162 */
- { 5, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_readv, "readv" }, /* 145 */
+ { 3, 0, sys_writev, "writev" }, /* 146 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 1, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 1, 0, sys_munlockall, "munlockall" }, /* 153 */
+ { 0, 0, sys_sched_setparam, "sched_setparam"}, /* 154 */
+ { 2, 0, sys_sched_getparam, "sched_getparam"}, /* 155 */
+ { 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 156 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
+ { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 164 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+#ifdef M68K
+ { 5, 0, printargs, "SYS_166" }, /* 166 */
+#else
{ 5, 0, printargs, "vm86" }, /* 166 */
+#endif
{ 5, 0, sys_query_module, "query_module" }, /* 167 */
{ 3, 0, sys_poll, "poll" }, /* 168 */
- { 5, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
{ 3, 0, sys_setresgid, "setresgid" }, /* 170 */
{ 3, 0, sys_getresgid, "getresgid" }, /* 171 */
{ 5, 0, printargs, "prctl" }, /* 172 */
@@ -211,12 +223,16 @@
{ 5, TF, sys_pread, "pread" }, /* 180 */
{ 5, TF, sys_pwrite, "pwrite" }, /* 181 */
+#ifdef M68K
+ { 3, TF, sys_chown, "lchown" }, /* 182 */
+#else
{ 3, TF, sys_chown, "chown" }, /* 182 */
+#endif
{ 2, 0, sys_getcwd, "getcwd" }, /* 183 */
- { 5, 0, printargs, "capget" }, /* 184 */
- { 5, 0, printargs, "capset" }, /* 185 */
- { 5, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
- { 5, TF, printargs, "sendfile" }, /* 187 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
{ 5, 0, printargs, "SYS_188" }, /* 188 */
{ 5, 0, printargs, "SYS_189" }, /* 189 */
{ 0, TP, sys_vfork, "vfork" }, /* 190 */
diff --git a/mem.c b/mem.c
index 730761631..7a394123c 100644
--- a/mem.c
+++ b/mem.c
@@ -31,11 +31,10 @@
#include "defs.h"
-#ifdef LINUXSPARC
+#ifdef LINUX
#include <linux/mman.h>
-#else
-#include <sys/mman.h>
#endif
+#include <sys/mman.h>
#if defined(LINUX) && defined(__i386__)
#include <asm/ldt.h>
@@ -170,6 +169,26 @@ struct tcb *tcp;
return 0;
}
+#ifdef LINUX
+
+static struct xlat mremap_flags[] = {
+ { MREMAP_MAYMOVE, "MREMAP_MAYMOVE" },
+};
+
+int
+sys_mremap(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1],
+ tcp->u_arg[2]);
+ printflags(mremap_flags, tcp->u_arg[3]);
+ }
+ return RVAL_HEX;
+}
+
+#endif /* LINUX */
+
#ifdef MS_ASYNC
static struct xlat mctl_sync[] = {
diff --git a/net.c b/net.c
index e2319646f..c6aad71e3 100644
--- a/net.c
+++ b/net.c
@@ -384,9 +384,14 @@ long addr;
{
struct msghdr msg;
- umove(tcp, addr, &msg);
- tprintf("{msg_name=%s, msg_namelen=%u, msg_iov=%#lx, msg_iovlen=%u, ",
- (char *) msg.msg_name, msg.msg_namelen,
+ if (umove(tcp, addr, &msg) < 0) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ tprintf("{msg_name=");
+ printstr(tcp, (long) msg.msg_name, msg.msg_namelen);
+ tprintf(", msg_namelen=%u, msg_iov=%#lx, msg_iovlen=%u, ",
+ msg.msg_namelen,
(unsigned long) msg.msg_iov, msg.msg_iovlen);
#ifdef HAVE_MSG_CONTROL
tprintf("msg_control=%#lx, msg_controllen=%u, msg_flags=%#x}",
@@ -706,17 +711,17 @@ struct tcb *tcp;
break;
#endif /* PF_IPX */
default:
- tprintf(", %lu", tcp->u_arg[2]);
+ tprintf("%lu", tcp->u_arg[2]);
break;
}
} else {
if (syserror(tcp)) {
- tprintf("%#lx", tcp->u_arg[3]);
+ tprintf(", %#lx", tcp->u_arg[3]);
return 0;
}
#ifdef LINUX
if (umoven(tcp, tcp->u_arg[3], sizeof fds, (char *) fds) < 0)
- tprintf("[...]");
+ tprintf(", [...]");
else
tprintf(", [%u, %u]", fds[0], fds[1]);
#endif /* LINUX */
diff --git a/process.c b/process.c
index 388ab97fd..40a903de1 100644
--- a/process.c
+++ b/process.c
@@ -51,7 +51,12 @@
#endif
#ifdef LINUX
+#ifndef __GLIBC__
#include <linux/ptrace.h>
+#endif
+#include <asm/posix_types.h>
+#undef GETGROUPS_T
+#define GETGROUPS_T __kernel_gid_t
#endif /* LINUX */
#ifdef HAVE_PRCTL
@@ -476,18 +481,24 @@ sys_getresuid(tcp)
struct tcb *tcp;
{
if (exiting(tcp)) {
- uid_t res[3];
- if (umoven(tcp, tcp->u_arg[0], sizeof(pid_t),
- (char *) &res[0]) < 0
- || umoven(tcp, tcp->u_arg[2], sizeof(pid_t),
- (char *) &res[1]) < 0
- || umoven(tcp, tcp->u_arg[2], sizeof(pid_t),
- (char *) &res[2]) < 0)
- return -1;
- tprintf("ruid %lu, euid %lu, suid %lu",
- (unsigned long) res[0],
- (unsigned long) res[1],
- (unsigned long) res[2]);
+ __kernel_uid_t uid;
+ if (syserror(tcp))
+ tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0],
+ tcp->u_arg[1], tcp->u_arg[2]);
+ else {
+ if (umove(tcp, tcp->u_arg[0], &uid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("ruid %lu, ", (unsigned long) uid);
+ if (umove(tcp, tcp->u_arg[0], &uid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("euid %lu, ", (unsigned long) uid);
+ if (umove(tcp, tcp->u_arg[0], &uid) < 0)
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ tprintf("suid %lu", (unsigned long) uid);
+ }
}
return 0;
}
@@ -497,18 +508,24 @@ sys_getresgid(tcp)
struct tcb *tcp;
{
if (exiting(tcp)) {
- uid_t res[3];
- if (umoven(tcp, tcp->u_arg[0], sizeof(pid_t),
- (char *) &res[0]) < 0
- || umoven(tcp, tcp->u_arg[2], sizeof(pid_t),
- (char *) &res[1]) < 0
- || umoven(tcp, tcp->u_arg[2], sizeof(pid_t),
- (char *) &res[2]) < 0)
- return -1;
- tprintf("rgid %lu, egid %lu, sgid %lu",
- (unsigned long) res[0],
- (unsigned long) res[1],
- (unsigned long) res[2]);
+ __kernel_gid_t gid;
+ if (syserror(tcp))
+ tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0],
+ tcp->u_arg[1], tcp->u_arg[2]);
+ else {
+ if (umove(tcp, tcp->u_arg[0], &gid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("rgid %lu, ", (unsigned long) gid);
+ if (umove(tcp, tcp->u_arg[0], &gid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("egid %lu, ", (unsigned long) gid);
+ if (umove(tcp, tcp->u_arg[0], &gid) < 0)
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ tprintf("sgid %lu", (unsigned long) gid);
+ }
}
return 0;
}
diff --git a/signal.c b/signal.c
index 39db0b080..23cb4c837 100644
--- a/signal.c
+++ b/signal.c
@@ -48,7 +48,9 @@
#endif /* SVR4 */
#ifdef LINUX
+#ifndef __GLIBC__
#include <linux/ptrace.h>
+#endif
#ifdef HAVE_ASM_SIGCONTEXT_H
#include <asm/sigcontext.h>
#ifdef SPARC
@@ -85,7 +87,7 @@ struct sigcontext_struct {
};
#else /* !I386 */
#ifdef M68K
-struct sigcontext_struct
+struct sigcontext
{
unsigned long sc_mask;
unsigned long sc_usp;
@@ -216,7 +218,7 @@ int sig;
return signalent[sig];
#ifdef SIGRTMIN
} else if (sig >= __SIGRTMIN && sig <= __SIGRTMAX) {
- sprintf(buf, "SIGRT_%d", sig - __SIGRTMIN);
+ sprintf(buf, "SIGRT_%ld", (long)(sig - __SIGRTMIN));
return buf;
#endif /* SIGRTMIN */
} else {
@@ -336,7 +338,7 @@ int sig;
char buf[1024];
char *s;
int i;
- int signalled, blocked, ignored, caught;
+ unsigned int signalled, blocked, ignored, caught;
/* This is incredibly costly but it's worth it. */
sprintf(sname, "/proc/%d/stat", tcp->pid);
@@ -357,7 +359,7 @@ int sig;
break;
}
}
- if (sscanf(s, "%d%d%d%d",
+ if (sscanf(s, "%u%u%u%u",
&signalled, &blocked, &ignored, &caught) != 4) {
fprintf(stderr, "/proc/pid/stat format error\n");
return 1;
@@ -561,6 +563,11 @@ struct old_sigaction {
unsigned long sa_flags;
void (*sa_restorer)(void);
};
+#define SA_HANDLER __sa_handler
+#endif /* LINUX */
+
+#ifndef SA_HANDLER
+#define SA_HANDLER sa_handler
#endif
int
@@ -589,7 +596,7 @@ struct tcb *tcp;
else if (umove(tcp, addr, &sa) < 0)
tprintf("{...}");
else {
- switch ((long) sa.__sa_handler) {
+ switch ((long) sa.SA_HANDLER) {
case (long) SIG_ERR:
tprintf("{SIG_ERR}");
break;
@@ -612,7 +619,7 @@ struct tcb *tcp;
kill(tcp->pid, SIGSTOP);
}
#endif /* !SVR4 */
- tprintf("{%#lx, ", (long) sa.__sa_handler);
+ tprintf("{%#lx, ", (long) sa.SA_HANDLER);
long_to_sigset(sa.sa_mask, &sigset);
printsigmask(&sigset, 0);
tprintf(", ");
@@ -723,7 +730,7 @@ struct tcb *tcp;
#else /* !POWERPC */
#ifdef M68K
long usp;
- struct sigcontext_struct sc;
+ struct sigcontext sc;
if (entering(tcp)) {
tcp->u_arg[0] = 0;
diff --git a/sock.c b/sock.c
index dc0319056..327a3de85 100644
--- a/sock.c
+++ b/sock.c
@@ -36,8 +36,12 @@
#endif
#ifdef ALPHA
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#elif defined(HAVE_IOCTLS_H)
#include <ioctls.h>
#endif
+#endif
int
sock_ioctl(tcp, code, arg)
diff --git a/stream.c b/stream.c
index f242b6387..0ddb5f12f 100644
--- a/stream.c
+++ b/stream.c
@@ -78,7 +78,7 @@ int getting;
if (getting)
tprintf("maxlen=%d, ", sbp->maxlen);
tprintf("len=%d, buf=", sbp->len);
- printstr(tcp, (int) sbp->buf, sbp->len);
+ printstr(tcp, (unsigned long) sbp->buf, sbp->len);
tprintf("}");
}
}
diff --git a/system.c b/system.c
index 16c1648c3..506be6145 100644
--- a/system.c
+++ b/system.c
@@ -45,8 +45,9 @@
#include <netinet/in.h>
#include <arpa/inet.h>
-#ifdef LINUX
+#ifdef __NR_personality
/* Workaround for kernel namespace pollution. */
+#define _LINUX_PTRACE_H
#define sys_personality kernel_sys_personality
#include <linux/personality.h>
#undef sys_personality
@@ -56,6 +57,10 @@
#include <linux/capability.h>
#endif
+#ifdef __NR_cacheflush
+#include <asm/cachectl.h>
+#endif
+
static struct xlat mount_flags[] = {
{ MS_RDONLY, "MS_RDONLY" },
{ MS_NOSUID, "MS_NOSUID" },
@@ -127,6 +132,52 @@ struct tcb *tcp;
return 0;
}
+#ifdef M68K
+static struct xlat cacheflush_scope[] = {
+#ifdef FLUSH_SCOPE_LINE
+ { FLUSH_SCOPE_LINE, "FLUSH_SCOPE_LINE" },
+#endif
+#ifdef FLUSH_SCOPE_PAGE
+ { FLUSH_SCOPE_PAGE, "FLUSH_SCOPE_PAGE" },
+#endif
+#ifdef FLUSH_SCOPE_ALL
+ { FLUSH_SCOPE_ALL, "FLUSH_SCOPE_ALL" },
+#endif
+ { 0, NULL },
+};
+
+static struct xlat cacheflush_flags[] = {
+#ifdef FLUSH_CACHE_BOTH
+ { FLUSH_CACHE_BOTH, "FLUSH_CACHE_BOTH" },
+#endif
+#ifdef FLUSH_CACHE_DATA
+ { FLUSH_CACHE_DATA, "FLUSH_CACHE_DATA" },
+#endif
+#ifdef FLUSH_CACHE_INSN
+ { FLUSH_CACHE_INSN, "FLUSH_CACHE_INSN" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_cacheflush(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /* addr */
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ /* scope */
+ printxval(cacheflush_scope, tcp->u_arg[1], "FLUSH_SCOPE_???");
+ tprintf(", ");
+ /* flags */
+ printflags(cacheflush_flags, tcp->u_arg[2]);
+ /* len */
+ tprintf(", %lu", tcp->u_arg[3]);
+ }
+ return 0;
+}
+#endif /* M68K */
+
#endif /* LINUX */
#ifdef SUNOS4
diff --git a/term.c b/term.c
index 5850e3377..e60f0ed3b 100644
--- a/term.c
+++ b/term.c
@@ -29,10 +29,12 @@
#include "defs.h"
-#ifdef __GLIBC__
+#ifdef HAVE_TERMIO_H
#include <termio.h>
-#endif /* __GLIBC__ */
+#endif /* HAVE_TERMIO_H */
+
#include <termios.h>
+
#ifdef HAVE_SYS_FILIO_H
#include <sys/filio.h>
#endif
@@ -331,6 +333,12 @@ long code, arg;
#ifdef TIOCSINTR
case TIOCSINTR:
#endif
+#ifdef TIOCSPTLCK
+ case TIOCSPTLCK:
+#endif
+#ifdef TIOCGPTN
+ case TIOCGPTN:
+#endif
tprintf(", ");
printnum(tcp, arg, "%d");
return 1;
diff --git a/util.c b/util.c
index 93b3c41e7..d1c80b8d6 100644
--- a/util.c
+++ b/util.c
@@ -44,9 +44,15 @@
# define PTRACE_PEEKUSR PTRACE_PEEKUSER
#endif
#ifdef LINUX
+#ifndef __GLIBC__
#include <linux/ptrace.h>
+#endif
#endif /* LINUX */
+#ifdef HAVE_SYS_PTRACE_H
+#include <sys/ptrace.h>
+#endif
+
#ifdef SUNOS4_KERNEL_ARCH_KLUDGE
#include <sys/utsname.h>
#endif /* SUNOS4_KERNEL_ARCH_KLUDGE */
@@ -356,7 +362,7 @@ int len;
return;
}
}
- outend = outstr + max_strlen;
+ outend = outstr + max_strlen * 2 - 10;
if (len < 0) {
n = max_strlen;
if (umovestr(tcp, addr, n, (char *) str) < 0) {