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]

gcc stop compiling a large stap generated c file


Hi,

I tried: stap -e 'probe addevent.* {}' -bM -v
on ppc64/RHEL4u4/gcc-3.4.6, and got a lot of errors of "operand out of range".


the generated c file is really big:

root:/tmp/stapRl4mJy> ll -h
total 7.5M
-rw-r--r--  1 root root  128 Oct  9 17:53 Makefile
-rw-r--r--  1 root root 6.3M Oct  9 17:53 stap_11644.c
-rw-r--r--  1 root root 714K Oct  9 17:53 stap-symbols.h
-rw-r--r--  1 root root 527K Oct  9 17:53 symbols.sorted

I searched gcc bugzilla, and found someone reported the same kind of error on gcc 4.1:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28904


I think it's common for SystemTap to generate a large c file if the number of probes and functions turned on is big. I tried on i386 and it doesn't have this error. Does anyone know if there is any alternative to avoid such error for ppc64?

thanks.

- Guanglei

Running grep " [tT] " /proc/kallsyms | sort -k 1,8 -s -o /tmp/stapRl4mJy/symbols.sorted
Pass 3: translated to C into "/tmp/stapRl4mJy/stap_11644.c" in 1180usr/200sys/1614real ms.
Running make -C "/lib/modules/2.6.17.9/build" M="/tmp/stapRl4mJy" modules V=1
make: Entering directory `/usr/src/linux-2.6.17.9'
mkdir -p /tmp/stapRl4mJy/.tmp_versions
rm -f /tmp/stapRl4mJy/.tmp_versions/*
make -f scripts/Makefile.build obj=/tmp/stapRl4mJy
  gcc -m64 -Wp,-MD,/tmp/stapRl4mJy/.stap_11644.o.d  -nostdinc -isystem /usr/lib/gcc/ppc64-redhat-linux/3.4.6/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h  -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -fomit-frame-pointer -g -msoft-float -pipe -mminimal-toc -mtraceback=none  -mcall-aixdesc -mtune=power4 -mno-altivec -funit-at-a-time -mstring -Wa,-maltivec -Wdeclaration-after-statement  -freorder-blocks -Wno-unused -Werror -I"/usr/local/share/systemtap/runtime"   -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stap_11644)"  -D"KBUILD_MODNAME=KBUILD_STR(stap_11644)" -c -o /tmp/stapRl4mJy/.tmp_stap_11644.o /tmp/stapRl4mJy/stap_11644.c
{standard input}: Assembler messages:
{standard input}:642879: Error: operand out of range (0x0000000000008000 is not between 0xffffffffffff8000 and 0x0000000000007fff)
{standard input}:642895: Error: operand out of range (0x0000000000008008 is not between 0xffffffffffff8000 and 0x0000000000007fff)
{standard input}:643196: Error: operand out of range (0x0000000000008018 is not between 0xffffffffffff8000 and 0x0000000000007fff)
{standard input}:643197: Error: operand out of range (0x0000000000008010 is not between 0xffffffffffff8000 and 0x0000000000007fff)
{standard input}:643284: Error: operand out of range (0x0000000000008020 is not between 0xffffffffffff8000 and 0x0000000000007fff)
{standard input}:643300: Error: operand out of range (0x0000000000008028 is not between 0xffffffffffff8000 and 0x0000000000007fff)
...

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