tamaño de fuente: + - prefijar
RSS 1.0
G a t a  D u r m i e n t e  -  d i a r i o
Volver al índice
Firefox :: Faster Safer Cuter
Say No to corrupt Audio CDs
三次元なんかに興味あるか、ばーか。

Tópicos Recientes

* まもなく移轉
當サイトはまもなく移轉します。

* みっくみく事件の決着
驚いた。ドワンゴが殆ど完全に折れる形で、しかもこんなに早く決着が付くとは思はなかった。こんな結末になるとは夢にも思はなかった。

* Quốc ngữ と日本語
ベトナム語は六つの聲調を持つ言語であるが、現在それを表記する爲に用ゐられてゐる Quốc ngữ ではその六声調を書き分ける事が出來るらしい。

* 自然物と信仰/生體機械としての人間/初音ミク/オープンソース戰爭
みっくみくが JASRAC された件には非常にもやもやとさせられる。だから出來るだけ消化しようと試みた。Every man thinketh his burden is the heaviest.

* HsHyperEstraier 0.1
HyperEstraier の Haskell 用バインディングである HsHyperEstraier を公開した。

Lee más...

_ jueves, 11 febrero 2005 GStreamer, Darwin, C++, Libtool
Cuenta Larga = 12.19.12.0.10; tzolkin = 7 Oc; haab = 13 Pax [Trackback Ping]

GStreamer, Darwin, C++, Libtool
 この四つを全て同時に使はうとすると、GStreamerがまともに動かない事で惱まされる事になる。一つでも欠ければ動く。

1. GStreamer
 GStreamerのモジュールは、それ自體が動的にリンクされるモジュールであるが、その内の幾つかは更に補助プラグインとして別の.soファイルをロードする(libgstaudio.so等)。また、モジュールから補助プラグインへのシンボルの參照は、dlsym(3)に依ってではなく、モジュールから直接に未定義シンボルとして參照する事で行はれる。GStreamerはモジュールをlazy bindingする爲、通常これは問題にならないが、Darwinのldオプション-bind_at_loadを指定して作られた實行ファイルからGStreamerを呼んだ場合、-bind_at_loadに依ってlazy bindingが禁止される故に、モジュールのロードに失敗する("how to remove plugin?"エラー)。

2. Darwin
 Darwinでは、.dylibまたは.bundle(.soと等価)がロードされた時、そのライブラリ内の全てのシンボルをロードするのではなく、實際に使はれた時に初めてロードする(lazy binding)。實際のロードの單位はシンボル單位ではなくモジュール(.o)單位であり、假にリンカに-single_moduleを渡して全ての.oが結合されたライブラリを作ったとすれば、そのライブラリ内の何れかの關數が最初に呼ばれた途端に、ライブラリ全體がロードされる(未確認)。

3. C++
 C++のグローバル變數(staticなものも含む)は、それが組込み型でない場合、すなはちコンストラクタが呼ばれる必要がある場合には、それらを含む實行ファイルまたはライブラリがロードされた直後にコンストラクタを呼ばなくてはならず、その爲のコードはコンパイラによって自動的に生成される。しかしDarwinでは、lazy bindingを禁止してゐない限り、動的にリンクされたライブラリに含まれるグローバル變數初期化ルーチンが呼ばれない(この邊りの詳細は不明)。

4. Libtool
 C++のグローバル變數問題を回避する爲に、Libtoolは實行ファイルをリンクする際、それがC++のオブジェクトであり、且つDarwin用のバイナリを作ってゐるならば、勝手に-bind_at_loadを指定してしまふ。

2002
   10 11 12
2003
   1 2 3 4 5 6 7 8 9 10 11 12
2004
   1 2 3 4 5 6 7 8 9 10 11 12
2005
   1 2 3 4 5 6 7 8 9 10 11 12
2006
   1 2 3 4 6 7 8 9 10 11 12
2007
   1 2 3 4 5 6 7 8 9 10 12
2008
   1 4

login