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