2009-01-01から1年間の記事一覧

two-level namespaceの確認

ライブラリがtwo-level namepsaceで作成されているか否かの確認方法です。 1. -flat_namespace,-twolevel_namespaceで作り分けて、otoolでライブラリの確認してみます。 % touch x.c % cc -c -fno-common x.c % cc -dynamiclib -o libxf.dylib -Wl,-flat_nam…

two-level namespaceについて

いまさらですが、簡単にまとまっているページがなかったので書いてみました。 一言でいうなら、 「two-level namespace」で作成されたものは、作成時に使ったイメージの状態で名前解決をするのであって、実行時のイメージの状態で名前解決をするものではない…

libtoolで共有ライブラリを作成してハマったこと

自分はpkgsrcを使ってGNU Libtoolをインストールして使っています。 libtoolのバージョンが幾つからかは把握していませんが、共有ライブラリを作成する際、リンカに「-single_module」オプションが渡されるようになりました。明示的に-single_moduleが指定さ…

Mac OS Xでのパッケージコレクション

QpidのC++実装を読んでいますが、Pollerの実装に必要なところまでは理解が進んでいません。 そんなわけで、Qpidの話は一休みして、Mac OS Xでのパッケージコレクションについて。 世の中的には、FinkかMacPortsを使っている人が多いみたいですね。 自分はNet…

自前ビルドしたQpidの実行というかデバッグ

無事にビルドしてインストールができると、$prefix/sbinにqpiddという名前でインストールされています。 えいやと実行してみるとあえなく撃沈です。 % /usr/local/sbin/qpidd dyld: Symbol not found: __ZTIN4qpid3sys12PollerHandleE Referenced from: /usr…

boostのライブラリに関して、不足しているsymbolic linkを補う

boostをインストールした直後では、必要なsymbolic linkが不足しているので補います。 boost/config/auto_link.hppに説明がありますが、 ツールセット名, スレッドサポートの有無, runtimeの状態、そしてバージョン番号が埋め込まれた名前でライブラリが生成…

必要なものが揃ったので、Qpidのビルド

Mac OS Xの10.4.11で、アーキテクチャはppcです。 1. Qpid-0.5の取得 http://www.apache.org/dist/qpid/0.5/から全部入りのqpid-0.5.tar.gzを取得して、展開します。 C++実装にしか興味がない人は、http://www.apache.org/dist/qpid/0.5/qpid-cpp-0.5.tar.gz…

Mac OS XでのSTLport-5.2.1のビルド

1. GNU findutilsのインストール GNU findutilsのfindに固有の機能がMakefileで利用されているので、事前にインストールしておきます。 面倒くさいのならば、build/Makefiles/gmake/unix/rules-install-so.makの該当箇所を削除するのでもOKです。 2. STLport…

Mac OS Xでboost 1.39のビルド

1. boost_1_39_0.tar.bz2の取得と展開 http://www.boost.org/から取得して、展開します。 1.40がリリースされていますが、分かっていないことが色々とあるので1.39を利用します。 2. で、project-config.jamの生成です ただし、いろいろとハマるものは除外し…

STLの実装として何を使っている人が多いんですかね?

QpidはC++で記述されていて、普通にSTLが利用されています。 自分はSTLの実装としてSTLportを利用しています。なぜかといえば、プラットフォームや処理系を問わず同じ実装を使えるからです。てなわけで、今回は使い慣れたSTLportの一番新しいSTLport-5.2.1を…

Mac OS X 10.4.11でのビルドの試み

__threadを利用している部分を自前で__pthread_{set,get}specific()で書き下すことも考えましたが、いろいろと調べるために、とりあえず__threadをサポートしているgccを用意してみることにしました。 巷ではSnow Leopardがリリースされていますが、一番使い…

Mac OS X 10.{4,5}では簡単にビルドできない

http://qpid.apache.org/の「Operating Systems and Platforms:」にある通り、C++の実装ではMac OS Xはサポート対象となっていません。ただし、なぜサポート対象のプラットフォームではないのかは記載がありません。 そこで、C++のクライアント側を調べつつ…

Apache QpidのRelease 0.5

AMQP(Advanced Message Queuing Protocol)の一実装であるApache Qpidの0.5がリリースされているのに、今更ながらに気がつきました。 以前のリリースであるM4のbroker側をザックリと眺めていただけなので、仕切り直しです。興味があるのはC++とJavaの実装で、…