diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | TODO | 8 | ||||
-rw-r--r-- | acconfig.h | 6 | ||||
-rw-r--r-- | bjm.c | 12 | ||||
-rw-r--r-- | config.h.in | 18 | ||||
-rwxr-xr-x | configure | 219 | ||||
-rw-r--r-- | configure.in | 5 | ||||
-rw-r--r-- | file.c | 25 | ||||
-rw-r--r-- | io.c | 29 | ||||
-rw-r--r-- | linux/dummy.h | 1 | ||||
-rw-r--r-- | linux/syscall.h | 4 | ||||
-rw-r--r-- | linux/syscallent.h | 66 | ||||
-rw-r--r-- | mem.c | 25 | ||||
-rw-r--r-- | net.c | 17 | ||||
-rw-r--r-- | process.c | 65 | ||||
-rw-r--r-- | signal.c | 21 | ||||
-rw-r--r-- | sock.c | 4 | ||||
-rw-r--r-- | stream.c | 2 | ||||
-rw-r--r-- | system.c | 53 | ||||
-rw-r--r-- | term.c | 12 | ||||
-rw-r--r-- | util.c | 8 |
21 files changed, 404 insertions, 214 deletions
@@ -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 @@ -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 @@ -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 @@ -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 @@ -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; @@ -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 */ @@ -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[] = { @@ -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 */ @@ -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; } @@ -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; @@ -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) @@ -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("}"); } } @@ -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 @@ -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; @@ -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) { |