Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000465Vine Linux1 バグ公開2007-01-18 17:042007-11-19 09:51
anonymous 
 
不明 
完了却下 
4.0 
 
x86
xfs
0000465: OpenGLを利用したソフトの`driDispatchRemapTable' エラー
Vine3.2で問題無くコンパイルできたソフトが、Vine4.0でコンパイルできない状況にあります。
# ソフト名は、ADVENTUREシステムのAdvVisual1.0内のclientです。
エラーメッセージは以下のようなものです。
Mesaのバージョンは、6.5.2を利用しました。

....
ViewerController/ColorSelectionClass.o
ViewerController/ConvertRGB_HSBClass.o -L/usr/X11R6/lib
-lGLw -lOSMesa -lGLU -lGL -lXm -lXt -lX11 -lXext -lpthread
-lm
/usr/X11R6/lib/libOSMesa.so: undefined reference to
`driDispatchRemapTable'
collect2: ld returned 1 exit status
make[1]: *** [advvis] エラー 1

検索してみたところ、

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345753 [^]
http://lists.freebsd.org/pipermail/freebsd-x11/2006-January/002541.html [^]

で昨年の1月頃に似たような問題が出ていたようです。
エラーが出た方の環境が
> Kernel: Linux 2.6.14-2-686
> Versions of packages xlibosmesa4 depends on:
> ii libc6 2.3.5-9 GNU C
Library: Shared libraries an
> ii libxext6 6.9.0.dfsg.1-1 X Window
System miscellaneous exte
> ii xlibmesa-gl [libgl1] 6.9.0.dfsg.1-1 Mesa 3D
graphics library [X.Org]
であることから、たぶん、Vineで使用されているバージョンの XOrg であると思われます。

<まとめ>
VineLinux4.0を使用。
Mesa6.5.2をmake linux-x86でコンパイルし、インストールを行った。
AdvVisual1.0内のclientフォルダーのMakefileで、以下のように修正した。
    "CC = g++-2.95.3"
    "LIBS = -lGLw -lOSMesa -lGLU -lGL -lXm -lXt -lX11 -lXext -lpthread -lm"
makeを行うと、Vine3.2では問題無くコンパイルされるが、Vine4.0においては以下のエラーメッセージが出る。
    /usr/X11R6/lib/libOSMesa.so: undefined reference todriDispatchRemapTable'
設定されていません。
課題の履歴
2007-01-18 17:04anonymous新規課題
2007-01-29 01:25anonymousコメント追加: 0002349
2007-01-29 16:36anonymousコメント追加: 0002350
2007-01-30 00:21anonymousコメント追加: 0002351
2007-01-30 08:49anonymousコメント追加: 0002352
2007-01-30 11:03anonymousコメント追加: 0002353
2007-01-30 23:52anonymousコメント追加: 0002354
2007-02-01 14:52anonymousコメント追加: 0002355
2007-05-13 22:45kazutaka状態新規 => 完了
2007-05-13 22:45kazutaka解決状況不明 => 却下
2007-05-13 22:45kazutakaコメント追加: 0002356
2007-11-19 09:51anonymousパッケージXOrg => xfs
2007-11-19 09:51anonymousコメント追加: 0002357

コメント
(0002349)
anonymous   
2007-01-29 01:25   
> <まとめ>
> VineLinux4.0を使用。
> Mesa6.5.2をmake linux-x86でコンパイルし、インストールを行った。
> AdvVisual1.0内のclientフォルダーのMakefileで、以下のように修正した。
> "CC = g++-2.95.3"
> "LIBS = -lGLw -lOSMesa -lGLU -lGL -lXm -lXt -lX11 -lXext -lpthread -lm"
> makeを行うと、Vine3.2では問題無くコンパイルされるが、Vine4.0においては以
> 下のエラーメッセージが出る。
> /usr/X11R6/lib/libOSMesa.so: undefined reference todriDispatchRemapTable'

通りすがりの者です。

そもそもMesa6.5.2をmake install?した時点で、
Vine4.0の問題ではなくなっているような気がするんですが、
OpenGLだったら、XOrg-glとXOrg-gl-develパッケージを
インストールして使う訳にはいかないんでしょうか?
(0002350)
anonymous   
2007-01-29 16:36   
> そもそもMesa6.5.2をmake install?した時点で、
> Vine4.0の問題ではなくなっているような気がするんですが、
> OpenGLだったら、XOrg-glとXOrg-gl-develパッケージを
> インストールして使う訳にはいかないんでしょうか?

お返事していただき、ありがとうございます。

はじめは、パッケージに libOSMesa.so が入っているのを知らずにMesaをインストールしておりました。
最近、再インストールを行い、
XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果は同じでした。

お手数をお掛け致しますが、よろしくお願いいたします。

# その他にインストールしたパッケージは以下のものだったと記憶しております。
# gcc295, gcc295-c++, openMotif, openMotif-devel
# コンパイルを行ったファイルは、
http://adventure.q.t.u-tokyo.ac.jp/jp/ [^]
# の中の ADVENTURE_Visual というソフトです。
(0002351)
anonymous   
2007-01-30 00:21   
> XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
> のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果
> は同じでした。
>

そうですか…なるほど…
これを根本的に解決するのは難しそうですね。>識者の方

以下、私だったらこういうことを試してみるという程度のことを書きます。
もし実行される場合は自己責任でお願いします。

要するにVine3.2のXOrg-glパッケージに入っている
/usr/X11R6/lib/libOSMesa.so.4.0 では、
driDispatchRemapTable が、undefined symbolになってないから、
Vine3.2ではコンパイル出来たということらしいので、
XOrg-gl-6.8.2-0vl7.10.i386.rpm と、
XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm をダウンロードして、
 rpm -Uvh --oldpackage XOrg-gl-6.8.2-0vl7.10.i386.rpm XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm
で、コンパイルする時だけ古いパッケージをインストールしておいて、
コンパイルが成功したらapt-get update ; apt-get upgrade で元に戻す。
# たぶん戻せると思いますが、戻らなかったら同じように手動で^^;

Vine3.2の環境がもはや手元に無く、コンパイル出来ないとどうしても困る
のでしたら、試してみてはいかがでしょうか?
(0002352)
anonymous   
2007-01-30 08:49   
onoderaです。

> > XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
> > のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果
> > は同じでした。
>
> これを根本的に解決するのは難しそうですね。>識者の方

はい。ご理解していただきありがとうございます。

> 要するにVine3.2のXOrg-glパッケージに入っている
> /usr/X11R6/lib/libOSMesa.so.4.0 では、
> driDispatchRemapTable が、undefined symbolになってないから、
> Vine3.2ではコンパイル出来たということらしいので、
> XOrg-gl-6.8.2-0vl7.10.i386.rpm と、
> XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm をダウンロードして、
> rpm -Uvh --oldpackage XOrg-gl-6.8.2-0vl7.10.i386.rpm XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm
> で、コンパイルする時だけ古いパッケージをインストールしておいて、
> コンパイルが成功したらapt-get update ; apt-get upgrade で元に戻す。
> # たぶん戻せると思いますが、戻らなかったら同じように手動で^^;

助言していただき、とてもうれしく思います。
早速試してみようと思ったのですが、Vine3.2の環境はあるのでそちらでコンパイルしてみました。
# カーネルもXOrgもバージョンが異なるため、実行はできないものと考えていました。

試してみたのですがVine3.2でコンパイルしたものは、Vine4.0の環境で実行させると同じエラーメッセージがでるようです。
(0002353)
anonymous   
2007-01-30 11:03   
onoderaです。

> > > XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
> > > のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果
> > > は同じでした。
>
> > 要するにVine3.2のXOrg-glパッケージに入っている
> > /usr/X11R6/lib/libOSMesa.so.4.0 では、
> > driDispatchRemapTable が、undefined symbolになってないから、
> > Vine3.2ではコンパイル出来たということらしいので、
> > XOrg-gl-6.8.2-0vl7.10.i386.rpm と、...

私はXOrg6.9.0のバグと考えていたため、助言からXOrg6.8.2にすればよいのではないかと思いました。
それで、Vine3.2のSRCRPMから
   XOrg-6.8.2-0vl7.7.src.rpm
をいただき、
  # rpm --rebuild XOrg-6.8.2-0vl7.7.src.rpm
としてみたのですが、以下のエラーメッセージが出てしまいました。
お手数をお掛け致しておりますが、なにか助言をいただければと思います。

gcc -m32 -c -O2 -m32 -march=i386 -mcpu=i686 -pipe -fno-strict-aliasing -ansi -p
edantic -Wall -Wpointer-arith -Wundef -I../../../exports/include/X11 -
I../../../extras/Mesa/include -I../../../include/extensions -
I../../../lib/GL/glx -I../../../extras/Mesa/src/mesa/main -
I../../../extras/Mesa/src/mesa/glapi -I../../../extras/Mesa/src/mesa/
drivers/x11 -I../../../extras/Mesa/src/mesa/x86 -I../../
../programs/Xserver/hw/xfree86/os-support -I../../../extras/drm/sh
ared -I../../../programs/Xserver/GL/dri -I../../.. -I../../../export
s/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -
D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SO
URCE -D_GNU_SOURCE -DFUNC
PROTO=15 -DNARROWPROTO -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DGLXEXT -D
XF86DRI -DGLX_DIRECT_RENDERING -DGLX_USE_DLOPEN -DGLX_USE_MESA -DXF86VIDMODE
       -DDEFAULT_DRIVER_DIR=\"/usr/X11R6/lib/modules/dri\" -DUSE_X86_ASM
       -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API clientattrib.c
In file included from ../../../extras/drm/shared/drm.h:41,
                 from ../../../programs/Xserver/hw/xfree86/os-support/xf86drm.h:
39,
                 from ../../../extras/Mesa/include/GL/internal/dri_interface.h:4
8,
                 from glxclient.h:82,
                 from clientattrib.c:39:
/usr/include/linux/config.h:1:2: #error "Compilation aborted. Please read the FA
Q for linux-libc-headers package."
/usr/include/linux/config.h:2:2: #error "(can be found at http://ep09.pld-linux. [^]
org/~mmazur/linux-libc-headers/doc/)"
make[5]: *** [clientattrib.o] Error 1
make[5]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc/lib/GL/glx'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc/lib/GL'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc/lib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc'
make[1]: *** [World] Error 2
make[1]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc'
make: *** [World] Error 2
make: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc'
エラー: /var/tmp/rpm-tmp.67064 の不正な終了ステータス (%build)
(0002354)
anonymous   
2007-01-30 23:52   
> 私はXOrg6.9.0のバグと考えていたため、助言からXOrg6.8.2にすればよいのでは
> ないかと思いました。
> それで、Vine3.2のSRCRPMから
>    XOrg-6.8.2-0vl7.7.src.rpm
> をいただき、
>   # rpm --rebuild XOrg-6.8.2-0vl7.7.src.rpm
> としてみたのですが、以下のエラーメッセージが出てしまいました。
> お手数をお掛け致しておりますが、なにか助言をいただければと思います。
>

> In file included from ../../../extras/drm/shared/drm.h:41,
> from ../../../programs/Xserver/hw/xfree86/os-support/xf86drm.h:39,
...
> from clientattrib.c:39:
> /usr/include/linux/config.h:1:2: #error "Compilation aborted. Please
> read the FAQ for linux-libc-headers package."
> /usr/include/linux/config.h:2:2: #error "(can be found at http://ep09.pld-linux.org/~mmazur/linux-libc-headers/doc/ [^])"
> make[5]: *** [clientattrib.o] Error 1

もう試せることはほとんど試されているようで私が助言出来そうなことも
あまり無いようですね。このエラーメッセージもよくわかりませんが、
extras/drm/shared/drm.h の中でlinux/config.hが宣言されていて、
それがエラーになっているっぽいですね。
linux/config.hは、glibc-kernheadersパッケージに入っているので、
glibc-kernheadersパッケージはインストールされていますか?
# もしかしたらパッチが必要なのかも。XOrg-6.9.0-0vl23.src.rpmには、
# linux/config.hの宣言を削除するパッチが入っています。

それとVine3.2の最新のXOrgソースパッケージは、たぶん、
XOrg-6.8.2-0vl7.10.src.rpmです。updates以下にあります。


それはそれとして、XOrgをビルドし直すのも大変そうなので、

 http://dri.freedesktop.org/snapshots/ [^]

↑ここにあるdriモジュールとdrmカーネルモジュールとドライバーのセットは
どうでしょうか?
お使いになられているビデオチップ用のソースをダウンロードして、
例えば、mach64-20060403-linux.i386.tar.bz2 だとして、
展開したmach64-20060403-linux.i386/の中にinstall.shがあって、
rootで、./install.sh を実行してENTERしていくだけで、
/usr/X11R6/lib/modules/dri/mach64_dri.so
/usr/X11R6/lib/modules/drivers/ati_drv.so
/usr/X11R6/lib/modules/drivers/atimisc_drv.so
/lib/modules/2.6.16-0vl66/kernel/drivers/char/drm/drm.ko
/lib/modules/2.6.16-0vl66/kernel/drivers/char/drm/mach64.ko
がインストールされます。
古いモジュールは頭にdri-old.が付いて残されているので、
うまくいかなくても元に戻せます。

インストールして、うまくXが立ち上がれば、
driモジュールの中に、driDispatchRemapTableのシンボルがあるので、
実行バイナリを例えば、
 LD_PRELOAD=/usr/X11R6/lib/modules/dri/mach64_dri.so /usr/local/bin/XXXXX
のように起動出来るようになると思います。
ただ、正常に動作するかどうかはやってみないとわかりません。
たぶん、リンクも、
LD_PRELOAD=/usr/X11R6/lib/modules/dri/mach64_dri.so gcc ...
のようにやれば、エラーにならない筈です。

試す場合は、とりあえずstartxで起動するようにして、うまくいったら、
ディスプレイマネージャーに切り替えるようにした方が良いです。
もうすでに試されていたら、ごめんなさい。ではでは。
(0002355)
anonymous   
2007-02-01 14:52   
onoderaです。

> extras/drm/shared/drm.h の中でlinux/config.hが宣言されていて、
> それがエラーになっているっぽいですね。
> linux/config.hは、glibc-kernheadersパッケージに入っているので、
> glibc-kernheadersパッケージはインストールされていますか?
> # もしかしたらパッチが必要なのかも。XOrg-6.9.0-0vl23.src.rpmには、
> # linux/config.hの宣言を削除するパッチが入っています。
はい、glibc-kernheadersパッケージはインストールされていました。
パッチ、ですか。Synapticで「全てアップグレード」はしてみましたが、結果は同じでした。

> それとVine3.2の最新のXOrgソースパッケージは、たぶん、
> XOrg-6.8.2-0vl7.10.src.rpmです。updates以下にあります。
情報ありがとうございます。
でも、これも同じエラーがでるようです...。

> それはそれとして、XOrgをビルドし直すのも大変そうなので、
> http://dri.freedesktop.org/snapshots/ [^]
> ↑ここにあるdriモジュールとdrmカーネルモジュールとドライバーのセットは...
DRIですが、特にこれといったチップはないと思うので(VESAで設定されています)、
commonをダウンロードしてみました。
commonだからでしょうか、Xが起動しなくなってしまうようです。

いろいろと情報を提供していただきありがとうございました。
(0002356)
kazutaka   
2007-05-13 22:45   
残念ながら良い対処方法が見付かっていません
が、その後他の方からのリプライも付いていま
せんので、却下としておきます。

ハラダ
(0002357)
anonymous   
2007-11-19 09:51   
onodera です。

xfsを起動させることによって 回避できることが分かりました。

# /sbin/chkconfig xfs on
としたあと、再起動を行いました。

いろいろな情報をいただき ありがとうございました。