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

jun kuwamura kuwamura.jun @ gmail.com
2010年 3月 22日 (月) 15:32:07 JST


ありがとうございます。

--with-krb5 をはずすとうまくゆきました。
Plamo-4.72で使っているkerberos5( heimdal )のライブラリ
のいくつかにstrlcpyが含まれていました。

おさわがせしましたmOm

=くわむら

2010/3/22 Hiroki Kataoka <kataoka @ interwiz.jp>:
> 片岡です。
>
> configure時に「strlcpyが定義されているかどうかチェック中…あった/ない」ってな意味のメッセージが出たと思いますが、それがどう出ていたか再確認した方がよろしいかと。
>
> 2010年3月22日15:05 jun kuwamura <kuwamura.jun @ gmail.com>:
>> ありがとうございます。
>> ちなみに、Plamo-4.72 なのですが、Plamo-4.71のとき
>> には問題なくできてました。
>>
>> とりあえず、ひかかったところで、
>> #define strlcpy strncpy
>> としてみたのですが、ecpg以外でも起きていたので、
>> configure時に内部実装のstrlcpyを使うように強制する
>> 指定オプションはないかなあと。
>>
>> =桑村
>>
>> 2010/3/22 Tatsuo Ishii <ishii @ sraoss.co.jp>:
>>> 石井です。
>>>
>>>> [snaga @ devpg01 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 @ devpg01 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 @ devpg01 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 @ devpg01 ecpg]$
>>>> >
>>>> > なので、リンクエラーの原因は、おそらくコンパイル時の
>>>> > 不具合のように思います。
>>>> > エラー内容や環境が分からないので何とも言えませんが。
>>>> >
>>>> > ちなみに、私の手元では8.4.3のecpgはビルドできてます(RHEL5.4)。
>>>> >
>>>> >> Date: Mon, 22 Mar 2010 01:27:25 +0900
>>>> >> From: jun kuwamura<kuwamura.jun @ gmail.com>
>>>> >> To: PostgreSQL Japanese Mailing List<pgsql-jp @ ml.postgresql.jp>
>>>> >> Subject: [pgsql-jp: 40225] 8.4.3 リンクエラー
>>>> >> Message-ID:
>>>> >>    <3435af911003210927v33397dbfjeabbab65a5c1d18f @ mail.gmail.com>
>>>> >> 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
  ^
  ~


pgsql-jp メーリングリストの案内