Xref: sunflower.dis.tech.elec.nasw.mhi.co.jp fj.sys.sun:5937 Path: sgbgw!sysgw.sys.hq.mhi.co.jp!nf2.iij.ad.jp!news.iij.ad.jp!tuucp1.space.ad.jp!nuucp1.space.ad.jp!ouucp1.space.ad.jp!news.momiji.or.jp!news.hek.co.jp!news.csi.ad.jp!wnoc-kyo-news!hakozaki.karrn!kyu-cs!inunaki.csce.kyushu-u!newssvr!sano From: sano@csce.kyushu-u.ac.jp (SANO Fumihiko) Newsgroups: fj.sys.sun Subject: Re: Help! fj.sys.sun-FAQ update (Re: [Q] gcc option) Date: 22 Aug 1996 22:58:30 GMT Organization: Dept. of Comp. Sci. and Comm. Eng., Kyushu Univ., Fukuoka, Japan. Lines: 318 Message-ID: References: <3212FBED.6456@tamagawa.ac.jp> <3213DEBF.1E40@tamagawa.ac.jp> <4v1o62$be2@daikoku.three-a.co.jp> NNTP-Posting-Host: hegemony.csce.kyushu-u.ac.jp In-reply-to: asada@three-a.co.jp's message of 16 Aug 1996 12:05:22 GMT 佐野@九大です。 記事が届くまでに1週間近くかかっている...。 In article <4v1o62$be2@daikoku.three-a.co.jp> asada@three-a.co.jp (Takuya ASADA) writes: あさださん> > …というのはまぁ冗談として、いいかげん化石になってしまった > fj.sys.sun の FAQ LIST を、更新しなければと常々思っているの > ですが、なかなか時間が取れませんです。 そうですね。いわれてみると、fj.sys.sunのFAQも二年近く更新されて いないことになりますね。 > 興味とガッツ、ちょっとした時間のある方は、ゼヒとも協力して > 頂けませんでしょうか? 興味はあるけど、ぜんぜん時間がないのが難です。万人に役立つFAQをま とめてくれることを他力本願に望んでいるのですが...。 多少は貢献してみようということで、とりあえず、Solaris2.5導入から の半年間で fj.sys.sunで二回以上見かけた覚えがあり、かつ興味があっ たもの、プラス研究室内で聞かれたことのあるものを記憶に基づいてダ ラダラと書いてみました。ただし、出典の方を忘れている上にウソや間 違いも沢山混じっているはずです。 ちなみに、私はSolaris2.0〜2.4には触ったことがありませんので、その あたりの変遷についても全然知りません。 これ以外にもMuleのパッチ情報やPPPの導入などがあるといいなと思うの ですが、忘却の彼方です。 ------------------------------------------------------------------ X11, OpenWindowsに関する質問 + CreatorやCreator3DでX11R6が動かない。 + OpenWindowsのクライアントが、Xのライブラリが無いといわれ実行できません。 + gs262をコンパイルするときに共有ライブラリ不足のエラーが出ます。 + CDEで、$HOME/.Xauthorityが勝手に変更されてしまうのですが。 + Solaris2.Xにはscreenblankがないそうですね。 + Solaris2.X + X11R6でktermを終了させるとwindowが残ってしまいます。 + Solaris2.X + X11R6でMuleを使うと、diredやshell-commandでハングアップします。 Solaris1.XからSolaris2.Xへの移行に関する質問。 + psやdfのオプションや動作が違って戸惑うのですが。 + manのオプションが違ったり、MANPATHを無視します。 + ツールのインストールでinstallコマンドがうまくいきません。 + BSD互換ライブラリは使えないのですか? + Solaris1.Xの /etc/rc や /etc/rc.local に当たるのはなんですか? + Solaris2.Xにはresolverをインストールする必要がありますか? アプリケーションに関する質問。 + Solaris2.Xでxnetloadが動かないのですが。 + Solaris2.X x86でtracerouteが動かないのですが。 + Solaris2.Xでxntpのtickadjが動かないのですが。 + Solaris2.XでMH-6.8.3-JPがコンパイルできません。 + Solaris2.Xでkterm-6.1.0のコンパイルがうまくいきません。 + Wnn4.2をコンパイルしたのですが、jserverの辞書読み込みに失敗します。 Solaris2.Xのgccに関する質問。 + gccのインストールはどうやればよいのでしょうか? + gcc-2.7.2のコンパイルがうまくいきません。 + gccを使うと -xF や -B/usr/bin のオプションでエラーが出ます。 ------------- X11, OpenWindowsに関する質問 --- CreatorやCreator3Dで、X11R6が動かないのでしょうか? X11R6やR6.1のサンプルサーバはこれらのframe bufferに対応していません。 昔のOpenWindowsの名残か、使い物にならない印象を持つ方も多いですが、 OpenWindows3.Xのサーバは、十分に使い物になります。また、X11R5ベースな のが不満とはいえ、CDEなどの旨味もあり、速度的にも不満ありません。 どうせ、一般ユーザはR5とR6の違いには気付きません。:- --- OpenWindowsのクライアントが、Xのライブラリが無いといわれ実行できません。 例えば、ktermでは以下のエラーが出て実行できません。 ld.so.1: kterm: fatal: libXaw.so.5: can't open file: errno=2 これは、リンクするXのライブラリを見つけられないことによるエラーです。 lddコマンドでロードされるライブラリを調べてみると、ライブラリの一部が、 (not found)と表示されるはずです。 Solaris2.XのOpenWindows環境では、以下の解決方法があります。 1.プログラムを実行する時に、$OPENWINHOME/lib への LD_LIBRARY_PATH を設定する。 2.環境変数 LD_RUN_PATH に $OPENWINHOME/lib を設定してからコンパイルする。 プログラムの実行時にロードされるデフォルトのライブラリを指定します。 これはopenwinのmanで説明してある方法です。 3.リンク時のオプションに -R/usr/openwin/lib を用いる。 LD_RUN_PATHを設定するのと同じ効果が得られます。gccを利用して いるならimakeの設定ファイルに以下の変更をお試し下さい。xmkmfで Makefileを作成するときに、自動的にオプションを付けてくれます。 CDEでは、-R/usr/dt/libを付けることもあるでしょう。 diff -c org/sun.cf sun.cf *** org/sun.cf Sat Sep 23 10:51:14 1995 --- sun.cf Fri Aug 23 04:09:57 1996 *************** *** 127,132 **** --- 127,133 ---- #if HasGcc #if HasGcc2 #define OptimizedCDebugFlags -O2 + #define ExtraLoadFlags -R/usr/openwin/lib #else #define SharedLibraryCcCmd cc #define ExtraLoadFlags -B/usr/bin/ --- gs262をコンパイルするときに共有ライブラリ不足のエラーが出ます。 これは、X11R5とX11R6でライブラリ構造の一部が変更されたのが原因です。 リンク時に -lSM -lICEを付ければ問題は解決します。また、Solaris2.Xで は - lnsl -lsocketも必要です。 --- CDEで、$HOME/.Xauthorityが勝手に変更されてしまうのですが。 CDEのdtloginでは、Xのサーバはrootの権限で動かされています。Xのサー バと実際の利用者が異なるために、authorizeの情報を利用者の .Xauthority に書き込む必要があります。rootの権限があるならば、/var/tmpにある authorize情報と見比べてみてください。認証のための同一の情報が書か れているはずです。 --- Solaris2.Xにはscreenblankがないそうですね。 標準では付いていませんが、Sunがftpで配布しています、最新版は screenblank_02jun95.tar.gzです。ただし、screenblankの利用では、以下 のような問題が希に(?)発生します。 1.consoleのloginプロンプトが出ている状態で、ASCII以外を突っ込む。 2.blankされるまで放っておく。 3.キー入力をしても画面が表示されず、入力も無視されることがある。 他の計算機からrloginして、writeコマンドなどでconsoleに出力を行うと 復帰します。 --- Solaris2.X + X11R6 でktermを終了させるとwindowが残ってしまいます。 Solaris2.4では X11R6のThreadedXがうまく動作しません。site.defに以下 の設定を加えて、X11R6の共有ライブラリを作り直してから、ktermを作って 下さい。 #define ThreadedX NO このバグは、X11R6.1やSolaris2.5では修正されているようです。 また、Solaris2.4で作成したktermをSolaris2.5で使った場合にも、同様の 症状が発生します。その時はktermを作り直して下さい。 --- Solaris2.X + X11R6でMuleを使うと、diredやshell-commandでハングアップします。 ktermの場合同様ThreadedXのバグです。muleのパッケージに含まれる FAQ-Mule.jpのB-14に情報があります。 ------------- Solaris1.XからSolaris2.Xへの移行に関する質問。 --- psやdfのオプションや動作が違って戸惑うのですが。 /usr/ucb にあるバイナリは Solaris1.Xと同様の動作をします。ただし、こ こに入っているバイナリはいささか古いのか、sedの動作など一部に問題が あります。したがって、/usr/ucb をPATHに含めない方が良いでしょう。使 いたいものだけを集めた別のディレクトリに用意しておいて、そちらにPATH を通すという手もあります。 --- manのオプションが違ったり、MANPATHを無視します。 セクションの指定は -s オプションを使用して下さい。また、windexデータ ベースが存在する場合、man.cfやMANPATHよりも優先されてしまいます。 MANPATHを優先したい場合には -F オプションを付けて下さい。 --- ツールのインストールでinstallコマンドがうまくいきません。 installコマンドに古いオプションしていが行われるならば、 /usr/ucb/installの方を使うように修正してみて下さい。 --- BSD互換ライブラリは使えないのですか? -lucb を付けてコンパイルするという奥の手がありますが、安全性や安定性 に難がありますので薦めません。可能ならばソースの方を修正しましょう。 --- Solaris1.Xの /etc/rc や /etc/rc.local に当たるのはなんですか? Solaris2.Xでは、/etc/rc[S0-6].d のスクリプトがそれに相当します。 [SK]nnといった名称で、数字の順番+nameの順番に実行されます。 Kはkill、Sはstartを意味します。書き方は、最初からあるスクリプトが 参考になるでしょう。実行順序についての注意は /etc/rc2.d/README を 参照しましょう。 --- Solaris2.Xにはresolverをインストールする必要がありますか? Solaris1.XではDNSを利用するには、resolverをインストールする必要が ありましたが、Solaris2.Xでは対応するようになりました。ただし、初 期設定ではDNSは参照しません。/etc/nsswitch.conf の書くエントリー で参照と順序を設定できますので、host: に dns を加えるとDNSを参照 するようになります。 ------------- アプリケーションに関する質問。 --- Solaris2.Xでxnetloadが動かないのですが。 Solaris2.Xでは、kernelイメージ/kernel/genunixから load averageを 直接読むことはできません。xnetloadがバージョンアップでloadを取得 できるようになるのを待つか、openwin付属のxloadをお使い下さい。 --- Solaris2.X x86でtracerouteが動かないのですが。 古いバージョンでは、little-endianとbig-endianの違いを考慮してないバ グがあります。intel系CPUはlittle-endianのためきちんと動作しません。 traceroute-951024やtraceroute-1.2を入手設定後、コンパイルして下さい。 --- Solaris2.Xでxntpのtickadjが動かないのですが。 Solaris2.Xではtickadjは不要です。kernelが対応していますので、 /etc/systemに set dosynctodr = 0と書いて、rebootして下さい。 --- Solaris2.XでMH-6.8.3-JPがコンパイルできません。 いくつかパッチが公開されていますが、mh-6.8.3+-jp2c+.patch.gzを用 いると楽です。gccを使ってコンパイルするならば、展開したディレクト リにあるMHの設定ファイルに option TYPESIG=void を付け加え、必要な 設定を行った後コンパイルして下さい。GNU makeを用いるとコンパイル に失敗しますので、必ず/usr/ccs/bin/makeでコンパイルして下さい。 --- Solaris2.Xでkterm-6.1.0のコンパイルがうまくいきません。 misc.cの gettimeosday()の引数がOSにより異なります。以下の 修正を行って下さい。 misc.c に #includeを加える。 X_GETTIMEOFDAY(&curtime)を修正。 Solaris2.4: gettimeofday(&curtime); Solaris2.5: gettimeofday(&curtime, NULL); また、OpenWindowsの場合、Makefileに以下の修正を行って下さい。 XAPPLOADDIR = $(OPENWINHOME)/lib/app-defaults $(OPENWINHOME)/lib/X11/app-defaults ではリソースが参照されません。 --- Wnn4.2をコンパイルしたのですが、jserverの辞書読み込みに失敗します。 Wnnは辞書をinodeでアクセスしますが、インストーラーのバグで、辞書の inodeが正しく設定されません。エラーを起こす辞書に対して、wnntouchを 行うことにより問題は解決します。 ------------- Solaris2.Xのgccに関する質問。 --- gccのインストールはどうやればよいのでしょうか? Solaris2.XではSolaris1.Xとは異なりコンパイラは標準添付されていません。 新しいgccをインストールするためには以下の方法があります。 1.gccのバイナリパッケージgcc-binaries-2.5.6をインストールする。 国内のftpサイトから手軽に入手できます。くれぐれもinclude file のfixを忘れないよう。また、海外のサイトならば、より新しいgccの バイナリを入手することも可能ですが、gcc-2.7.2をコンパイルする ならば、2.5.6のバイナリで十分です。 2.www.sun.comにあるSunのC4.0(Try&Buy版)を使う。include fileを fixし忘れて、はまる事はなくなります。 --- gcc-2.7.2のコンパイルがうまくいきません。 いくつか原因が考えられますが、よくある失敗例としては以下のものが 挙げられます。 1.他の計算機からgccをコピーしたが、include fileをコピーし忘れた。 または、CPUアーキテクチャが違うのを持ってきた(論外)。 2.gccのバイナリを入れるときにfix-includesをわすれていませんか? 3.gcc-2.7.2をコンパイルを途中で失敗した場合、次にコンパイルする前に make distcleanをするのを忘れていませんか? 4.PATHの設定は適切ですか? INSTALLに書いてあるように、Solaris2.X では、/usr/ccs/binにあるlinkerを使う必要があります。/usr/ucb が 検索PATHの先の方に入っていませんか? --- gccを使うと -xF や -B/usr/bin のオプションでエラーが出ます。 gccをインストールしたときに、$OPENWINHOME/lib/config/site.defに、 #define HasGcc YES #define HasGcc2 YES の設定がされていない場合によく見受けられます。設定を確認しましょう。 このエラーはgccとSunのCのオプションの違いにより発生します。 SunのCでは-xFはパフォーマンス評価を行うためのDEBUGオプションです。 ところが、gccでは、-x はソースの言語を陽に指定するオプションです。 つまり、-xFは謎のF言語という指定をしていることになり、エラーとな ります。 -- おまけ --- SunOS4.XとSunOS5.Xのバイナリ互換性は? 究極の目標は完全互換らしいです。Sunはダイナミックリンクライブラリに 黒魔術を用いることにより高度な互換性を提供しています。 -- 九州大学大学院システム情報科学研究科情報工学専攻(三下) 佐野 文彦 (sano@csce.kyushu-u.ac.jp)