Nightly test result of systemtap in ppc64
Hien Nguyen
hien@us.ibm.com
Mon May 1 21:53:00 GMT 2006
Hien Nguyen wrote:
> Frank Ch. Eigler wrote:
>
>> Hien Nguyen <hien@us.ibm.com> writes:
>>
>>
>>
>>> FAIL: /root/stap_testing_200604241559/src/testsuite/buildok/syscall.stp
>>> This is the output of gcc for the test about.
>>> {standard input}: Assembler messages:
>>> {standard input}:690082: Error: operand out of range
>>> (0x0000000000008000 is not between 0xffffffffffff8000 and
>>> 0x0000000000007fff)
>>> [...]
>>>
>>
>> Could you run this test by hand, with "stap -k ...", then editing
>> TMPDIR/Makefile to add "CFLAGS+=-save-temps", rerunning the kbuild
>> make command, and finally locating the instructions the assembler is
>> complaining about?
>>
>> If they're branches, this could be related to my recent addition of
>> "-freorder-blocks" to the probe object CFLAGS.
>>
>> - FChE
>>
>>
> The offended code look like these
> ld 28,.LC29584-.LCTOC1(30)
> [...]
> ld 0,.LC29595-.LCTOC1(30)
> etc...
>
> Does not look like branches. I tried it without -freorder-blocks with
> same result. I am going to chase down this problem.
>
If I commented out the following out of the ppc64/syscalls.stp the
buildok/syscalls.stp built just fine.
probe syscall.compat_sys_setsockopt =
kernel.function("compat_sys_setsockopt") {
name = "compat_sys_setsockopt"
fd = $fd
level = $level
level_str = _sockopt_level_str($level)
optname = $optname
optname_str = _sockopt_optname_str($optname)
optval_uaddr = $optval
optlen = $optlen
argstr = sprintf("%d, %s, %s, [0x%p], %d", $fd, level_str,
optname_str, optval_uaddr, $optlen)
}
probe syscall.compat_sys_setsockopt.return =
kernel.function("compat_sys_setsockopt").return {
name = "compat_sys_setsockopt"
retstr = returnstr(1)
}
However, I cound not find anything wrong with it. So I copied this
snippet to another file and renamed the allias to mysyscall and modified
the syscals.stp
#! stap -up4
probe mysyscall.*, mysyscall.*.return {
if (retstr != "")
printf("%s\n", retstr)
else
printf("%s: %s (%s) = ", execname(), name, argstr)
}
and it built just fine.
I now have two files under tapset/ppc64 syscall.stp and mytest.stp
(mytest.stp only contains the probe alias for compat_sys_setsockopt) .
Modified the syscalls.stp test again to include both syscall and
mysyscall aliases, stap build failed again with the same error reported
above.
More information about the Systemtap
mailing list