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

[osx-users:0645] Re: curlのインストール



古暮でございます。

On 2003.Aug.17, at 22:10 Asia/Tokyo, Takashi Nakamura wrote:
>  そういえば、昔finkをインストールしていた時に、dlcompatっていう名前を見たことがあります。いったい何なのかなぁって、不思議に思っ > ていたことを思い出しました。これって、このためのものだったんですね。

はい,これはこれの為の物です。
# 何だか判るような判らないような会話ですが ;-)

>  ただ、make testのfailは、相変わらずでしたが(? ?)

うーん,解析して patch 作って,DarwinPorts や Fink なんかと,上流
の Curl project に投げて下さると,みんなが幸せになるんですが :-)

Darwin/Mac OS X への移植作業において dynamic loadable module 関
連で起こる問題はもう一つあります。今回の問題と絡むかどうかは判りませ
んが,日本語で書かれた解説を見かけた事がないのでお知らせしておきます。
# こちらは一筋縄ではいかないんですが……

Unix 系 platform で尤も一般的に使われている ABI は elf 系ですが,
これらでは shared library と dynamic loadable module に差があり
ません。一方 Darwin/Mac OS X の場合この二つは別扱いです。例えば
-dynamiclib を指定して作った shared library を dlopen しようとす
ると error になります。

問題は大抵の project が elf 系を第一 target にしている為,両者の区
別をせずに build system が組まれている事が多い点です。具体的には
Makefile の中で,両者を構築する target が一つで済まされている事が多
いのです。これは project の中で shared library か dlopen'ed
module のみを使っている場合は問題にならないのですが,両者とも使って
いる project では,build system そのものに手を入れてやる必要が出て
きます。

このような場合基本方針は,それぞれの構築 rule を別に作って各々の
module がどちらとして使われるかを区別し,適切な rule が適用されるよ
うに調整する事です。例えば現在私が作業している PostgreSQL がこれに当
たります。現在でも一応 DarwinPorts に PostgreSQL はあるのですが,こ
れは全てを shared library として扱ってしまっている為,PL/pgSQL なん
かが動きません。この所為で regression test も失敗してしまいます。こ
ういった物をきちんと動かす為には,上記のような作業を行う必要があります。

これより面倒な物として,一つの shared object を shared library と
しても dlopen'ed module としても使っている場合があります。KDE 関連
がこれに当たり,移植作業も複雑になります。こういった物は非常に稀だと
は思いますので,出会う事は余りないとは思いますが……

以上,ご参考まで。


--[PR]------------------------------------------------------------------
★   ┓┏┓┏┓┏┓┳━┏┳┓                  ★
★賞金は┃┃┃┃┃┃┃┣┓┣┻┫ プレゼントは液晶TV『AQUOS』★
★   ┻┗┛┗┛┗┛┛┛┛ ┛。&その場で5000円のチャンス付 ★
★      (毎日受付中)                     ★
★応募翌朝発表⇒ http://ad.freeml.com/cgi-bin/ad.cgi?id=cdz7Z    ★
------------------------------------------------------------------[PR]--
<GMO GROUP> Global Media Online www.gmo.jp