This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: SystemTap for Android - patchset
On 07/07/2016 03:52 PM, Alexander Lochmann wrote:
> On 07.07.2016 19:39, David Smith wrote:
>> OK, I'll believe you. However, your fix above still isn't correct. The
>> whole point of autoconf-asm-syscall.c is to test if asm/syscall.h exists
>> and is usable. If so, STAPCONF_ASM_SYSCALL_H will get defined. If
>> autoconf-asm-syscall.c doesn't compile correctly, then
>> STAPCONF_ASM_SYSCALL_H won't be defined.
>>
>> What needs to happen next here is for you to back out this change,
>> recompile systemtap, then try to compile a few systemtap scripts. We'll
>> need to see the errors to know what to fix. I'd guess we'll need to test
>> STAPCONF_ASM_SYSCALL_H in some more places.
> Ok. Here is the error message I get:
> /tmp/stapE7HrAi/alexv9_src.c: In function
> 'function___global__stp_syscall_nr__overload_0':
> /tmp/stapE7HrAi/alexv9_src.c:7975:2: error: implicit declaration of
> function '_stp_syscall_get_nr'
>
> I tested three scripts so far. All of them do not compile due to the
> above error.
> Do you need one of the scripts?
Nope.
One of the reasons we include <asm/syscall.h> is to get the kernel's
syscall_get_nr() macros. If the kernel doesn't have a <asm/syscall.h>,
we define our own versions of syscall_get_nr() in runtime/syscall.h. The
arm platform already has our custom version of that macro in
runtime/syscall.h.
I'd guess we aren't including systemtap's runtime/syscall.h in the
proper place. Here's a patch that might work:
====
diff --git a/tapset/linux/aux_syscalls.stp b/tapset/linux/aux_syscalls.stp
index 110e6e9..2cc3cea 100644
--- a/tapset/linux/aux_syscalls.stp
+++ b/tapset/linux/aux_syscalls.stp
@@ -43,6 +43,8 @@
// Get _stp_val_array and _stp_lookup_* definitions.
#include "linux/syscalls-common.h"
+#include "syscall.h"
+
static void
_stp_lookup_str2(const _stp_val_array * const array, long val, char *ptr,
int len, int base)
====
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)