Fix AARCH64 params
- Fix aarch64 long parameters (via $r8) support. - Make system_call_params test compare more exactly.
This commit is contained in:
parent
b6a19f9856
commit
22553ad6c5
37
ltrace-0.7.91-aarch64-params.patch
Normal file
37
ltrace-0.7.91-aarch64-params.patch
Normal file
@ -0,0 +1,37 @@
|
||||
diff -rup a/sysdeps/linux-gnu/aarch64/fetch.c b/sysdeps/linux-gnu/aarch64/fetch.c
|
||||
--- a/sysdeps/linux-gnu/aarch64/fetch.c 2018-07-05 16:06:10.066626252 -0400
|
||||
+++ b/sysdeps/linux-gnu/aarch64/fetch.c 2018-07-05 16:17:17.659748481 -0400
|
||||
@@ -308,12 +308,9 @@ arch_fetch_arg_init(enum tof type, struc
|
||||
struct fetch_script how = pass_arg(context, proc, ret_info);
|
||||
if (how.c == CVT_ERR)
|
||||
goto fail;
|
||||
- if (how.c == CVT_NOP && how.f == FETCH_STACK) {
|
||||
+ if (how.c == CVT_BYREF && how.f == FETCH_GPR) {
|
||||
/* XXX double cast. */
|
||||
context->x8 = (arch_addr_t) (uintptr_t) context->gregs.regs[8];
|
||||
- /* See the comment above about the assert. */
|
||||
- assert(! "Unexpected: first argument passed on stack.");
|
||||
- abort();
|
||||
}
|
||||
|
||||
return context;
|
||||
diff -rup a/testsuite/ltrace.main/system_call_params.exp b/testsuite/ltrace.main/system_call_params.exp
|
||||
--- a/testsuite/ltrace.main/system_call_params.exp 2018-07-05 16:06:10.516624926 -0400
|
||||
+++ b/testsuite/ltrace.main/system_call_params.exp 2018-07-05 16:58:01.549830643 -0400
|
||||
@@ -61,13 +61,13 @@ set conf [ltraceNamedSource "$dir/syscal
|
||||
# doesn't list readdir, that would be taken from somelib.conf with a
|
||||
# wrong prototype.
|
||||
|
||||
-ltraceMatch1 [ltraceRun -L -S -F $conf -- $bin] {^open@SYS\("/some/path"} == 0
|
||||
+ltraceMatch1 [ltraceRun -L -S -F $conf -- $bin] {^open@SYS\("/some/path", 0\)} == 0
|
||||
|
||||
# On the other hand, if -F somedir/ is given, we want to accept
|
||||
# syscalls.conf found there.
|
||||
|
||||
ltraceMatch [ltraceRun -L -S -F $dir -- $bin] {
|
||||
- {{^open@SYS\("/some/path"} == 1}
|
||||
+ {{^open@SYS\("/some/path", 0\)} == 1}
|
||||
{{^write@SYS\(1, "something", 10\)} == 1}
|
||||
{{^mount@SYS\("source", "target", "filesystemtype"} == 1}
|
||||
}
|
||||
Only in b/testsuite/ltrace.main: system_call_params.exp~
|
||||
10
ltrace.spec
10
ltrace.spec
@ -1,7 +1,7 @@
|
||||
Summary: Tracks runtime library calls from dynamically linked executables
|
||||
Name: ltrace
|
||||
Version: 0.7.91
|
||||
Release: 26%{?dist}
|
||||
Release: 27%{?dist}
|
||||
URL: http://ltrace.alioth.debian.org/
|
||||
License: GPLv2+
|
||||
Group: Development/Debuggers
|
||||
@ -103,6 +103,9 @@ Patch26: ltrace-0.7.91-tautology.patch
|
||||
# ARM code has unreachable code after switch statement, move initialization
|
||||
Patch27: ltrace-rh1423913.patch
|
||||
|
||||
# AARCH64 large parameters and syscall testsuite fixes.
|
||||
Patch28: ltrace-0.7.91-aarch64-params.patch
|
||||
|
||||
%description
|
||||
Ltrace is a debugging program which runs a specified command until the
|
||||
command exits. While the command is executing, ltrace intercepts and
|
||||
@ -142,6 +145,7 @@ execution of processes.
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
|
||||
%build
|
||||
autoreconf -i
|
||||
@ -167,6 +171,10 @@ echo ====================TESTING END=====================
|
||||
%{_datadir}/ltrace
|
||||
|
||||
%changelog
|
||||
* Thu Jul 05 2018 DJ Delorie <dj@redhat.com> - 0.7.91-27
|
||||
- Fix aarch64 long parameters (via $r8) support.
|
||||
- Make system_call_params test compare more exactly.
|
||||
|
||||
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.7.91-26
|
||||
- Escape macros in %%changelog
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user