|
日本 Samba ユーザ会 (Samba Users Group Japan)
EWS4800 におけるコンパイル
荒井正純 <arai@aloijia.ocean.hiroshima-u.ac.jp> 荒井正純さんによる、EWS4800 にて Samba 1.9.16p11 をコンパイルするためのノウハウです。バイナリ パッケージも入手可能ですが、これはバージョンが低いです。 From: arai@aloijia.ocean.hiroshima-u.ac.jp (Masazumi Arai) Newsgroups: fj.sys.ews4800 Subject: Re: Cannot compile samba due to the error of trans2.c Date: 30 May 1997 09:17:12 GMT Organization: Environmental Sciences, Hiroshima University Lines: 105 Message-ID: <ARAI.97May30181712@aloijia.ocean.hiroshima-u.ac.jp> References: <ARAI.97May20095634@aloijia.ocean.hiroshima-u.ac.jp> NNTP-Posting-Host: aloijia.ocean.hiroshima-u.ac.jp Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=ISO-2022-JP In-reply-to: arai@aloijia.ocean.hiroshima-u.ac.jp's message of 20 May 1997 00:56:34 GMT 荒井@広大・工 と申します。 samba-1.9.16p11 をmakeした際、trans2.c のコンパイルに失敗するという問 題に対して、多くの方からfollowを頂き、無事解決することができました。 1. 失敗の経緯 ・OS EWS-UX/V (Rel 4.2) Release 7.1 ・Makefile等の編集 (1) ケース1 includes.h への追加: #include <sys/sockio.h> #define SYSV #define USE_WAITPID #define SIGNAL_CAST (void (*)()) #define USE_STATVFS #define USE_GETCWD #define DEFAULT_PRINTING PRINT_SYSV #endif Makefile への追加: # This is for EWS4800, EWS-UX/V (Rel4.2) CC = /usr/abiccs/bin/cc FLAGSM = -DEWS -DSHADOW_PWD -DKANJI=\"euc\" LIBSM = -lsocket -lnsl -lc -lucb (2) ケース2 Makefile の編集のみ: CC = /usr/abiccs/bin/cc FLAGSM = -DSVR4 -DSHADOW_PWD -DKANJI=\"sjis\" -DDONT_HAVE_FLOCK LIBSM = -lsocket -lnsl -lc ケース1は、「実例付きSambaの使い方」 (ftp://etlport.etl.go.jp/pub/windows/knowhow/samba.txt) に載っていたパッチを元に、私が最初に試みた方法です。 ケース2は、パッチなどいらず、こうすればできると 中野敏行さん<xoi7mgsoxtw.fsf@spls87.ccs.mt.nec.co.jp>が教えて下さった 方法です。 私のところ(OSはRelease 7.1)では、いずれの方法も、次に示すエラーで失敗 しました。しかし、多くの方(太田さん、Release 8.1; 大貫さん、Release 9.1; 中野さん、Release 11.1)からは、いずれかの方法でコンパイルできた との情報を頂きました。この点は、乙藤さんが御指摘のように、OSのRelease に依存するようです。 ・エラーメッセージ Compiling trans2.c accom: Error: trans2.c, line 195: number of dimensions between array argument and prototype disagree unix_convert(fname,cnum,0); ---------------------------^ accom: Error: trans2.c, line 584: number of dimensions between array argument and prototype disagree unix_convert(directory,cnum,0); -------------------------------^ (途中、略) *** Error code 1 (bu21) make: fatal error. 2. エラーの回避策 (1) ソースコードの修正 HORIE Masayukiさん <5m5orm$mdl$1@news.ipch.shizuoka.ac.jp>、倉島顕尚さ ん <KURA.97May26095132@figaro.mmp.cl.nec.co.jp>から、ソースコードの unix_convert(fname,cnum,0)の部分を修正すれば、 エラーを回避できるとの 御指摘を受けました。 そこで、trans2.c, pipes.c, reply.c に現れるすべての unix_convert(hogehoge,cnum,0) を、 unix_convert(hogehoge,cnum,(char*)0) と書き換えました。 (2) リンクするライブラリの変更 リンクするライブラリとして、-lucbを指定するのはよくないとの御指摘を受 けました(中野さん、同記事; HORIEさん、同記事) 。しかし、-lucbを削除 すると、別のエラーが出ます(試したら、実際そうなった)。これには、 -lresolvを指定すればよいそうです(倉島さん、同記事)。 そこで、 LIBSM = -lsocket -lnsl -lc -lresolv としました。 3. 結果 以上の修正をして、make した結果、エラーなくコンパイルできました。 現在のところ、sambaはうまく動いています。 情報を下さった方には、この場を借りてお礼を申し上げます。ありがとうござ いました。 ---------------------------------------------------------------------- 荒井正純 広島大学 工学部 共通講座環境基礎学 arai@ocean.hiroshima-u.ac.jp
Copyright © 1999-2024 日本 Samba ユーザー会 (Samba-JP)
2011-12-19 01:17:50 JST 更新 |