Hi, I found Vince's patch from 2009. I have applied it. That should get you further. But note that you won't get symbol names (--resolv) when sampling.
On Mon, Mar 1, 2010 at 3:59 AM, Jie Jiang <robbie.ji...@gmail.com> wrote: > Hi, > > I got following errors when testing pfmon2-3.6 on SPARC T2/Linux-2.6.27. > > My platform is linux-2.6.27 patched by perfmon-new-base-081013. > > #cat /proc/cpuinfo > cpu : UltraSparc T2 (Niagara2) > fpu : UltraSparc T2 integrated FPU > pmu : niagara2 > prom : OBP 4.29.1 2008/10/29 14:16 > type : sun4v > ncpus probed : 64 > ncpus active : 64 > D$ parity tl1 : 0 > I$ parity tl1 : 0 > Cpu0ClkTck : 00000000457656f0 > Cpu1ClkTck : 00000000457656f0 > Cpu2ClkTck : 00000000457656f0 > Cpu3ClkTck : 00000000457656f0 > Cpu4ClkTck : 00000000457656f0 > Cpu5ClkTck : 00000000457656f0 > Cpu6ClkTck : 00000000457656f0 > Cpu7ClkTck : 00000000457656f0 > Cpu8ClkTck : 00000000457656f0 > Cpu9ClkTck : 00000000457656f0 > Cpu10ClkTck : 00000000457656f0 > Cpu11ClkTck : 00000000457656f0 > Cpu12ClkTck : 00000000457656f0 > Cpu13ClkTck : 00000000457656f0 > Cpu14ClkTck : 00000000457656f0 > Cpu15ClkTck : 00000000457656f0 > Cpu16ClkTck : 00000000457656f0 > Cpu17ClkTck : 00000000457656f0 > Cpu18ClkTck : 00000000457656f0 > Cpu19ClkTck : 00000000457656f0 > Cpu20ClkTck : 00000000457656f0 > Cpu21ClkTck : 00000000457656f0 > Cpu22ClkTck : 00000000457656f0 > Cpu23ClkTck : 00000000457656f0 > Cpu24ClkTck : 00000000457656f0 > Cpu25ClkTck : 00000000457656f0 > Cpu26ClkTck : 00000000457656f0 > Cpu27ClkTck : 00000000457656f0 > Cpu28ClkTck : 00000000457656f0 > Cpu29ClkTck : 00000000457656f0 > Cpu30ClkTck : 00000000457656f0 > Cpu31ClkTck : 00000000457656f0 > Cpu64ClkTck : 00000000457656f0 > Cpu65ClkTck : 00000000457656f0 > Cpu66ClkTck : 00000000457656f0 > Cpu67ClkTck : 00000000457656f0 > Cpu68ClkTck : 00000000457656f0 > Cpu69ClkTck : 00000000457656f0 > Cpu70ClkTck : 00000000457656f0 > Cpu71ClkTck : 00000000457656f0 > Cpu72ClkTck : 00000000457656f0 > Cpu73ClkTck : 00000000457656f0 > Cpu74ClkTck : 00000000457656f0 > Cpu75ClkTck : 00000000457656f0 > Cpu76ClkTck : 00000000457656f0 > Cpu77ClkTck : 00000000457656f0 > Cpu78ClkTck : 00000000457656f0 > Cpu79ClkTck : 00000000457656f0 > Cpu80ClkTck : 00000000457656f0 > Cpu81ClkTck : 00000000457656f0 > Cpu82ClkTck : 00000000457656f0 > Cpu83ClkTck : 00000000457656f0 > Cpu84ClkTck : 00000000457656f0 > Cpu85ClkTck : 00000000457656f0 > Cpu86ClkTck : 00000000457656f0 > Cpu87ClkTck : 00000000457656f0 > Cpu88ClkTck : 00000000457656f0 > Cpu89ClkTck : 00000000457656f0 > Cpu90ClkTck : 00000000457656f0 > Cpu91ClkTck : 00000000457656f0 > Cpu92ClkTck : 00000000457656f0 > Cpu93ClkTck : 00000000457656f0 > Cpu94ClkTck : 00000000457656f0 > Cpu95ClkTck : 00000000457656f0 > MMU Type : Hypervisor (sun4v) > State: > CPU0: online > CPU1: online > CPU2: online > CPU3: online > CPU4: online > CPU5: online > CPU6: online > CPU7: online > CPU8: online > CPU9: online > CPU10: online > CPU11: online > CPU12: online > CPU13: online > CPU14: online > CPU15: online > CPU16: online > CPU17: online > CPU18: online > CPU19: online > CPU20: online > CPU21: online > CPU22: online > CPU23: online > CPU24: online > CPU25: online > CPU26: online > CPU27: online > CPU28: online > CPU29: online > CPU30: online > CPU31: online > CPU64: online > CPU65: online > CPU66: online > CPU67: online > CPU68: online > CPU69: online > CPU70: online > CPU71: online > CPU72: online > CPU73: online > CPU74: online > CPU75: online > CPU76: online > CPU77: online > CPU78: online > CPU79: online > CPU80: online > CPU81: online > CPU82: online > CPU83: online > CPU84: online > CPU85: online > CPU86: online > CPU87: online > CPU88: online > CPU89: online > CPU90: online > CPU91: online > CPU92: online > CPU93: online > CPU94: online > CPU95: online > > #uname -a > Linux debian 2.6.27.pmu #4 SMP Mon Mar 1 10:56:15 CST 2010 sparc64 GNU/Linux > > #pwd > #/home/pfmon-3.6 > > #make > compiling pfmon for sparc architecture > compiling pfmon as a shared binary > make[1]: Entering directory > `/home/jiangjie/work/SPARC_PFMON/perfmon2_3.7/pfmon-3.6/pfmon' > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_smpl.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_util.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_system.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_task.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_symbols.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_results.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_hash.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_smpl_dfl.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_os.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_sparc.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG > -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g -c pfmon_util_sparc.c > make[2]: Entering directory > `/home/jiangjie/work/SPARC_PFMON/perfmon2_3.7/pfmon-3.6/pfmon/smpl_mod' > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG -D_GNU_SOURCE -I. -I.. > -c inst_hist_smpl.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG -D_GNU_SOURCE -I. -I.. > -c compact_smpl.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG -D_GNU_SOURCE -I. -I.. > -c raw_smpl.c > gcc -ggdb -g -Wall -Werror -D_REENTRANT > -I/usr/local/pfmon/libpfm/include -DPFMON_DEBUG -D_GNU_SOURCE -I. -I.. > -c detailed_smpl.c > rm -f libsmplfmt.a > ar rv libsmplfmt.a inst_hist_smpl.o compact_smpl.o raw_smpl.o detailed_smpl.o > ar: creating libsmplfmt.a > a - inst_hist_smpl.o > a - compact_smpl.o > a - raw_smpl.o > a - detailed_smpl.o > make[2]: Leaving directory > `/home/jiangjie/work/SPARC_PFMON/perfmon2_3.7/pfmon-3.6/pfmon/smpl_mod' > gcc -o pfmon pfmon.o pfmon_smpl.o pfmon_util.o pfmon_system.o > pfmon_task.o pfmon_symbols.o pfmon_results.o pfmon_hash.o > pfmon_smpl_dfl.o pfmon_os.o pfmon_sparc.o pfmon_util_sparc.o -ggdb -g > -Wall -Werror -D_REENTRANT -I/usr/local/pfmon/libpfm/include > -DPFMON_DEBUG -DDATADIR=\"/usr/local/pfmon/pfmon/share/pfmon\" -I. > -I/usr/include/libelf -D_GNU_SOURCE -DCONFIG_PFMON_SPARC -DPFMON_DEBUG > -g smpl_mod/libsmplfmt.a -L/usr/lib/nptl -lpthread -lm -lrt > -Wl,-Bstatic -lelf -Wl,-Bdynamic -L/usr/local/pfmon/libpfm/lib -lpfm > pfmon_task.o: In function `pfmon_setup_dlopen': > /home/jiangjie/work/SPARC_PFMON/perfmon2_3.7/pfmon-3.6/pfmon/pfmon_task.c:1432: > undefined reference to `pfmon_get_dlopen_hook' > collect2: ld returned 1 exit status > make[1]: *** [pfmon] Error 1 > make[1]: Leaving directory > `/home/jiangjie/work/SPARC_PFMON/perfmon2_3.7/pfmon-3.6/pfmon' > make: *** [all] Error 2 > > > -------- > > > I grep the source code in pfmon directory and find that the symbol > "pfmon_get_dlopen_hook" is defined in pfmon_util_cell.c, > pfmon_util_ia64.c, pfmon_util_mips64,c and pfmon_util_x86.c, but not > in pfmon_util_sparc.c. So on SPARC platform, this symbol seems to be > undefined. > > Also, in pfmon_util_sparc.c, "#include <link.h>" should be added to > include the declaration of struct r_debug. > > The above two problems also exist in pfmon-3.9 source code. > > > On the perfmon-devel mailing list, there was the same bug report on > March 2nd, 2009. > And Stephane provided a patch to solve the first problem. > But I can't find the patch now. > So Stephane, will you send the patch to me again? > > Regards, > Jie > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel