2001/02/27    libX3d and libRGL of ROOT on MacOS X

2月14日に腰椎を圧迫骨折してしまいしばらく寝たきりになっていたが(何でそうなったかは想像におまかせします)、ようやく病院のベッドの上で計算機をいじれるようになった。ネットワークにはつなげないがしばらくローカルで仕事することに。はじめは3週間は絶対安静ということだったが、回復が1週間ほど早いらしくどうもそろそろ立ってもよくなりそうである。激しい運動は夏まではお預けである。
というわけで仕事を始めてみると、X3d と RGL が動かない。どちらも、基本的には X11 のライブラリーが共有ライブラリーになれば起こらなかった問題。以下は作業記録。

[1] X3d

Undefined reference to XMaxRequestSize which is contained in libX11.a. This should be fixed by moving to dynamic versions of XFree86.

As a temporary remedy, recreated libX3d.so with -lX11:

$ g++ -O -bundle -undefined suppress -o libX3d.so libX3d.dylib -L/usr/X11R6/lib -lX11
However, X3d still abended. Found that x3d patch had been targeted to __linux__.  Added __APPLE__ to the targets and recreated libX3d.dylib and libX3d.so.
 

[2] RGL

Replaced libGL.a, libGLU.a, and libglut.a by those of Mesa-3.2.1 and recreated libRGL.so with -lXext -lX11:
$ su
# tar -zxvf <somewhere>/mesa-darwin-bin.tar.gz -C /
# exit
$ cd <source directory of root>/lib
$ g++ -O -bundle -undefined suppress -o libRGL.so libRGL.dylib -L/usr/X11R6/lib -lXext -lX11
This must be unnecessary when a dylib version of XFree86 becomes available.
 

今までにコンパイルしたもののソースおよびパッチは macosx/src に、またバイナリーの tar ball は macosx/tgz または macosx/darwin.tgz にそれぞれ置いてある。いつものように使う場合は自己責任で。
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life