diff options
author | jhb <jhb@FreeBSD.org> | 2016-02-24 22:01:45 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2016-02-24 22:01:45 +0000 |
commit | 266e77bc147fa578e8da09c0cc7e8b49f2acc829 (patch) | |
tree | 79d519b91bbc42b336816695b7072069068577f4 /usr.bin | |
parent | 972671f9200801a0e19573ee6693b6fc5c5833ce (diff) | |
download | FreeBSD-src-266e77bc147fa578e8da09c0cc7e8b49f2acc829.zip FreeBSD-src-266e77bc147fa578e8da09c0cc7e8b49f2acc829.tar.gz |
MFC 295636,295637:
Fix issues with tracing Linux/i386 binaries.
295636:
Sign extend the error value for failing Linux/i386 system calls. This
restores the mapping of Linux errors to native FreeBSD errno values after
the refactoring in r288424.
295637:
Correct the ABI name for Linux/i386 binaries under FreeBSD/i386.
This allows truss to work for these binaries again after r288424.
Approved by: re (marius)
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/truss/amd64-linux32.c | 2 | ||||
-rw-r--r-- | usr.bin/truss/i386-linux.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/usr.bin/truss/amd64-linux32.c b/usr.bin/truss/amd64-linux32.c index 4f64af3..2825693 100644 --- a/usr.bin/truss/amd64-linux32.c +++ b/usr.bin/truss/amd64-linux32.c @@ -116,6 +116,8 @@ amd64_linux32_fetch_retval(struct trussinfo *trussinfo, long *retval, retval[0] = regs.r_rax & 0xffffffff; retval[1] = regs.r_rdx & 0xffffffff; *errorp = !!(regs.r_rflags & PSL_C); + if (*errorp) + retval[0] = (int)retval[0]; if (*errorp) { for (i = 0; i < nitems(bsd_to_linux_errno); i++) { diff --git a/usr.bin/truss/i386-linux.c b/usr.bin/truss/i386-linux.c index fa57af2..b14b210 100644 --- a/usr.bin/truss/i386-linux.c +++ b/usr.bin/truss/i386-linux.c @@ -130,7 +130,7 @@ i386_linux_fetch_retval(struct trussinfo *trussinfo, long *retval, int *errorp) } static struct procabi i386_linux = { - "Linux ELF32", + "Linux ELF", linux_syscallnames, nitems(linux_syscallnames), i386_linux_fetch_args, |