#endif
+#if defined SUNOS4 || (defined LINUX && defined TCB_WAITEXECVE)
int
internal_exec(struct tcb *tcp)
{
-#ifdef SUNOS4
+# if defined SUNOS4
if (exiting(tcp) && !syserror(tcp) && followfork)
fixvfork(tcp);
-#endif /* SUNOS4 */
-#if defined LINUX && defined TCB_WAITEXECVE
+# endif
+# if defined LINUX && defined TCB_WAITEXECVE
if (exiting(tcp) && syserror(tcp))
tcp->flags &= ~TCB_WAITEXECVE;
else {
if (!(ptrace_setoptions & PTRACE_O_TRACEEXEC))
tcp->flags |= TCB_WAITEXECVE; /* no */
}
-#endif /* LINUX && TCB_WAITEXECVE */
+# endif
return 0;
}
+#endif
#ifdef LINUX
#ifndef __WNOTHREAD
int pid = tcp->u_arg[0];
tprintf("%d, ", pid);
#else
- /*
- * Sign-extend a 32-bit value when that's what it is.
- */
long pid = tcp->u_arg[0];
+# if SUPPORTED_PERSONALITIES > 1
+ /* Sign-extend a 32-bit value when that's what it is. */
if (personality_wordsize[current_personality] < sizeof pid)
pid = (long) (int) pid;
+# endif
tprintf("%ld, ", pid);
#endif
} else {
sys_kill(struct tcb *tcp)
{
if (entering(tcp)) {
- /*
- * Sign-extend a 32-bit value when that's what it is.
- */
long pid = tcp->u_arg[0];
+#if SUPPORTED_PERSONALITIES > 1
+ /* Sign-extend a 32-bit value when that's what it is. */
if (personality_wordsize[current_personality] < sizeof pid)
pid = (long) (int) pid;
+#endif
tprintf("%ld, %s", pid, signame(tcp->u_arg[1]));
}
return 0;
* correctly support following forks in the presence of tracing
* qualifiers.
*/
- int (*func)();
+ int (*func)();
if (tcp->scno < 0 || tcp->scno >= nsyscalls)
return 0;
)
return internal_fork(tcp);
+#if defined SUNOS4 || (defined LINUX && defined TCB_WAITEXECVE)
if ( sys_execve == func
-#if defined(SPARC) || defined(SPARC64) || defined(SUNOS4)
+# if defined(SPARC) || defined(SPARC64) || defined(SUNOS4)
|| sys_execv == func
-#endif
-#if UNIXWARE > 2
+# endif
+# if UNIXWARE > 2
|| sys_rexecve == func
-#endif
+# endif
)
return internal_exec(tcp);
+#endif
return 0;
}
is_negated_errno(unsigned long int val)
{
unsigned long int max = -(long int) nerrnos;
+# if SUPPORTED_PERSONALITIES > 1
if (personality_wordsize[current_personality] < sizeof(val)) {
val = (unsigned int) val;
max = (unsigned int) max;
}
+# endif
return val > max;
}
#endif
break;
#endif /* LINUX */
default:
- tprintf("= -1 ");
if (u_error < 0)
- tprintf("E??? (errno %ld)", u_error);
+ tprintf("= -1 E??? (errno %ld)", u_error);
else if (u_error < nerrnos)
- tprintf("%s (%s)", errnoent[u_error],
+ tprintf("= -1 %s (%s)", errnoent[u_error],
strerror(u_error));
else
- tprintf("ERRNO_%ld (%s)", u_error,
+ tprintf("= -1 ERRNO_%ld (%s)", u_error,
strerror(u_error));
break;
}