[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001026] Solved? DCL-C compile error



神代です。

まず,先ほどのインストールメモですが,INSTALL_user.linux.AdvancedDCL.txt 
の中で,「資源」の項目の各資源のバージョン名は正しいのですが,「インストー
ル手順」のほうは古いままでした。
すみませんが,修正のうえ,掲載していただけないでしょうか >堀之内様


さて,本題ですが,

ずいぶん前の話ですが,C版DCL を linux (Intel Celeron 667MHz, TurboLinux
Server 6.1) にインストールしたときに bitpci_ が抜けてしまっていてうまく
インストールできていない,という現象をご報告しましたが,今日になって
ようやくエラーメッセージをちゃんと見てみました。遅くなってすいません。

結論から申しますと,「FORTRANコンパイラをインストールするとインストール
できる」ということでした。
gcc-g77 をインストールすると,うそみたいにエラーなしでインストールされ
ました。

bitpci_ もちゃんとできています:

[koshiro@xxxxxx lib]$ nm libcdcl52.a | grep bitpci_
00000000 T bitpci_
         U bitpci_
         U bitpci_
         U bitpci_
         U bitpci_
         U bitpci_

AdvancedDCL, RubyNetCDF ともにインストールでき,デモプログラムが動かせる
ことも確認しました。

この対処が正しいとすれば,結局 C版DCL にはFORTRAN コンパイラが必須という
ことになりますが,そうなんですか??

どなたか,エラーログから詳しいことがわかりますでしょうか。

うざったいとは思ったのですが,gcc-g77 インストール前の configure, make, 
make install 時のエラー出力をそれぞれ添付しました。
さらに,gcc-g77 インストール前と後のconfigureの出力メッセージ(標準出力+
エラー出力)もつけています。


以下顛末:

make install したときのログを見ると,bitpci_ だけじゃくて,ishift_
([dennou-ruby:000901]で塩谷さんから報告あり) とか sbyte_ とかもないと
言われている。

make したときのログでは,iand.c でエラーになっている。
これは dcl-5.2-C/src/misc1/bitlib/ 以下のファイルなのだが,別におかしな
ところはなさそう。

configure のログでもエラーがでていて,FORTRANコンパイラがないことでエラー
になっている。調べてみると,このマシンにはFORTRANコンパイラが入っていない
ことが判明。

Turbo linux の Anonymous FTPサーバにバイナリRPM がなかったので, gcc の
SRPM をとってきてリビルド。gcc-g77 をインストール。

その後まったく同じようにしてインストールテスト。今度はうまくいった!


-- 
神代  剛  (こうしろ つよし)  <t.koushiro@xxxxxx>
富士通エフ・アイ・ピー株式会社 環境システム事業推進部 システム部 
勤務先:通信総合研究所 電磁波計測部門  SMILES G / 降水レーダ G
mailto:koshiro@xxxxxx  TEL:042-327-6880  FAX:042-327-6666
configure: warning: Could not find working FORTRAN compiler
configure: warning: getarg() is not available
configure: warning: Service routine iargc() is not available
./configure: ./conftest: No such file or directory
./configure: test: -gt: unary operator expected
iand.c:5: parse error before iand_'
iand.c:6: parse error before DCL_INT'
iand.c:6: warning: data definition has no type or storage class
iand.c:7: parse error before {'
make[3]: *** [iand.o] Error 1
ar: iand.o: No such file or directory
make[3]: *** [archive] Error 1
/home/koshiro/dennou/lib/libcdcl52.a(szstyp.o): In function szstyp_0_':
szstyp.o(.text+0x43): undefined reference to bitpci_'
/home/koshiro/dennou/lib/libcdcl52.a(szopld.o): In function szopld_0_':
szopld.o(.text+0x7f4): undefined reference to ishift_'
szopld.o(.text+0x867): undefined reference to ishift_'
szopld.o(.text+0x8cd): undefined reference to ishift_'
/home/koshiro/dennou/lib/libcdcl52.a(szopts.o): In function szopts_0_':
szopts.o(.text+0x40e): undefined reference to bitpci_'
collect2: ld returned 1 exit status
make[3]: *** [dclclr] Error 1
/home/koshiro/dennou/lib/libcdcl52.a(szstyp.o): In function szstyp_0_':
szstyp.o(.text+0x43): undefined reference to bitpci_'
/home/koshiro/dennou/lib/libcdcl52.a(szopld.o): In function szopld_0_':
szopld.o(.text+0x7f4): undefined reference to ishift_'
szopld.o(.text+0x867): undefined reference to ishift_'
szopld.o(.text+0x8cd): undefined reference to ishift_'
collect2: ld returned 1 exit status
make[3]: *** [dclfont] Error 1
/home/koshiro/dennou/lib/libcdcl52.a(szstyp.o): In function szstyp_0_':
szstyp.o(.text+0x43): undefined reference to bitpci_'
/home/koshiro/dennou/lib/libcdcl52.a(szopld.o): In function szopld_0_':
szopld.o(.text+0x7f4): undefined reference to ishift_'
szopld.o(.text+0x867): undefined reference to ishift_'
szopld.o(.text+0x8cd): undefined reference to ishift_'
/home/koshiro/dennou/lib/libcdcl52.a(szopts.o): In function szopts_0_':
szopts.o(.text+0x40e): undefined reference to bitpci_'
collect2: ld returned 1 exit status
make[3]: *** [dcltone] Error 1
/tmp/ccsAsBIz.o: In function MAIN__':
/tmp/ccsAsBIz.o(.text+0xa5): undefined reference to sbyte_'
/tmp/ccsAsBIz.o(.text+0xc1): undefined reference to sbyte_'
collect2: ld returned 1 exit status
make[3]: *** [repsl] Error 1
creating cache ./config.cache
checking for gcc... gcc
checking C compiler... works
checking how to run the C preprocessor... gcc -E
checking for mawk... no
checking for gawk... /usr/bin/gawk
checking for gsed... no
checking for sed... sed
checking for ranlib... ranlib
checking for f90... no
checking for pgf77... no
checking for f77... no
checking for g77... no
configure: warning: Could not find working FORTRAN compiler
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking Fortran service routine getarg()... configure: warning: getarg() is not available
checking Fortran service routine iargc()... configure: warning: Service routine iargc() is not available
checking Character code set csgi()/isgc()... ./configure: ./conftest: No such file or directory
./configure: test: -gt: unary operator expected
other
checking for pwd... /home/koshiro/dcl-5.2-C
checking for float.h... yes
REALMAX is 0x00800000
REALMIN is 0x00800000
EPSILON is  1.19221E-06
INTMAX is 0x00800000
CLOCKS_PER_SEC is provided by the system
CLK_TCK is provided by the system
updating cache ./config.cache
creating ./config.status
creating Mkinclude
creating src/misc1/bitlib/bitlib.h
creating cache ./config.cache
checking for gcc... gcc
checking C compiler... works
checking how to run the C preprocessor... gcc -E
checking for mawk... no
checking for gawk... /usr/bin/gawk
checking for gsed... no
checking for sed... sed
checking for ranlib... ranlib
checking for f90... no
checking for pgf77... no
checking for f77... no
checking for g77... g77
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking Fortran service routine getarg()... works
checking Fortran service routine iargc()... works
checking Character code set csgi()/isgc()... general
checking for pwd... /home/koshiro/dcl-5.2-C
checking for C-equivalent to Fortran routine "SUB"... sub_
checking if Fortran "integer" is C "int"... yes
checking if Fortran "real" is C "float"... yes
hexadecimal number requires quotation
checking for float.h... yes
REALMAX is 0x00800000
REALMIN is 0x00800000
EPSILON is  1.19221E-06
INTMAX is 0x00800000
CLOCKS_PER_SEC is provided by the system
CLK_TCK is provided by the system
updating cache ./config.cache
creating ./config.status
creating Mkinclude
creating src/misc1/bitlib/bitlib.h