2001/10/12 Finally Moved to MacOS X Release 10.1
ようやく2日ほど前に MacOS X 10.1 に移行した。アップデータがちっとも来ないので
ついにしびれをきらして買ってしまったのである。
10.0.X のバイナリーは基本的にそのまま使えるようであるが、
リンカーのデフォールトが -twolevel_namespace になってしまったので、
今までのように共有ライブラリーやバンドルを作る際に "-undefined suppress"
だけだと怒られる。
two-level namespace だと、実行形式にリンクされた共有ライブラリーの
名前だけでなく、それからロードすべきシンボル名も書かれる。
その結果、異なる共有ライブラリーに同じ名前のシンボルが含まれることを
許せる点で進歩であるが、代償として undefined symbol が許されなく
なるわけである。
"-undefined error"(これがデフォールトなので書かなくても良い)と
して two-level namespace の恩恵にあずかるか、あるいは
"-flat_namespace -undefined suppress" として昔のライブラリー名だけの
形式を用いるかどちらかで対処する。
今後のことを考えて、ほとんどのパッケージを two-leve namespace 形式で
再コンパイルした。
このために、/usr/share/libtool と /usr/X11/lib/X11/config/darwinLib.rules
にパッチをあてた。
また、g77 は、gcc を 10.1 で使われているバージョン(932.1-6)の
ソースを使って作りなおした。
HEP on X ページ(英語)もこれに合わせて更新、移動した。
新しいページは
http://www-jlc.kek.jp/~fujiik/macosx/10.1.X/
である。
詳細はそちらを参照のこと。
それともう一つ気づいたこと。"cout << ... << flush;" が効くようになった。
今までにコンパイルしたMacOS X Release 10.1.X 用の rpm については、
spec ファイル、パッチ、ソース RPM、バイナリー RPM それぞれについて
SPECS、
SOURCES、
SRPMS、
RPMS
に対応するものが置いてある。RPMS 以下の ppc はマシン依存な RPM 、noarch
はマシン非依存な RPM の置き場所である。バイナリーのみの RPM および Tar
Ball のみのパッケージの場合には、ソースおよびパッチは
src
に、また、Tar Ball は tgz
にそれぞれ置いてある。新しいものは ~fujiik/macosx/10.1.X/ 以下にある点に注意(~fujiik/macosx
直下のものは Public Beta 用、~fujiik/macosx/10.0.X/ 以下は 10.0.X 用の古いもの)。
いつものように使う場合は自己責任で。
Back
to Keisuke Fujii's MkLinux/LinuxPPC Life