This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]