[HOME] > PC-UNIX Tips > tcsh on Plamo Linux 7.1

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やし条件はマッチしそう。

古いPCでgccでのビルドが通らない

はい、上記の事象にビンゴ。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