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 23:14, David Smith wrote:
> 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)
> ====
> 
Yes. Works. :) At least for the four scripts I tested.

- Alex

-- 
Technische Universität Dortmund
Alexander Lochmann                PGP key: 0xBC3EF6FD
Otto-Hahn-Str. 16                 phone:  +49.231.7556141
D-44227 Dortmund                  fax:    +49.231.7556116
http://ess.cs.tu-dortmund.de/Staff/al

Attachment: signature.asc
Description: OpenPGP digital signature


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