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-1.0.0 runtime failure on ARM - simple stap script translation fails


Hello,

This bug was fixed yesterday in the git repository. You can build
systemtap from git repo, or use simple patch (attached).

Regards,
Eugeniy Meshcheryakov

14 ÐÑÑÐÐÑ 2009 Ð 11:25 +0530 Indraneel Mukherjee ÐÐÐÐÑÐÐ(-ÐÐ):
> Hi,
> I'm getting the following runtime error on ARM when i try to execute a
> simple stap script. The error log is below.
> 
> [root@fedora-arm root]# stap -v test.stp
> Pass 1: parsed user script and 56 library script(s) in
> 6040usr/120sys/6210real ms.
> Pass 2: analyzed script: 1 probe(s), 11 function(s), 2 embed(s), 1
> global(s) in 5050usr/4610sys/13504real ms.
> Pass 3: translated to C into
> "/tmp/stapkharFx/stap_b865062b08e6d305fd52a1f8999b8bbf_4768.c" in
> 12590usr/1230sys/22308real ms.
> In file included from /root/stap/share/systemtap/runtime/runtime.h:124,
>                  from
> /tmp/stapkharFx/stap_b865062b08e6d305fd52a1f8999b8bbf_4768.c:51:
> /root/stap/share/systemtap/runtime/regs.c: In function '_stp_print_regs':
> /root/stap/share/systemtap/runtime/regs.c:270: error: implicit
> declaration of function 'condition_codes'
> make[1]: *** [/tmp/stapkharFx/stap_b865062b08e6d305fd52a1f8999b8bbf_4768.o]
> Error 1
> make: *** [_module_/tmp/stapkharFx] Error 2
> Pass 4: compiled C into
> "stap_b865062b08e6d305fd52a1f8999b8bbf_4768.ko" in
> 53690usr/9670sys/66343real ms.
> Pass 4: compilation failed.  Try again with another '--vp 0001' option.
> 
> 
> The Stap Script is a simple one:
> #! /usr/bin/env stap
> proble vfs.read {
> printf("Systemtap ARM test.\n");
> exit();
> }
> 
> SYSTEMTAP VERSION INFO:
> I'm using the Fedora ARM distro
> - systemtap-1.0.0
> - gcc (GCC) 4.4.2 20091019 (Red Hat 4.4.2-5)
> - elfutils-0.143-1.fc12.armv5tel
> 
> The build and run m/c is ARM(no cross instrumentation). Please let me
> know if more verbose logs are required.
> Googled without any meaningful pointers. Any pointers will be very helpful!!
> 
> TIA,
> Indro
commit 958c58e8231563e9349e4d8ea56c04c25e1501c0
Author: Eugeniy Meshcheryakov <eugen@debian.org>
Date:   Sat Dec 12 00:56:36 2009 +0100

    Do not use condition_codes() on arm
    
    It does not exist in recent kernels.
    
    Use regs->ARM_cpsr instead, this should work with all versions
    of linux found in git repo (versions >=2.6.12-rc2). Difference
    between condition_codes() and regs->ARM_cpsr should not matter
    for systemtap.

diff --git a/runtime/regs.c b/runtime/regs.c
index e963aff..61f2f31 100644
--- a/runtime/regs.c
+++ b/runtime/regs.c
@@ -267,7 +267,7 @@ static const char *processor_modes[]=
 
 static void _stp_print_regs(struct pt_regs * regs)
 {
-	unsigned long flags = condition_codes(regs);
+	unsigned long flags = regs->ARM_cpsr;
 
 #ifdef CONFIG_SMP
 	_stp_printf(" CPU: %d", smp_processor_id());

Attachment: signature.asc
Description: Digital signature


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