2010年3月22日

[pgsql-jp: 40233] Re:8.4.3 リンクエラー

使っていたheimdalのバージョンが1.2だったのですが、
1.3.2をインストールすると、問題なくpostgresql-8.4.3が
メイクできるようになりました。

=くわむら

2010/3/22 jun kuwamura <kuwamura.jun@xxxxx>:
> ありがとうございます。

>
> --with-krb5 をはずすとうまくゆきました。
> Plamo-4.72で使っているkerberos5( heimdal )のライブラリ
> のいくつかにstrlcpyが含まれていました。
>
> おさわがせしましたmOm
>
> =くわむら
>
> 2010/3/22 Hiroki Kataoka <kataoka@xxxxx>:
>> 片岡です。
>>
>> configure時に「strlcpyが定義されているかどうかチェック中…あった/ない」ってな意味のメッセージが出たと思いますが、それがどう出ていたか再確認した方がよろしいかと。
>>
>> 2010年3月22日15:05 jun kuwamura <kuwamura.jun@xxxxx>:
>>> ありがとうございます。
>>> ちなみに、Plamo-4.72 なのですが、Plamo-4.71のとき
>>> には問題なくできてました。
>>>
>>> とりあえず、ひかかったところで、
>>> #define strlcpy strncpy
>>> としてみたのですが、ecpg以外でも起きていたので、
>>> configure時に内部実装のstrlcpyを使うように強制する
>>> 指定オプションはないかなあと。
>>>
>>> =桑村
>>>
>>> 2010/3/22 Tatsuo Ishii <ishii@xxxxx>:
>>>> 石井です。
>>>>
>>>>> [snaga@xxxxx ecpg]$ ls -l ecpglib/strlcpy.*
>>>>> lrwxrwxrwx 1 snaga snaga 30 Mar 22 13:33 ecpglib/strlcpy.c -> ../../../../src/port/strlcpy.c
>>>>> -rw-rw-r-- 1 snaga snaga 767 Mar 22 13:33 ecpglib/strlcpy.o
>>>>> [snaga@xxxxx ecpg]$
>>>>>
>>>>> ecpgをmakeした後は、こんな感じになってます。
>>>>>
>>>>> つまりは、PostgreSQLが内部で持っているstrlcpyの実装を使うはず、
>>>>> ということです。
>>>>
>>>> そうですね。
>>>>
>>>>> On 2010/03/22 13:35, Satoshi Nagayasu wrote:
>>>>> > 永安です。
>>>>> >
>>>>> >> postgresql-8.4.3 を make しようとしたのですが、ecpg で
>>>>> >> strlcpy が未定義でリンクエラーとなってしまいました。
>>>>> >
>>>>> > ソース読むと分かりますが、strlcpyはecpgのライブラリlibecpgに
>>>>> > ソースごと含まれていますので、外部のライブラリには依存せずに
>>>>> > 使えるはずです。
>>>>> >
>>>>> > [snaga@xxxxx ecpg]$ ls ecpglib/
>>>>> > blibecpgdll.def descriptor.c exports.txt libecpgdll.def misc.c po
>>>>> > connect.c error.c extern.h Makefile nls.mk prepare.c
>>>>> > data.c execute.c libecpgddll.def memory.c pg_type.h typename.c
>>>>> > [snaga@xxxxx ecpg]$
>>>>> >
>>>>> > なので、リンクエラーの原因は、おそらくコンパイル時の
>>>>> > 不具合のように思います。
>>>>> > エラー内容や環境が分からないので何とも言えませんが。
>>>>> >
>>>>> > ちなみに、私の手元では8.4.3のecpgはビルドできてます(RHEL5.4)。
>>>>> >
>>>>> >> Date: Mon, 22 Mar 2010 01:27:25 +0900
>>>>> >> From: jun kuwamura<kuwamura.jun@xxxxx>
>>>>> >> To: PostgreSQL Japanese Mailing List<pgsql-jp@xxxxx>
>>>>> >> Subject: [pgsql-jp: 40225] 8.4.3 リンクエラー
>>>>> >> Message-ID:
>>>>> >> <3435af911003210927v33397dbfjeabbab65a5c1d18f@xxxxx>
>>>>> >> Content-Type: text/plain; charset=ISO-2022-JP
>>>>> >>
>>>>> >> postgresql-8.4.3 を make しようとしたのですが、ecpg で
>>>>> >> strlcpy が未定義でリンクエラーとなってしまいました。
>>>>> >>
>>>>> >> configure のオプションあるいはその他の方法(その都度
>>>>> >> strncpyに変更はしたくない)で使わないようにするには
>>>>> >> どうすれrばよいですか?
>>>>
>>>> strncpyとstrlcpyは動作が異なります。strlcpyをstrncpyで機械的に置き換え
>>>> ても、最悪segfalutで落ちてしまう可能性があります。正攻法でビルドの問題
>>>> を解決した方が良いのでは。
>>>>
>>>> ちなみに、手元のVine Linux 4.2では問題なくビルドできてます。
>>>> --
>>>> Tatsuo Ishii
>>>> SRA OSS, Inc. Japan
>>>> English: http://www.sraoss.co.jp/index_en.php
>>>> Japanese: http://www.sraoss.co.jp
>>>>
>>>
>>>
>>>
>>> --
>>> Jun Kuwamura
>>> rC Cn
>>> ^
>>> ~
>>>
>>>
>>
>>
>>
>> --
>> Hiroki Kataoka
>>
>
>
>
> --
> Jun Kuwamura
> rC Cn
> ^
> ~
>

--
Jun Kuwamura
rC Cn
^
~


投稿者 xml-rpc : 2010年3月22日 21:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/94351
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。