Giter Site home page Giter Site logo

intel / numatop Goto Github PK

View Code? Open in Web Editor NEW
192.0 192.0 48.0 506 KB

NumaTOP is an observation tool for runtime memory locality characterization and analysis of processes and threads running on a NUMA system.

License: BSD 3-Clause "New" or "Revised" License

C 96.92% Makefile 0.42% Roff 2.33% Shell 0.05% M4 0.28%

numatop's People

Contributors

ahkok avatar ak-intel avatar bryteise avatar colinianking avatar dridi avatar dtzwill avatar keszybz avatar kjain101 avatar rdower avatar sandip4n avatar tzhang449 avatar yaoj avatar zhengjunxing avatar zhengjunxing0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

numatop's Issues

RMA and LMA reported 0.0 while trying mgen

Hi,
When I try numatop with mgen, the RMA, LMA are both 0.0 all the time.

Here is the info:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 62
model name : Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
stepping : 4
cpu MHz : 2700.081
cache size : 30720 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 12
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
bogomips : 5400.16
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

numactrl -H

available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11
node 0 size: 32734 MB
node 0 free: 30338 MB
node 1 cpus: 12 13 14 15 16 17 18 19 20 21 22 23
node 1 size: 32768 MB
node 1 free: 31147 MB
node distances:
node 0 1
0: 10 21
1: 21 10

why did I get cpu is not supported on E5-2699 v3 (Haswell)?

I thought numatop should work on Haswell chip. However, it failed to launch. More info below.

$ sudo yum info numatop
Loaded plugins: versionlock
Installed Packages
Name        : numatop
Arch        : x86_64
Version     : 1.0.1
Release     : 5.fc20
$ numatop
CPU is not supported!
$ cpuid
CPU 0:
   vendor_id = "GenuineIntel"
   version information (1/eax):
      processor type  = primary processor (0)
      family          = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
      model           = 0xf (15)
      stepping id     = 0x2 (2)
      extended family = 0x0 (0)
      extended model  = 0x3 (3)
      (simple synth)  = Intel Core i7-5000 Extreme Edition (Haswell R2) / Xeon E5-x600 v3 (Haswell-EP C1/M1/R2), 22nm
   miscellaneous (1/ebx):
      process local APIC physical ID = 0x0 (0)
      cpu count                      = 0x40 (64)
      CLFLUSH line size              = 0x8 (8)
      brand index                    = 0x0 (0)
   brand id = 0x00 (0): unknown

Aggregate values?

I am wondering if it is possible to not only see the value of the last iteration, but have numatop aggregate the values of multiple iteration?

Do you have plans of adding such a feature? Any suggestion on how to implement it in numatop?

Numatop seems to very usefull to get an idea on how well applications work on NUMA systems, but from time to time I would like to be able to get results aggregated over al longer period.

Update sources to 1.0.2

Hi,

It's been quite a while since 1.0.2 was released, but nothing has changed in this repository. Moreover, patches from #4 and #5 are not in the tarball [1,2]. There is a .git repo in the tarball with a master branch pointing to an old 972a9d0 revision with some changes [3].

What is the state of numatop? Have you reverted to an older code base for 1.0.2?

Dridi

[1] https://01.org/sites/default/files/numatop_linux_1.0.2.tar.gz
[2] sha1: 0bd656f100dcb5485043555b6cfcaf5ce423054e
[3]

diff --git i/common/include/types.h w/common/include/types.h
index cbc04fa..4019c5d 100644
--- i/common/include/types.h
+++ w/common/include/types.h
@@ -49,10 +49,11 @@ typedef enum {
    CPU_SNB_EP,
    CPU_NHM_EX,
    CPU_NHM_EP,
-   CPU_WSM_EP
+   CPU_WSM_EP,
+   CPU_IVB_EX
 } cpu_type_t;

-#define    CPU_TYPE_NUM    6
+#define    CPU_TYPE_NUM    7

 typedef enum {
    SORT_KEY_INVALID = -1,
diff --git i/common/os/plat.c w/common/os/plat.c
index 5ad1270..a48731f 100644
--- i/common/os/plat.c
+++ w/common/os/plat.c
@@ -49,7 +49,8 @@ s_plat_profiling_config[CPU_TYPE_NUM] = {
    snbep_profiling_config,
    nhmex_profiling_config,
    nhmep_profiling_config,
-   wsmep_profiling_config
+   wsmep_profiling_config,
+   snbep_profiling_config
 };

 static pfn_plat_ll_config_t
@@ -59,7 +60,8 @@ s_plat_ll_config[CPU_TYPE_NUM] = {
    snbep_ll_config,
    nhmex_ll_config,
    nhmep_ll_config,
-   wsmep_ll_config
+   wsmep_ll_config,
+   snbep_ll_config
 };

 static pfn_plat_offcore_num_t
@@ -69,7 +71,8 @@ s_plat_offcore_num[CPU_TYPE_NUM] = {
    snb_offcore_num,
    nhm_offcore_num,
    nhm_offcore_num,
-   wsm_offcore_num
+   wsm_offcore_num,
+   snb_offcore_num
 };

 static cpu_type_t s_cpu_type;
@@ -93,8 +96,10 @@ plat_detect(void)
    case CPU_NHM_EX:
        /* fall through */      
    case CPU_NHM_EP:
-       /* fall through */      
+       /* fall through */
    case CPU_WSM_EP:
+       /* fall through */
+   case CPU_IVB_EX:
        return (0);

    default:
diff --git i/common/util.c w/common/util.c
index eab06b3..cc75188 100644
--- i/common/util.c
+++ w/common/util.c
@@ -380,6 +380,10 @@ cpu_type_get(void)
        case 47:
            type = CPU_WSM_EX;
            break;
+
+       case 62:
+           type = CPU_IVB_EX;
+           break;
        }
    }

build failure due to commit cf9ca3853a2c801fe04d9bf6d4e2698a00d6de79

I'm getting a build failure when building from tip commit cf9ca38 (HEAD -> master, origin/master, origin/HEAD)

The problematic commit is: cf9ca38
Author: Dridi Boukelmoune [email protected]
Date: Mon Mar 4 23:11:13 2024 +0100

common: Build node string with bound checks

A print_buf() function is added to keep track of progress inside the s1
buffer and the remaining space. With s1 acting as a cursor and vsnprintf
taking care of formatting, the temp buffers s2 and s3 are no longer
needed.

This silences the stringop-overflow warning.

The build failure is:

make[1]: Entering directory '/home/cking/repos/numatop'
  CC       common/os/os_win.lo
common/os/os_win.c: In function 'node_cpu_string':
common/os/os_win.c:177:45: error: 's2' undeclared (first use in this function); did you mean 's1'?
  177 |                         int s2_len = sizeof(s2);
      |                                             ^~
      |                                             s1
common/os/os_win.c:177:45: note: each undeclared identifier is reported only once for each function it appears in
common/os/os_win.c:177:29: warning: variable 's2_len' set but not used [-Wunused-but-set-variable]
  177 |                         int s2_len = sizeof(s2);
      |                             ^~~~~~
common/os/os_win.c:142:13: warning: unused variable 's1_len' [-Wunused-variable]
  142 |         int s1_len = size;
      |             ^~~~~~
make[1]: *** [Makefile:1015: common/os/os_win.lo] Error 1
make[1]: Leaving directory '/home/cking/repos/numatop'
make: *** [Makefile:694: all] Error 2

how to fix "undefined reference to `numa_move_pages' " when make?

the error like this:

./.libs/libnumatop.a(map.o): In function `map_map2numa':
/root/code/C/numatop/common/os/map.c:367: undefined reference to `numa_move_pages'
./.libs/libnumatop.a(map.o): In function `map_addr2nodedst':
/root/code/C/numatop/common/os/map.c:393: undefined reference to `numa_move_pages'

numatop comapitability

Hi, We have following system, microcode version is 0x2e, documents says CPU microcode
version 0x618 or 0x70c or later is required. want to make sure that numatop will work on this system or not.

cat /proc/cpuinfo
.........
model name : Intel Xeon CPU E5-4648 v3 1.70GHz
microcode : 0x2e
.........

NumaTOP failed to start

Hello,

I am using the last version of numatop code, i successfully run make install. however i am facing a blocking issue to start numatop. here below the details:

Please note that I didn't apply the kernel patch you mentioned. I didn't succeed to apply it, maybe a hint on the linux command to apply this patch could help.

bash$ numatop
NumaTOP is starting ...
Fail to setup perf (probably permission denied)!

with root:
bash$ numatop
NumaTOP is starting ...
Segmentation fault (core dumped)
ibm001srv root /nfshome/nonuser/autoengine/

Operating Environment:
bash$ uname -a
Linux ibm001srv 4.5.4-1.el7.elrepo.x86_64 #1 SMP Thu May 12 12:17:54 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

bash$ which numatop
/usr/local/bin/numatop
ibm001srv autoengine ~/
bash$ ls -l /usr/local/bin/numatop
-rwxr-xr-x. 1 root root 541174 May 16 17:07 /usr/local/bin/numatop*

bash$ cat /proc/cpuinfo | grep 'model name' | uniq
model name : Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz

configure failed, no package check

Hi there,

I'm trying to package numatop for Debian/Ubuntu and I'm getting a configure failure referencing a tool named 'check'. What is this tool and where can I find it?

I'm using Ubuntu Bionic 18.04


checking for CHECK... no
configure: error: Package requirements (check) were not met:

No package 'check' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Release v2.4 - GCC 14.1.1 compile error: initialization of 'long unsigned int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]

Building release v2.4 om ArchLinux with GCC-14.1.1 raises the following errors - see below

PS: release v2.3 build fine

x86/skl.c:68:53: error: initialization of 'long unsigned int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
   68 |         { PERF_TYPE_RAW, 0x012A, 0x53, 0x730000001, "off_core_response_0" },
      |                                                     ^~~~~~~~~~~~~~~~~~~~~
x86/skl.c:68:53: note: (near initialization for 's_emr_config[1].sample_period')
x86/skl.c:68:9: warning: missing initializer for field 'exclude_guest' of 'plat_event_config_t' {aka 'struct _plat_event_config'} [-Wmissing-field-initializers]
   68 |         { PERF_TYPE_RAW, 0x012A, 0x53, 0x730000001, "off_core_response_0" },
      |         ^
x86/../common/include/os/plat.h:57:14: note: 'exclude_guest' declared here
   57 |         bool exclude_guest;
      |              ^~~~~~~~~~~~~
x86/skl.c:69:70: error: initialization of 'long unsigned int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
   69 |         { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, "cpu_clk_unhalted.ref" },
      |                                                                      ^~~~~~~~~~~~~~~~~~~~~~
x86/skl.c:69:70: note: (near initialization for 's_emr_config[2].sample_period')
x86/skl.c:69:9: warning: missing initializer for field 'exclude_guest' of 'plat_event_config_t' {aka 'struct _plat_event_config'} [-Wmissing-field-initializers]
   69 |         { PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES, 0x53, 0, "cpu_clk_unhalted.ref" },
      |         ^
x86/../common/include/os/plat.h:57:14: note: 'exclude_guest' declared here
   57 |         bool exclude_guest;
      |              ^~~~~~~~~~~~~
x86/skl.c:70:68: error: initialization of 'long unsigned int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
   70 |         { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, "instr_retired.any" },
      |                                                                    ^~~~~~~~~~~~~~~~~~~
x86/skl.c:70:68: note: (near initialization for 's_emr_config[3].sample_period')
x86/skl.c:70:9: warning: missing initializer for field 'exclude_guest' of 'plat_event_config_t' {aka 'struct _plat_event_config'} [-Wmissing-field-initializers]
   70 |         { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS, 0x53, 0, "instr_retired.any" },
      |         ^
x86/../common/include/os/plat.h:57:14: note: 'exclude_guest' declared here
   57 |         bool exclude_guest;
      |              ^~~~~~~~~~~~~
x86/skl.c:71:53: error: initialization of 'long unsigned int' from 'char *' makes integer from pointer without a cast [-Wint-conversion]
   71 |         { PERF_TYPE_RAW, 0x012B, 0x53, 0x104000001, "off_core_response_1" }
      |                                                     ^~~~~~~~~~~~~~~~~~~~~
x86/skl.c:71:53: note: (near initialization for 's_emr_config[4].sample_period')
x86/skl.c:71:9: warning: missing initializer for field 'exclude_guest' of 'plat_event_config_t' {aka 'struct _plat_event_config'} [-Wmissing-field-initializers]
   71 |         { PERF_TYPE_RAW, 0x012B, 0x53, 0x104000001, "off_core_response_1" }
      |         ^
x86/../common/include/os/plat.h:57:14: note: 'exclude_guest' declared here
   57 |         bool exclude_guest;
      |              ^~~~~~~~~~~~~

numatop fails to build on i386 arches

Older versions of numatop used to build on i386, the newer 2.1 version will not. See end of the build log below:

$ make
make  all-am
make[1]: Entering directory '/home/king/tmp/numatop'
depbase=`echo common/os/map.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/map.lo -MD -MP -MF $depbase.Tpo -c -o common/os/map.lo common/os/map.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/map.lo -MD -MP -MF common/os/.deps/map.Tpo -c common/os/map.c  -fPIC -DPIC -o common/os/.libs/map.o
common/os/map.c: In function ‘numa_map_update’:
common/os/map.c:325:41: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   if ((entry = numa_entry_add(numa_map, (uint64_t)(addr_arr[i]),
                                         ^
common/os/map.c:335:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    (entry->end_addr == (uint64_t)(addr_arr[j]))) {
                        ^
common/os/map.c:338:42: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    if ((entry = numa_entry_add(numa_map, (uint64_t)(addr_arr[j]),
                                          ^
common/os/map.c: In function ‘map_map2numa’:
common/os/map.c:362:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    addr_arr[i] = (void *)(map_entry->start_addr +
                  ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/map.lo -MD -MP -MF common/os/.deps/map.Tpo -c common/os/map.c -o common/os/map.o >/dev/null 2>&1
depbase=`echo common/os/node.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/node.lo -MD -MP -MF $depbase.Tpo -c -o common/os/node.lo common/os/node.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/node.lo -MD -MP -MF common/os/.deps/node.Tpo -c common/os/node.c  -fPIC -DPIC -o common/os/.libs/node.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/node.lo -MD -MP -MF common/os/.deps/node.Tpo -c common/os/node.c -o common/os/node.o >/dev/null 2>&1
depbase=`echo common/os/os_cmd.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_cmd.lo -MD -MP -MF $depbase.Tpo -c -o common/os/os_cmd.lo common/os/os_cmd.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_cmd.lo -MD -MP -MF common/os/.deps/os_cmd.Tpo -c common/os/os_cmd.c  -fPIC -DPIC -o common/os/.libs/os_cmd.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_cmd.lo -MD -MP -MF common/os/.deps/os_cmd.Tpo -c common/os/os_cmd.c -o common/os/os_cmd.o >/dev/null 2>&1
depbase=`echo common/os/os_page.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_page.lo -MD -MP -MF $depbase.Tpo -c -o common/os/os_page.lo common/os/os_page.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_page.lo -MD -MP -MF common/os/.deps/os_page.Tpo -c common/os/os_page.c  -fPIC -DPIC -o common/os/.libs/os_page.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_page.lo -MD -MP -MF common/os/.deps/os_page.Tpo -c common/os/os_page.c -o common/os/os_page.o >/dev/null 2>&1
depbase=`echo common/os/os_perf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_perf.lo -MD -MP -MF $depbase.Tpo -c -o common/os/os_perf.lo common/os/os_perf.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_perf.lo -MD -MP -MF common/os/.deps/os_perf.Tpo -c common/os/os_perf.c  -fPIC -DPIC -o common/os/.libs/os_perf.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_perf.lo -MD -MP -MF common/os/.deps/os_perf.Tpo -c common/os/os_perf.c -o common/os/os_perf.o >/dev/null 2>&1
depbase=`echo common/os/os_util.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_util.lo -MD -MP -MF $depbase.Tpo -c -o common/os/os_util.lo common/os/os_util.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_util.lo -MD -MP -MF common/os/.deps/os_util.Tpo -c common/os/os_util.c  -fPIC -DPIC -o common/os/.libs/os_util.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_util.lo -MD -MP -MF common/os/.deps/os_util.Tpo -c common/os/os_util.c -o common/os/os_util.o >/dev/null 2>&1
depbase=`echo common/os/os_win.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_win.lo -MD -MP -MF $depbase.Tpo -c -o common/os/os_win.lo common/os/os_win.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_win.lo -MD -MP -MF common/os/.deps/os_win.Tpo -c common/os/os_win.c  -fPIC -DPIC -o common/os/.libs/os_win.o
common/os/os_win.c: In function ‘bufaddr_cmp’:
common/os/os_win.c:564:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  const uint64_t addr = (const uint64_t)p1;
                        ^
common/os/os_win.c: In function ‘llcallchain_bufinfo_show’:
common/os/os_win.c:624:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  if ((line = bsearch((void *)(dyn->addr), lat_buf, nlines,
                      ^
common/os/os_win.c: In function ‘os_lat_buf_hit’:
common/os/os_win.c:794:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  if ((line = bsearch((void *)(rec->addr), lat_buf, nlines,
                      ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/os_win.lo -MD -MP -MF common/os/.deps/os_win.Tpo -c common/os/os_win.c -o common/os/os_win.o >/dev/null 2>&1
depbase=`echo common/os/pfwrapper.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/pfwrapper.lo -MD -MP -MF $depbase.Tpo -c -o common/os/pfwrapper.lo common/os/pfwrapper.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/pfwrapper.lo -MD -MP -MF common/os/.deps/pfwrapper.Tpo -c common/os/pfwrapper.c  -fPIC -DPIC -o common/os/.libs/pfwrapper.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/pfwrapper.lo -MD -MP -MF common/os/.deps/pfwrapper.Tpo -c common/os/pfwrapper.c -o common/os/pfwrapper.o >/dev/null 2>&1
depbase=`echo common/os/plat.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/plat.lo -MD -MP -MF $depbase.Tpo -c -o common/os/plat.lo common/os/plat.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/plat.lo -MD -MP -MF common/os/.deps/plat.Tpo -c common/os/plat.c  -fPIC -DPIC -o common/os/.libs/plat.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/plat.lo -MD -MP -MF common/os/.deps/plat.Tpo -c common/os/plat.c -o common/os/plat.o >/dev/null 2>&1
depbase=`echo common/os/sym.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/sym.lo -MD -MP -MF $depbase.Tpo -c -o common/os/sym.lo common/os/sym.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/sym.lo -MD -MP -MF common/os/.deps/sym.Tpo -c common/os/sym.c  -fPIC -DPIC -o common/os/.libs/sym.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/os/sym.lo -MD -MP -MF common/os/.deps/sym.Tpo -c common/os/sym.c -o common/os/sym.o >/dev/null 2>&1
depbase=`echo common/cmd.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/cmd.lo -MD -MP -MF $depbase.Tpo -c -o common/cmd.lo common/cmd.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/cmd.lo -MD -MP -MF common/.deps/cmd.Tpo -c common/cmd.c  -fPIC -DPIC -o common/.libs/cmd.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/cmd.lo -MD -MP -MF common/.deps/cmd.Tpo -c common/cmd.c -o common/cmd.o >/dev/null 2>&1
depbase=`echo common/disp.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/disp.lo -MD -MP -MF $depbase.Tpo -c -o common/disp.lo common/disp.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/disp.lo -MD -MP -MF common/.deps/disp.Tpo -c common/disp.c  -fPIC -DPIC -o common/.libs/disp.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/disp.lo -MD -MP -MF common/.deps/disp.Tpo -c common/disp.c -o common/disp.o >/dev/null 2>&1
depbase=`echo common/lwp.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/lwp.lo -MD -MP -MF $depbase.Tpo -c -o common/lwp.lo common/lwp.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/lwp.lo -MD -MP -MF common/.deps/lwp.Tpo -c common/lwp.c  -fPIC -DPIC -o common/.libs/lwp.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/lwp.lo -MD -MP -MF common/.deps/lwp.Tpo -c common/lwp.c -o common/lwp.o >/dev/null 2>&1
depbase=`echo common/page.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/page.lo -MD -MP -MF $depbase.Tpo -c -o common/page.lo common/page.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/page.lo -MD -MP -MF common/.deps/page.Tpo -c common/page.c  -fPIC -DPIC -o common/.libs/page.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/page.lo -MD -MP -MF common/.deps/page.Tpo -c common/page.c -o common/page.o >/dev/null 2>&1
depbase=`echo common/perf.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/perf.lo -MD -MP -MF $depbase.Tpo -c -o common/perf.lo common/perf.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/perf.lo -MD -MP -MF common/.deps/perf.Tpo -c common/perf.c  -fPIC -DPIC -o common/.libs/perf.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/perf.lo -MD -MP -MF common/.deps/perf.Tpo -c common/perf.c -o common/perf.o >/dev/null 2>&1
depbase=`echo common/proc.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/proc.lo -MD -MP -MF $depbase.Tpo -c -o common/proc.lo common/proc.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/proc.lo -MD -MP -MF common/.deps/proc.Tpo -c common/proc.c  -fPIC -DPIC -o common/.libs/proc.o
common/proc.c: In function ‘proc_group_refresh’:
common/proc.c:749:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     j = ((uint64_t)p - (uint64_t)procs_new) /
          ^
common/proc.c:749:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     j = ((uint64_t)p - (uint64_t)procs_new) /
                        ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/proc.lo -MD -MP -MF common/.deps/proc.Tpo -c common/proc.c -o common/proc.o >/dev/null 2>&1
depbase=`echo common/reg.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/reg.lo -MD -MP -MF $depbase.Tpo -c -o common/reg.lo common/reg.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/reg.lo -MD -MP -MF common/.deps/reg.Tpo -c common/reg.c  -fPIC -DPIC -o common/.libs/reg.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/reg.lo -MD -MP -MF common/.deps/reg.Tpo -c common/reg.c -o common/reg.o >/dev/null 2>&1
depbase=`echo common/ui_perf_map.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/ui_perf_map.lo -MD -MP -MF $depbase.Tpo -c -o common/ui_perf_map.lo common/ui_perf_map.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/ui_perf_map.lo -MD -MP -MF common/.deps/ui_perf_map.Tpo -c common/ui_perf_map.c  -fPIC -DPIC -o common/.libs/ui_perf_map.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/ui_perf_map.lo -MD -MP -MF common/.deps/ui_perf_map.Tpo -c common/ui_perf_map.c -o common/ui_perf_map.o >/dev/null 2>&1
depbase=`echo common/util.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/util.lo -MD -MP -MF $depbase.Tpo -c -o common/util.lo common/util.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/util.lo -MD -MP -MF common/.deps/util.Tpo -c common/util.c  -fPIC -DPIC -o common/.libs/util.o
common/util.c: In function ‘msdiff’:
common/util.c:281:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (sdiff >= (MAX_VALUE / MS_SEC)) {
            ^~
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/util.lo -MD -MP -MF common/.deps/util.Tpo -c common/util.c -o common/util.o >/dev/null 2>&1
depbase=`echo common/win.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/win.lo -MD -MP -MF $depbase.Tpo -c -o common/win.lo common/win.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/win.lo -MD -MP -MF common/.deps/win.Tpo -c common/win.c  -fPIC -DPIC -o common/.libs/win.o
common/win.c: In function ‘llrec2addr’:
common/win.c:2671:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   addr_buf[i] = (void *)(grp->rec_arr[i].addr);
                 ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2 -MT common/win.lo -MD -MP -MF common/.deps/win.Tpo -c common/win.c -o common/win.o >/dev/null 2>&1
/bin/bash ./libtool  --tag=CC   --mode=link gcc -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -g -O2   -o libnumatop.la  common/os/map.lo common/os/node.lo common/os/os_cmd.lo common/os/os_page.lo common/os/os_perf.lo common/os/os_util.lo common/os/os_win.lo common/os/pfwrapper.lo common/os/plat.lo common/os/sym.lo common/cmd.lo common/disp.lo common/lwp.lo common/page.lo common/perf.lo common/proc.lo common/reg.lo common/ui_perf_map.lo common/util.lo common/win.lo    -lncurses -lpthread 
libtool: link: ar cru .libs/libnumatop.a common/os/.libs/map.o common/os/.libs/node.o common/os/.libs/os_cmd.o common/os/.libs/os_page.o common/os/.libs/os_perf.o common/os/.libs/os_util.o common/os/.libs/os_win.o common/os/.libs/pfwrapper.o common/os/.libs/plat.o common/os/.libs/sym.o common/.libs/cmd.o common/.libs/disp.o common/.libs/lwp.o common/.libs/page.o common/.libs/perf.o common/.libs/proc.o common/.libs/reg.o common/.libs/ui_perf_map.o common/.libs/util.o common/.libs/win.o 
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libnumatop.a
libtool: link: ( cd ".libs" && rm -f "libnumatop.la" && ln -s "../libnumatop.la" "libnumatop.la" )
gcc -DHAVE_CONFIG_H -I.     -g -O2 -MT common/numatop-numatop.o -MD -MP -MF common/.deps/numatop-numatop.Tpo -c -o common/numatop-numatop.o `test -f 'common/numatop.c' || echo './'`common/numatop.c
mv -f common/.deps/numatop-numatop.Tpo common/.deps/numatop-numatop.Po
/bin/bash ./libtool  --tag=CC   --mode=link gcc  -g -O2   -o numatop common/numatop-numatop.o libnumatop.la  -lncurses -lpthread 
libtool: link: gcc -g -O2 -o numatop common/numatop-numatop.o  ./.libs/libnumatop.a -lncurses -lpthread
common/numatop-numatop.o: In function `main':
/home/king/tmp/numatop/common/numatop.c:175: undefined reference to `plat_detect'
./.libs/libnumatop.a(map.o): In function `map_map2numa':
/home/king/tmp/numatop/common/os/map.c:367: undefined reference to `numa_move_pages'
./.libs/libnumatop.a(map.o): In function `map_addr2nodedst':
/home/king/tmp/numatop/common/os/map.c:393: undefined reference to `numa_move_pages'
./.libs/libnumatop.a(os_util.o): In function `calibrate_cpuinfo':
/home/king/tmp/numatop/common/os/os_util.c:173: undefined reference to `arch__cpuinfo_freq'
./.libs/libnumatop.a(os_util.o): In function `calibrate_by_tsc':
/home/king/tmp/numatop/common/os/os_util.c:259: undefined reference to `rdtsc'
/home/king/tmp/numatop/common/os/os_util.c:261: undefined reference to `rdtsc'
./.libs/libnumatop.a(pfwrapper.o): In function `profiling_sample_read':
/home/king/tmp/numatop/common/os/pfwrapper.c:344: undefined reference to `is_userspace'
./.libs/libnumatop.a(pfwrapper.o): In function `ll_sample_read':
/home/king/tmp/numatop/common/os/pfwrapper.c:539: undefined reference to `is_userspace'
./.libs/libnumatop.a(plat.o): In function `plat_profiling_config':
/home/king/tmp/numatop/common/os/plat.c:50: undefined reference to `s_plat_profiling_config'
./.libs/libnumatop.a(plat.o): In function `plat_ll_config':
/home/king/tmp/numatop/common/os/plat.c:64: undefined reference to `s_plat_ll_config'
./.libs/libnumatop.a(plat.o): In function `plat_offcore_num':
/home/king/tmp/numatop/common/os/plat.c:90: undefined reference to `s_plat_offcore_num'
./.libs/libnumatop.a(ui_perf_map.o): In function `get_ui_perf_count_map':
/home/king/tmp/numatop/common/ui_perf_map.c:40: undefined reference to `ui_perf_count_map'
collect2: error: ld returned 1 exit status
Makefile:901: recipe for target 'numatop' failed
make[1]: *** [numatop] Error 1
make[1]: Leaving directory '/home/king/tmp/numatop'
Makefile:665: recipe for target 'all' failed
make: *** [all] Error 2

numatop can't start with AWS virtual machine (c3.8xlarge, E5-2680 v2)

Hi,

I installed numatop on my local server and a virtual machine (Xen) of AWS. For my local server, it runs perfectly well. However, numatop had hard time to start with AWS virtual machine. It shows: "Fail to setup perf (probably permission denied)!"
My local server uses 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux (E5-2680 v2 @ 2.80GHz)
The AWS virtual machine (type: c3.8xlarge) uses 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux (E5-2680 v2 @ 2.80GHz). I believe that AWS has correct numa/cpu virtualization.

The log info is listed as follows:
$sudo ./numatop -l 2 -f log.txt
$cat log.txt

0: calibrate_cpuinfo: nsofclk = 0.3571, clkofsec = 2800000000
0: Detected 32 online CPUs
0: pf_profiling_setup: pf_event_open is failed for CPU0, COUNT0
0: os_profiling_start failed
0: perf thread is exiting.
0: perf_init: perf_profiling_start() failed
0: perf_init() is failed

Could you help me out please?

Thank you!
Liyang

potential null pointer dereferences in perf_profiling_partpause and perf_profiling_restore

Static analysis with CoverityScan picked up 2 potential null pointer dereference bugs in perf.c, these can occur if the call to get_ui_perf_count_map() does not set pointer perf_count_ids and hence we get a null pointer dereference on this NULL pointer.

Introduced by commit:

commit eb574e7
Author: Ravi Bangoria [email protected]
Date: Thu Jul 27 03:30:38 2017 -0500

Support multiple perf event for one UI parameter
495 int
496 perf_profiling_partpause(ui_count_id_t ui_count_id)
497 {
   1. assign_zero: Assigning: perf_count_ids = NULL.
498        perf_count_id_t *perf_count_ids = NULL;
499        int n_perf_count;
500
   2. no_write_call: Although get_ui_perf_count_map does overwrite perf_count_ids on some paths, it also contains at least one feasible path which does not overwrite it.
501        n_perf_count = get_ui_perf_count_map(ui_count_id, &perf_count_ids);
   3. Condition n_perf_count > 1, taking false branch.
502        if (n_perf_count > 1) {
503                return (os_perf_profiling_multipause(perf_count_ids));
504        } else {
   CID 184894: Explicit null dereferenced (FORWARD_NULL)4. var_deref_op: Dereferencing null pointer perf_count_ids.
505                return (os_perf_profiling_partpause(perf_count_ids[0]));
506        }
507 }

and:

509 int
510 perf_profiling_restore(ui_count_id_t ui_count_id)
511 {
   1. assign_zero: Assigning: perf_count_ids = NULL.
512        perf_count_id_t *perf_count_ids = NULL;
513        int n_perf_count;
514
   2. no_write_call: Although get_ui_perf_count_map does overwrite perf_count_ids on some paths, it also contains at least one feasible path which does not overwrite it.
515        n_perf_count = get_ui_perf_count_map(ui_count_id, &perf_count_ids);
   3. Condition n_perf_count > 1, taking false branch.
516        if (n_perf_count > 1) {
517                return (os_perf_profiling_multi_restore(perf_count_ids));
518        } else  {
   CID 184895: Explicit null dereferenced (FORWARD_NULL)4. var_deref_op: Dereferencing null pointer perf_count_ids.
519                return (os_perf_profiling_restore(perf_count_ids[0]));
520        }
521 }

Potentially unterminated string being used in strcmp()

In common/os/sym.c, function elf64_binary_read() strcmp is being used to compare strings being read from an ELF header and these potentially may be unterminated with '\0'.

In stanza:

536                if ((strcmp(shstrtab + shdr.sh_name, ".symtab") == 0) ||
537                        (strcmp(shstrtab + shdr.sh_name, ".dynsym") == 0)) {
538                        symtab_off = shdr.sh_offset;
539                        symtab_num = (int)(shdr.sh_size / shdr.sh_entsize);
540                }

perhaps a safer strncmp() should be used as this is untrusted raw data from a file?

Write numatop info to file?

I would like to write numatop info to a file (in particular the page that shows all the threads for a process and their RMA/LMA activity). Is there any way to do that?

Minimum required versions for dependencies?

I was trying to run numatop on a centos 5 machine which currently runs numactl-devel 0.9.8. Unsurprisingly, it failed out.

My question is: What's the minimum version of the dependencies (numactl-devel, libncurses and libpthread) that's required for numatop to be run on a machine?

os_sysfs_cmt_task_set calls userspace tools to perform some trivial file operations

os_sysfs_cmt_task_set is calling out to userspace tools to perform some trivial file operations - these should be replaced with direct system calls where possible for the following reasons:

  1. Commands in a user space path may not be the commands one expects to run - this can be a potential risk especially if running numatop as root.

  2. The commands can be trivially replaced with system call alternatives, eg. mkdir(2), etc.

  3. The mode flags current are not being specified when creating the /sysfs files, so one is inheriting flags of umask - it would be better to use a direct system call of mkdir() to use the mode flags that specifically are required

  4. Direct system calls are faster than fork/exec'ing out .

Doesn't build on 32 bits platforms

Hi,

I'm currently packaging numatop for Fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=991221#c10

During the review it appeared that the build fails for the i686 architecture. Since this is a primary architecture, we have to try to support it (in this case even if numatop ends up saying "CPU is not supported!").

If it doesn't make any sense, we'll simply exclude this architecture.

Best Regards,
Dridi

Various strn* build warnings should be fixed

Building with gcc 9.3.0 I see multiple build warnings, can these be fixed?

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-12ubuntu1)

make[1]: Entering directory '/home/cking/repos/numatop'
CC common/numatop-numatop.o
CC common/os/map.lo
CC common/os/node.lo
CC common/os/os_cmd.lo
CC common/os/os_page.lo
CC common/os/os_perf.lo
CC common/os/os_util.lo
In file included from /usr/include/string.h:495,
from common/os/os_util.c:35:
In function ‘strncpy’,
inlined from ‘str_int_extract’ at common/os/os_util.c:394:2,
inlined from ‘file_int_extract’ at common/os/os_util.c:452:10:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: warning: ‘__builtin_strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/os/os_util.c: In function ‘file_int_extract’:
common/os/os_util.c:387:12: note: length computed here
387 | int len = strlen(str);
| ^~~~~~~~~~~
CC common/os/os_win.lo
In file included from /usr/include/string.h:495,
from common/os/os_win.c:34:
In function ‘strncat’,
inlined from ‘node_cpu_string’ at common/os/os_win.c:183:20,
inlined from ‘os_nodedetail_data’ at common/os/os_win.c:226:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: warning: ‘__builtin___strncat_chk’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/os/os_win.c: In function ‘os_nodedetail_data’:
common/os/os_win.c:183:20: note: length computed here
183 | (void) strncat(s1, s2, strlen(s2));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/string.h:495,
from common/os/os_win.c:34:
In function ‘strncat’,
inlined from ‘node_cpu_string’ at common/os/os_win.c:173:21,
inlined from ‘os_nodedetail_data’ at common/os/os_win.c:226:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: warning: ‘__builtin___strncat_chk’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/os/os_win.c: In function ‘os_nodedetail_data’:
common/os/os_win.c:173:21: note: length computed here
173 | (void) strncat(s2, s3, strlen(s3));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/string.h:495,
from common/os/os_win.c:34:
In function ‘strncat’,
inlined from ‘node_cpu_string’ at common/os/os_win.c:176:20,
inlined from ‘os_nodedetail_data’ at common/os/os_win.c:226:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: warning: ‘__builtin___strncat_chk’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/os/os_win.c: In function ‘os_nodedetail_data’:
common/os/os_win.c:176:20: note: length computed here
176 | (void) strncat(s1, s2, strlen(s2));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/string.h:495,
from common/os/os_win.c:34:
In function ‘strncat’,
inlined from ‘node_cpu_string’ at common/os/os_win.c:144:17,
inlined from ‘os_nodedetail_data’ at common/os/os_win.c:226:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:136:10: warning: ‘__builtin___strncat_chk’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/os/os_win.c: In function ‘os_nodedetail_data’:
common/os/os_win.c:144:17: note: length computed here
144 | (void) strncat(s1, s2, strlen(s2));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
CC common/os/pfwrapper.lo
CC common/os/plat.lo
CC common/os/sym.lo
CC common/cmd.lo
CC common/disp.lo
CC common/lwp.lo
CC common/page.lo
CC common/perf.lo
CC common/proc.lo
CC common/reg.lo
CC common/ui_perf_map.lo
CC common/util.lo
CC common/win.lo
In file included from /usr/include/string.h:495,
from common/win.c:36:
In function ‘strncpy’,
inlined from ‘topnproc_data_save’ at common/win.c:358:9,
inlined from ‘topnproc_data_show.isra.0’ at common/win.c:441:3:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: warning: ‘__builtin_strncpy’ output may be truncated copying 12 bytes from a string of length 15 [-Wstringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC intel/bdw.lo
CC intel/nhm.lo
CC intel/plat.lo
CC intel/skl.lo
CC intel/snb.lo
CC intel/ui_perf_map.lo
CC intel/util.lo
CC intel/wsm.lo
CCLD libnumatop.la
copying selected object files to avoid basename conflicts...
CCLD numatop
CC test/mgen/mgen-mgen.o
CC test/mgen/intel/mgen-util.o
CCLD mgen
make[1]: Leaving directory '/home/cking/repos/numatop'

using mount and umount can be potentially exploited

The calls to mount and umount are assuming the correct tools are in the $PATH and not any other dubiously behaving commands added the $PATH. It may be more sensible to remove the exec of these and replace them with the mount/umount system call alternatives.

function ll_init() is not initializing some fields in cfg

In common/os/os_perf.c function ll_init() is declaring cfg on the stack and then assigning conf from some uninitialized fields in cfg namely:

 839        conf->type = cfg.type;
 840        conf->config = (cfg.config) | (cfg.other_attr << 16);
 841        conf->config1 = cfg.extra_value;

Should cfg be memset before calling plat_ll_config?

pf_event_open is failed for CPU0, COUNT1 on quad Xeon E7-8890v3

I am getting the error " pf_event_open is failed for CPU0, COUNT1" when I run numatop on a quad Xeon E7-8890v3. The system info and output are as follows:

[root@mambo numatop-master]# uname -a
Linux mambo 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@mambo numatop-master]# cat /etc/centos-release
CentOS release 6.7 (Final)
[root@mambo numatop-master]# numatop -l 2 -f stderr
0: calibrate_cpuinfo: nsofclk = 0.4000, clkofsec = 2500000000
0: Detected 144 online CPUs
0: LLC scale: occupancy 0.0, total bw 0.0, local bw 0.0
NumaTOP is starting ...
0: pf_profiling_setup: attr.type = 0x0, attr.config = 0x0, attr.config1 = 0x0
0: pf_profiling_setup: attr.type = 0x4, attr.config = 0x5301b7, attr.config1 = 0x67f800001
0: pf_profiling_setup: pf_event_open is failed for CPU0, COUNT1 ret=-1 errno=22
0: node cpu traverse setup failed
0: os_profiling_start failed
0: perf thread is exiting.
0: perf_init: perf_profiling_start() failed
0: perf_init() is failed
Fail to setup perf (probably permission denied)!
[root@mambo numatop-master]#

Would you have any ideas about the cause?

Thanks

proc_obsolete potentially performs a lock operation on an uninitialized mutex

Static analysis by CoverityScan detected a potential incorrect lock operation on a mutex:

654 static void
655 proc_obsolete(pid_t pid)
656 {
657        track_proc_t *proc;
658
   1. Condition (proc = proc_find(pid)) != NULL, taking true branch.
659        if ((proc = proc_find(pid)) != NULL) {
   2. destroy: proc_refcount_dec destroys proc->mutex. [show details]
660                proc_refcount_dec(proc);
661                (void) pthread_mutex_lock(&s_proc_group.mutex);
662                proc_group_remove(proc);
   CID 175280: Uninitialized lock use (LOCK)3. uninitialized_use: proc_free uses proc->mutex in an uninitialized state.
663                proc_free(proc);
664                (void) pthread_mutex_unlock(&s_proc_group.mutex);
665        }
666 }

FAIL: test/mgen.01.sh Failed to dependent read.

master branch, make check fails on some hosts with:

[x86_64] make[2]: Entering directory '/usr/src/RPM/BUILD/numatop-2.4'
[x86_64] FAIL: test/mgen.01.sh
[x86_64] make[2]: Leaving directory '/usr/src/RPM/BUILD/numatop-2.4'
[x86_64] make[2]: Entering directory '/usr/src/RPM/BUILD/numatop-2.4'
[x86_64] FAIL: test/mgen.02.sh
[x86_64] make[2]: Leaving directory '/usr/src/RPM/BUILD/numatop-2.4'
[x86_64] --
[x86_64] # SKIP:  0
[x86_64] # XFAIL: 0
[x86_64] # FAIL:  2
[x86_64] # XPASS: 0
[x86_64] # ERROR: 0
[x86_64] .. contents:: :depth: 2
[x86_64] FAIL: test/mgen.01.sh
[x86_64] Failed to dependent read.
[x86_64] FAIL test/mgen.01.sh (exit status: 255)
[x86_64] FAIL: test/mgen.02.sh
[x86_64] mbind: Invalid argument
[x86_64] --
[x86_64] # SKIP:  0
[x86_64] # XFAIL: 0
[x86_64] # FAIL:  2
[x86_64] # XPASS: 0
[x86_64] # ERROR: 0
[x86_64] See ./test-suite.log

Manual run:

+ ./mgen -a 1 -c 1 -t 10
mbind: Invalid argument
Failed to dependent read.

CPU is not supported!

Related to #35 but for mine runs on Ubuntu 18.04 with the following system detail

  • uname -a
Linux haxpor 5.0.0-37-generic #40~18.04.1-Ubuntu SMP Thu Nov 14 12:06:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
  • lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  2
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               58
Model name:          Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
Stepping:            9
CPU MHz:             1544.223
CPU max MHz:         3100.0000
CPU min MHz:         1200.0000
BogoMIPS:            4988.84
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            3072K
NUMA node0 CPU(s):   0-3
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm cpuid_fault pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts md_clear flush_l1d

Whenever I run numatop, it shows CPU is not supported!.

Proper numatop v2.4 release

Dear maintainers,

I just noticed that the v2.2 tag currently advertises a v2.1 version:

AC_INIT([numatop], [v2.1], [[email protected]])

In addition, it would be nice to have an actual github release for numatop v2.2 with the dist archive available for download, similarly to what the v2.1 release does:

Since you didn't annotate the v2.2 tag, you could actually update it. Alternatively, since modifying tags is usually frowned upon, you could release a v2.3 that simply adds the missing version bump in configure.ac.

Thanks,
Dridi

Support for Haswell?

Sorry if this has been already discussed or is known but I'm looking to run numatop on a Haswell machine and was wondering if the Haswell architecture specific code is in the works? Will it be ever made public? Thanks!

Guessing at failure: Fail to setup perf (probably permission denied)!

It would be great if you didn't try to guess why it failed to set up perf and instead actually use the return value from the function that failed. Here, I'm starting as root:

# numatop
NumaTOP is starting ...
Fail to setup perf (probably permission denied)!

Some time spent with strace -f and I discovered:

[pid 465193] perf_event_open({type=PERF_TYPE_HARDWARE, size=PERF_ATTR_SIZE_VER5, config=PERF_COUNT_HW_INSTRUCTIONS, ...}, -1, 143, 1020, 0) = 1023
[pid 465193] ioctl(1023, PERF_EVENT_IOC_SET_OUTPUT, 1020) = 0
[pid 465193] perf_event_open({type=PERF_TYPE_RAW, size=PERF_ATTR_SIZE_VER5, config=0x5301bb, ...}, -1, 143, 1020, 0) = -1 EMFILE (Too many open files)

Clearly in this case the correct fix was to increase the file limit with ulimit -n (was 1024, 2048 worked).

Given there are many reasons why perf_event_open(2) can fail, it would be helpful to not guess and use perror(3) or something.

Thank you!

Uninitialized pointer read in pqos_mbm_data_show()

Static analysis has found an uninitialized array being accessed in common/win.c in function pqos_mbm_data_show():

If dyn->pid is zero then array content is not initialized and the call to dump_write("\n*** %s\n", content) will dump garbage from the stack which can be potentially not terminated with a ''0.

NumaTOP failed to start

Hello,

I am using the last version of numatop code, i successfully run make install. however i am facing a blocking issue to start numatop. here below the details:

bash$ numatop
NumaTOP is starting ...
Fail to setup perf (probably permission denied)!

with root:
bash$ numatop
NumaTOP is starting ...
Segmentation fault (core dumped)
ibm001srv root /nfshome/nonuser/autoengine/

Operating Environment:
bash$ uname -a
Linux ibm001srv 4.5.4-1.el7.elrepo.x86_64 #1 SMP Thu May 12 12:17:54 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

bash$ which numatop
/usr/local/bin/numatop
ibm001srv autoengine ~/
bash$ ls -l /usr/local/bin/numatop
-rwxr-xr-x. 1 root root 541174 May 16 17:07 /usr/local/bin/numatop*

bash$ cat /proc/cpuinfo | grep 'model name' | uniq
model name : Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz

can't start on Intel(R) Xeon(R) CPU E7-8890 v3

Hi,
I installed numatop on my machine,but when I ran it using root user: I got the error msg:
"Fail to setup perf (probably permission denied)!"
My kernel is : Linux 3.12.48-52.27-default-spinlock #2 SMP Sat Apr 2 19:06:47 CST 2016 x86_64 x86_64 x86_64 GNU/Linux
CPU is : Intel(R) Xeon(R) CPU E7-8890 v3 @ 2.50GHz
The cpu is haswell.
Do you have any advice ?
Thanks a lot!

2.4: build fails with `[-Werror=format-security]` error

[tkloczko@pers-jacek numatop-2.4]$ make -k
make  all-am
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/numatop-2.4'
/bin/sh ./libtool  --tag=CC   --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I.    -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c -o common/reg.lo common/reg.c
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -fPIC -O2 -g -Wall -W -Wformat-security -D_FORTIFY_SOURCE=2 -fno-common -std=gnu99 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Os -c common/reg.c  -fPIC -DPIC -o common/.libs/reg.o
common/reg.c: In function 'reg_line_write':
common/reg.c:243:17: error: format not a string literal and no format arguments [-Werror=format-security]
  243 |                 (void) mvwprintw(r->hdl, line, pos_x, content);
      |                 ^
common/reg.c: In function 'reg_highlight_write':
common/reg.c:270:17: error: format not a string literal and no format arguments [-Werror=format-security]
  270 |                 (void) mvwprintw(r->hdl, line, pos_x, content);
      |                 ^
cc1: some warnings being treated as errors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.