[HOME] > PC-UNIX Tips > tcsh on Plamo Linux 7.1
Created: 2019.05.17
PC-UNIX Tips
Plamo LPlamo Linux 7.1にはtcshがないっぽいのが、csh育ちにはちょと悲しい(T_T)
そこで、 tcsh-6.20.00をソースコンパイルしてインストール。しかし、Plamo7標準のgcc7 環境でコンパイルエラーが発生(T_T)
$ cd tcsh-6.20.00/
$ ./configure
...
$ make
...
gcc -c -g -O2 -I. -I. -D_PATH_TCSHELL='"/usr/local/bin/tcsh"' sh.func.c
In file included from config_f.h:42:0,
from config.h:276,
from sh.h:36,
from sh.func.c:33:
/usr/include/features.h:183:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
sh.func.c: In function 'dofiletest':
sh.func.c:233:29: warning: comparison between pointer and zero character constant [-Wpointer-compare]
while (*(fileptr = v++) != '\0') {
^~
sh.func.c:233:12: note: did you mean to dereference the pointer?
while (*(fileptr = v++) != '\0') {
^
sh.func.c: In function 'getval':
sh.func.c:2119:6: internal compiler error: Illegal instruction
return restrict_limit((f * lp->limdiv) + 0.5);
^~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See for instructions.
make: *** [Makefile:465: sh.func.o] Error 1
調べると次の事象と同じかも... うちの約10年前の古いPCやし条件はマッチしそう。
はい、上記の事象にビンゴ。gmp-6.1.2-B2を含めた最新版にアップデートして、再コンパイル したところ、コンパイルが通るようになりました :-)
# gmpは、GNU Multi-Precision Libraryの略称で、多倍長整数など任意の精度の 算術ライブラリです。
# get_pkginfo -a
...
# cd /var/log/packages/
# strings gmp | grep NAME
PACKAGE NAME: gmp-6.1.2-x86_64-B2
自分なりにまとめてみると、gmpライブラリがうちの古いPCのCPU(Intel Core2 Quad Q8200)では理解できないCPU命令を含むBinaryファイルになっていたため、Illegal instruction(不正なインストラクション)がコンパイル中に発生。Core 2 Duo T7250 + i965GMなスタンダートノートでconfigureに--build=x86_64-pc-linuxでコンパイルしたgmpライブラリ(gmp-6.1.2-B2)にアップデートすることで、うちの古いPCのCPU(Intel Core2 Quad Q8200)が理解できるBinaryファイルになり、Illegal instructionエラーが発生しないようになったと理解しました。
PC-UNIX Tips
Written by kabada