DG/ux のシステム付属の gcc については、言わなければならないことが多す ぎます。このコンパイラを使うと問題が起きるプログラムを全部押えようとす ると、きっと本が一冊できてしまいます(もちろん DG にとっては役立つでしょ うが)。 しかし筆者のすべきことは DG/ux のコンパイラのバグを直す類のことではな いし、DG の賢い人のために報告を集めることでは特にありません。 (DG へ: 仕事でやっている人には申し訳ないですが、筆者は純粋な数学者であ り、全ての作業は楽しむためにやっており、DG やその他から金をもらいたい わけでもなく、DG の就職しようと思っているわけでもありません。したがっ て、筆者は基本的には DG/ux のトラブルシューターではありません。しかし、 たぶん場合によっては、DG が手助けをしてくれるなら、筆者もお手伝いでき ることがあるかもしれません。)
筆者が行いたいのは X11 の構築です。以上が、BuildXtools に新しい gcc が 入っている理由です。この gcc は DG/ux R4.20MU02 用に作られています。 ですから、このバージョンまで DG/ux の OS のバージョンを上げる必要があ ります。しかし、この gcc は信頼できるので、X11 だけでなく他に欲しいも の全てを構築する際にも使えます。DG/ux の gcc を使ってはいけません。 これを使ったら、どんな問題に出会おうが筆者の知るところではありません。 この新しい gcc のインストールは以下の手順で行います:
cp -r /usr/local/gcc-dgux /usr/opt/sdk/sde/ix86dgux/usr/lib cd /usr/opt/sdk/sde/ix86dgux/usr/lib rm gcc ln -s gcc-dgux gcc (gcc--->gcc-dgux のリンクを設定します) cd /usr/local cp -r /usr/local/gcc-dgux /usr/sde/ix86dgux/usr/lib cd /usr/sde/ix86dgux/usr/lib rm gcc ln -s gcc-dgux gcc (gcc-->gcc-dgux のリンクを設定します)
DG/ux の古い gcc も使えるように、上の 2 つのリンクを gcc--<gcc-dgux から gcc-->gcc-2 に 変更します。これは以下のコマンドで行います(上の 2 つのディレクトリで実 行します):
rm gcc ln -s gcc-2 gcc
/usr/bin/gcc -v を実行すると使える gcc のバージョンが表示されます。こ のバージョンの X11 を正しく作るには、gcc は *必須* です。
動的ローディングサーバ: xc/config/cf/DGUX.cf を編集し、以下の項目を変更します:
#ifndef BuildDynamicLoading #define BuildDynamicLoading NO ---<YES. #endif
構築を行う時には、たくさんのエラーが表示されてサーバがコンパイルされな いことを覚えておいてください! これは動的リンカが新しく作られた R6 の libX の場所を知らないからです。したがって、(失敗したように見えた)構築 の後に以下のコマンドを実行してください:
make DESTDIR=ProjectRoot/lib install
(インストールの説明は後述します。ProjectRoot は前述の xc/config/cf/DGUX.cf ファイルを置くことにした場所です。)
全ての新しい libXR6 ライブラリはその場所にインストールされます (cd ProjectRoot/lib を行って確かめてください)。
ホームディレクトリに移動して、パス ProjectRoot/lib を LD_LIBRARY_PATH として宣言してください。これは(.profile で)以下のように設定します。
LD_LIBRARY_PATH=ProjectRoot/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
それからログインし直してください!
ここで、DGUX.cf で以下の項目を設定して XFree86-3.3.5 全体を 再構築します。
#define BuildDynamicLoading YES
今度は、XFree86-3.3.5 全体が正しく生成されるでしょう。