Intel Turbo boostの状況を見るべく、i7zをmakeすると、
noizumi@purplecat:~/src/i7z-0.26$ make
rm -f *.o i7z
If the compilation complains about not finding ncurses.h, install ncurses (libncurses5-dev on ubuntu/debian)
gcc -g -O0 -fomit-frame-pointer -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DBUILD_MAIN -Wall -Dx64_BIT -lncurses -lpthread -lrt i7z.c helper_functions.c i7z_Single_Socket.c i7z_Dual_Socket.c -o i7z
i7z_Single_Socket.c: 関数 ‘Single_Socket’ 内:
i7z_Single_Socket.c:83:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:83:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_socket_single’ 内:
i7z_Single_Socket.c:211:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:206:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_single’ 内:
i7z_Single_Socket.c:619:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘Dual_Socket’ 内:
i7z_Dual_Socket.c:37:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:37:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z_socket’ 内:
i7z_Dual_Socket.c:154:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:149:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z’ 内:
i7z_Dual_Socket.c:570:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
/tmp/ccyXWW18.o: In function Single_Socket':
initscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:92: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:93: undefined reference to start_color'
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to stdscr'
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:94: undefined reference to stdscr'
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:95: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:95: undefined reference to wrefresh'
print_i7z_socket_single':
/tmp/ccyXWW18.o: In function
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:114: undefined reference to mvprintw'
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:115: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:117: undefined reference to mvprintw'
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:122: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:242: undefined reference to mvprintw'
mvprintw' follow
/tmp/ccyXWW18.o:/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:267: more undefined references to
/tmp/ccyXWW18.o: In function print_i7z_socket_single':
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:527: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:527: undefined reference to wrefresh'
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:543: undefined reference to
/tmp/ccyXWW18.o: In function print_i7z_single':
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:582: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:587: undefined reference to mvprintw'
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:648: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Single_Socket.c:648: undefined reference to wrefresh'
Dual_Socket':
/tmp/ccY0TCqr.o: In function
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:46: undefined reference to initscr'
start_color'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:47: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to stdscr'
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to stdscr'
stdscr'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:48: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:49: undefined reference to stdscr'
wrefresh'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:49: undefined reference to
/tmp/ccY0TCqr.o: In function print_i7z_socket':
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:185: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:211: undefined reference to mvprintw'
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:212: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:213: undefined reference to mvprintw'
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:214: undefined reference to
/tmp/ccY0TCqr.o:/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:215: more undefined references to mvprintw' follow
print_i7z_socket':
/tmp/ccY0TCqr.o: In function
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:488: undefined reference to stdscr'
wrefresh'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:488: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:502: undefined reference to mvprintw'
print_i7z':
/tmp/ccY0TCqr.o: In function
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:539: undefined reference to mvprintw'
mvprintw'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:540: undefined reference to
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:601: undefined reference to stdscr'
wrefresh'
/home/noizumi/src/i7z-0.26/i7z_Dual_Socket.c:601: undefined reference to
collect2: ld はステータス 1 で終了しました
make: *** [bin] エラー 1
noizumi@purplecat:~/src/i7z-0.26$ locate ncurses.h
/usr/include/ncurses.h
noizumi@purplecat:~/src/i7z-0.26$
でも
noizumi@purplecat:~/src/i7z-0.26$ gcc -g -O0 -fomit-frame-pointer -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DBUILD_MAIN -Wall -Dx64_BIT -lpthread i7z.c helper_functions.c i7z_Single_Socket.c i7z_Dual_Socket.c -lncurses -lrt -o i7z
i7z_Single_Socket.c: 関数 ‘Single_Socket’ 内:
i7z_Single_Socket.c:83:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:83:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_socket_single’ 内:
i7z_Single_Socket.c:211:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c:206:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Single_Socket.c: 関数 ‘print_i7z_single’ 内:
i7z_Single_Socket.c:619:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘Dual_Socket’ 内:
i7z_Dual_Socket.c:37:14: 警告: 変数 ‘col’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:37:9: 警告: 変数 ‘row’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z_socket’ 内:
i7z_Dual_Socket.c:154:13: 警告: 変数 ‘IA32_FIXED_CTR_CTL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c:149:13: 警告: 変数 ‘IA32_PERF_GLOBAL_CTRL_Value’ が設定されましたが使用されていません [-Wunused-but-set-variable]
i7z_Dual_Socket.c: 関数 ‘print_i7z’ 内:
i7z_Dual_Socket.c:570:9: 警告: 変数 ‘HT_ON’ が設定されましたが使用されていません [-Wunused-but-set-variable]
noizumi@purplecat:~/src/i7z-0.26$
こうやれば通る。
Makefileの中に指定してあるオプションをコマンドラインで打ってやれば、コンパイルが通り、Makefileだと ncurses のライブラリが見つからないとぬかしてシンボルエラーが出まくる。
i7zの場合は、issue に全く同じ症状の人が居て、根本的な解決法になっていないが、一応、動作するものができたが、xawtv4のビルドでも、リンカで必要なライブラリが揃っているのにリンクできないという同じ症状が出ている。
xawtv4の場合は関連ファイルが多いから、一々、コマンドライン手打ちでやってられぬ。そもそも make はそういうコマンドライン手打ちを一々やらない為のシステムで、本末転倒じゃ。
これだけおかしな状況になってるのに、検索しても余り騒いでいる人を見かけないが、わしが時代に取り残されておるのかのう。