[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:14519] Re: undefined reference to `atexit'



こじま@「歌のアルバム〜帝都編・巴里編〜」なる CD を買ってみたけど、紅
蘭の曲が無くて残念、、です。

# avex mode から出てるから CCCD かと思ったけど、普通の CD みたいで、
# grip で問題なく ripping できた模様。freedb な DB にも既に登録されていた。。。

From: Kazutoshi Kobayashi <kobayasi@ieee.org>
Subject: [plamo:14517] Re: undefined reference to `atexit'
Date: Wed, 03 Jul 2002 12:39:57 +0900

>   昨日ダウンロードしてCDに焼きましたので, 古くはないと思います. 再生し
> ようとしているのが, Star Warsなのがいけないのでしょうか? もう1枚別の
> DVDでも試してみます. 

うーむ、、Star Wars っていかにも crypt 回りに凝ってそうな気がしますね。。

xine と ogle をイジってみた印象ですが、xine はもともと mpeg2 ファイル
のプレイヤーが進化して DVD も再生できるようになったような感じで、mpeg2 
なファイルの再生回りには強いけど、DVD 回り(CSS や index のコントロール) 
には弱い気がします。一方、ogle は最初から DVD player として開発された
ようで、UI のデザインはイマイチだけど DVD 回りには強いような感じですね。

>   ogleですが, 下記のパッチをあてるとうまくコンパイルでき, 一応, 再生で
> きたようです.  ただし, 今日は環境がリモートなので, 音が出るまではわか
> りません.
> 
> > うーんと、これは私もなぜこうなるのかは理解できてないんですが、以下のよ
> > うなパッチをあてれば configure は通るようです。

まぁ、Open Source なシステムを扱っていて、こういう black magic 的な答
は恥ずかしいので、私が理解している範囲を書いておきます。

# 間違ってたら遠慮なく訂正してね ;-)

・glibc-2.2.x (多分 x >= 3 )で atexit のコードは /usr/lib/libc_nonshared.a に移された

・/usr/lib/libc_nonshared.a は /usr/lib/libc.so 経由でリンクされる

・glibc-2.2.x に付属のライブラリをリンクする場合、/usr/lib/libc.so は
  自動的にリンクされるため、/usr/lib/libc_nonshared.a もリンクされ、
  atexit が存在しない旨のエラーは発生しない。

・configure スクリプトでは、コンパイル/リンクに最低限必要なコードしか
  試さないから必ずしも glibc-2.2.x 付属のライブラリを必要としないため、
  /usr/lib/libc.so が呼ばれず、/usr/lib/libc_nonshared.a がリンクされ
  ない場合もある。この場合、atexit が存在しない旨のエラーになる。

・しかしながら、実際のプログラムでは glibc-2.2.x 付属のライブラリ(それ
  こそ libc.so.6)を使わないことはありえないから、atexit 問題は発生しない。

・∴ とりあえず configure スクリプトを通してしまえば本体のコンパイルに
  は問題はない。

・先のパッチはその例として、 -lm を付けて libm.so を使わせて 
  /usr/lib/libc.so + /usr/lib/libc_nonshared.a をリンクさせるもの

ということです。だから -lm の代りに -lc でも大丈夫だと思うんですけどね。

-------
こじま

Follow-Ups
[plamo:14520] Re: undefined reference to `atexit', KOJIMA Mitsuhiro
[plamo:14531] Re: undefined reference to `atexit', Kazutoshi Kobayashi
References
[plamo:14508] undefined reference to `atexit', Kazutoshi Kobayashi
[plamo:14509] Re: undefined reference to `atexit', KOJIMA Mitsuhiro
[plamo:14517] Re: undefined reference to `atexit', Kazutoshi Kobayashi

[検索ページ] [メール一覧]
Plamo ML 公開システム