[openrtm-users 01075] Re: case sensitive file name in OpenRTM-aist svn

Ando Noriaki n-ando @ aist.go.jp
2010年 1月 14日 (木) 16:40:26 JST


松坂様

安藤です

ありがとうございます。
パッチ使わせていただきます。

> 安藤さん
>
> 松坂です。
>
> 下記の件、ありがとうございます。
>
> Mac OS Xでのコンパイルを可能にするためのパッチを送っておきます。
> 最新のtrunkからのdiffなので、問題ないようであればマージしてくださいませ。
>
> 上記パッチで大部分コンパイル可能になったものの、下記のエラーが解消出来ていません。
> FactoryInit.cppを見るとほとんど処理が書かれていないのでどこかのヘッダに書いてある宣言が原因だと思うのですが、
> C++のテンプレートを追いかけるのが難儀でまだ解決できないでいます。
> もしわかりましたら教えてください。
>
> ld: duplicate symbol coil::GlobalFactory<RTC::InPortConsumer,
> std::basic_string<char, std::char_traits<char>, std::allocator<char>
>>, std::less<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >, RTC::InPortConsumer* (*)(), void
> (*)(RTC::InPortConsumer*&)>::GlobalFactory()in .libs/Factory.o and
> .libs/FactoryInit.o

これは、以下のgccのバグでしょうかね。
http://d.hatena.ne.jp/dollyva/20080115/p1
gccとglibcのバージョンはいくつでしょうか?

いくつかのヘッダで、coil::GlobalFactory を実体化しています。
template class ::coil::GlobalFactory<RTC::InPortConsumer>;

普通は、weakシンボルとして定義されていて、リンカがよきに計らってくれる
ので、問題が出ないはずなのですが、いくつかのバージョンのgccでは
怒られるみたいです。

.oファイルをnmした結果はどうなってるでしょうか?

>nm InPortBase.o | grep Global
00000000 V _ZGVN4coil9SingletonINS_13GlobalFactoryIN3RTC10BufferBaseI15cdrMemoryStreamEESsSt4lessISsEPFPS5_vEPFvRS8_EEEE7m_mutexE
00000000 V _ZGVN4coil9SingletonINS_13GlobalFactoryIN3RTC14InPortProviderESsSt4lessISsEPFPS3_vEPFvRS6_EEEE7m_mutexE
00000000 V _ZGVN4coil9SingletonINS_13GlobalFactoryIN3RTC15OutPortConsumerESsSt4lessISsEPFPS3_vEPFvRS6_EEEE7m_mutexE
00000000 W _ZN4coil13GlobalFactoryIN3RTC14InPortConsumerESsSt4lessISsEPFPS2_vEPFvRS5_EEC1Ev
00000000 W _ZN4coil13GlobalFactoryIN3RTC14InPortConsumerESsSt4lessISsEPFPS2_vEPFvRS5_EEC2Ev
00000000 W _ZN4coil13GlobalFactoryIN3RTC14InPortConsumerESsSt4lessISsEPFPS2_vEPFvRS5_EED1Ev
00000000 W _ZN4coil13GlobalFactoryIN3RTC14InPortConsumerESsSt4lessISsEPFPS2_vEPFvRS5_EED2Ev
00000000 V _ZN4coil9SingletonINS_13GlobalFactoryIN3RTC10BufferBaseI15cdrMemoryStreamEESsSt4lessISsEPFPS5_vEPFvRS8_EEEE10m_instanceE
00000000 V _ZN4coil9SingletonINS_13GlobalFactoryIN3RTC10BufferBaseI15cdrMemoryStreamEESsSt4lessISsEPFPS5_vEPFvRS8_EEEE7m_mutexE
00000000 V _ZN4coil9SingletonINS_13GlobalFactoryIN3RTC14InPortProviderESsSt4lessISsEPFPS3_vEPFvRS6_EEEE10m_instanceE
00000000 V _ZN4coil9SingletonINS_13GlobalFactoryIN3RTC14InPortProviderESsSt4lessISsEPFPS3_vEPFvRS6_EEEE7m_mutexE
00000000 V _ZN4coil9SingletonINS_13GlobalFactoryIN3RTC15OutPortConsumerESsSt4lessISsEPFPS3_vEPFvRS6_EEEE10m_instanceE
00000000 V _ZN4coil9SingletonINS_13GlobalFactoryIN3RTC15OutPortConsumerESsSt4lessISsEPFPS3_vEPFvRS6_EEEE7m_mutexE

GlobalFactory は普通weakシンボルになるので、以下のように
リンク時はエラーにならないはずなのですが。。。。

           "V"  シンボルは弱いオブジェクトです。弱く定義されたシンボルが通常定
               義されたシンボルとリンクされるとき、エラー無しで通常定義され た
               シ ンボルが使用されます。弱い未定義なシンボルがリンクされそのシ
               ンボルが未定義なとき、弱いシンボルの値はエラー無しに 0 になりま
               す。

           "W"  シンボルは弱いオブジェクトですが、弱いオブジェクトであるとは特
               に指定されていませんでした。弱く定義されたシンボルが通常定義 さ
               れ たシンボルとリンクされるとき、エラー無しで通常定義されたシン
               ボルが使用されます。弱い未定義なシンボルがリンクされそのシン ボ
               ルが未定義なとき、弱いシンボルの値はエラー無しに 0 になります。

同じTのシンボルが2つ以上のオブジェクトにある場合はリンカに怒られますけど。。。。


>
>
> 2010/1/14 Ando Noriaki <n-ando @ aist.go.jp>:
>> 松坂さん
>>
>> 安藤です
>>
>> Slider_and_Motor も消しました(まだコミットしてないですけど)
>> MLは一応あります。内部開発者だけ登録していますが、
>> いま、松坂さんも登録しました。
>>
>> openrtm-commit @ m.aist.go.jp
>> 誰でも登録できるようにしましたので、興味のある型は購読してみてください。
>> 今は、C++、Python、Java版は全部同じMLに流れるようになっていますが、
>> そのうち分けたいと思っています。
>> なお、ツールは別MLになっています。
>>
>> 2010年1月14日12:38 Yosuke Matsusaka <yosuke.matsusaka @ gmail.com>:
>>> 安藤さん
>>>
>>> 松坂です。
>>>
>>> svnへの下記の変更&swigのフォルダの処理、ありがとうございます。
>>> まだ、examples/Slider_and_Motor以下にも大文字小文字ファイルがあるようですが、
>>> それ以外は無事にチェックアウトできるようになりました。
>>>
>>> 私のようなコア開発者ではないけれどパッチは作れる参加者や、常に最新の
>>> ソースを追いかけたい参加者に対して、svnへ変更が行われる度にコミットログを
>>> メールで送ってくれるようなメーリングリストがあると便利に思います。
>>>
>>> メールの送信設定自体はさほど難しくない(参考URL http://www.thinkit.co.jp/cert/article/0611/2/3/2.htm)
>>> ようなのですが、ご検討いただけますでしょうか?
>>>
>>> いつもリクエストばかりですいません。
>>>
>>> 2010/1/14 Ando Noriaki <n-ando @ aist.go.jp>:
>>>> 松坂様
>>>>
>>>> 安藤です
>>>>
>>>> ありがとうございます。
>>>> DEFAULT_INCLUDESにいらないインクルードパスが定義されていますね。
>>>> src/lib/coil/posix/coil/Makefile.am を下記のように修正しました。
>>>>
>>>>
>>>> -AM_CPPFLAGS=-I../ -I../../include
>>>> +AM_CPPFLAGS=-I.. -I$(top_srcdir)/include
>>>> +DEFAULT_INCLUDES=
>>>>
>>>>
>>>>
>>>> 2010年1月13日18:49 Yosuke Matsusaka <yosuke.matsusaka @ aist.go.jp>:
>>>>> 松坂です。
>>>>>
>>>>> 度々すいません。
>>>>>
>>>>> 下記の現象、コンパイル時にオプション"-I. -I../../include/coil"が入っているとエラーになるようです。
>>>>>
>>>>> src/lib/coil/posix/coil/Makefile.am
>>>>> のなかの
>>>>> AM_CPPFLAGS=-I../ -I../../include
>>>>> の下に
>>>>> DEFAULT_INCLUDES=
>>>>> の一行を入れたところ無事にコンパイルできるようになりました。
>>>>>
>>>>> 上記変更が他のプラットフォームでも問題にならないようでしたら取り込んでいただけますでしょうか?
>>>>>
>>>>> よろしくお願いします。
>>>>>
>>>>> 2010/1/13 Yosuke Matsusaka <yosuke.matsusaka @ aist.go.jp>:
>>>>>> 安藤さん
>>>>>>
>>>>>> 松坂です。
>>>>>>
>>>>>> お返事遅くなりましたが、下記の件、よろしくお願いします。
>>>>>>
>>>>>> Mac OS X上での1.0.0-RC1のコンパイルを試しているのですが、下記と同じ問題で
>>>>>> include/coilの中にあるTime.hが悪さをするようです(標準のヘッダファイルctimeの中で
>>>>>> include<time.h>と書かれているのですが、大文字小文字の区別がないために、coilの
>>>>>> Time.hが読み込まれてしまいエラーになります)。
>>>>>>
>>>>>> おそらくWindowsでも同様の問題が起こると思いますので、上記あわせて対応いただけ
>>>>>> ればと思います。
>>>>>>
>>>>>> 他に見つけましたらまた報告します。
>>>>>>
>>>>>> 2010/1/7 Ando Noriaki <n-ando @ aist.go.jp>:
>>>>>>> 松坂様
>>>>>>>
>>>>>>> 安藤です
>>>>>>>
>>>>>>> はい、その通りです。
>>>>>>> Windowsなどでチェックアウトすると文句を言われてしまいます。
>>>>>>> swigの下のファイルや、exampleの下のPythonのサンプルなどが
>>>>>>> 該当すると思います。変更いたします。
>>>>>>>
>>>>>>> 2010年1月7日13:13 Yosuke Matsusaka <yosuke.matsusaka @ aist.go.jp>:
>>>>>>>> OpenRTM-aist開発者の皆様
>>>>>>>>
>>>>>>>> 産総研の松坂です。
>>>>>>>>
>>>>>>>> 先日安藤さんからアナウンスのあったOpenRTMのsvnからソースをチェックアウト
>>>>>>>> して試そうとしているのですが、Mac OS X上でチェックアウトすると
>>>>>>>>
>>>>>>>> svn: Can't open file
>>>>>>>> 'swig/python/.svn/tmp/text-base/RtcBase.i.svn-base': No such file or
>>>>>>>> directory
>>>>>>>>
>>>>>>>> というエラーが出てしまいます。
>>>>>>>>
>>>>>>>> いろいろ調べてみると、Mac OS XやWindowsのファイルシステムでsubversionを
>>>>>>>> 使う場合、ファイル名に関して以下のような制限があり、上記エラーもこれが原因と
>>>>>>>> なっているようです。
>>>>>>>> http://svn.haxx.se/users/archive-2009-02/0084.shtml
>>>>>>>>
>>>>>>>> 以下の場所にある
>>>>>>>> http://openrtp.jp/openrtm/svn/OpenRTM-aist/trunk/OpenRTM-aist/swig/python/
>>>>>>>> 大文字小文字が違うだけの同名ファイル
>>>>>>>> RTCBase.i
>>>>>>>> RtcBase.i
>>>>>>>> のいずれかをもし不都合がなければ改名していただけるとありがたいのですが
>>>>>>>> 検討いただけますでしょうか?
>>>>>>>>
>>>>>>>> --
>>>>>>>> Yosuke Matsusaka, Ph.D  <yosuke.matsusaka @ aist.go.jp>
>>>>>>>>  Interaction Modeling Group /
>>>>>>>>  National Institute of Advanced Industrial Science and Technology (AIST)
>>>>>>>>  Tel: 029-862-6726  Web: http://staff.aist.go.jp/yosuke.matsusaka/
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>>>>>>    統合知能研究グループ 主任研究員, 博士(工学)
>>>>>>>    〒305-8568 つくば市梅園1-1-1 中央第2
>>>>>>>    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>>>>>>    OpenRTM-aist: http://www.openrtm.org
>>>>>>>
>>>>>>> Noriaki Ando, Ph.D.
>>>>>>>    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
>>>>>>>    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
>>>>>>>    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>>>>>>    OpenRTM-aist: http://www.openrtm.org
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Yosuke Matsusaka, Ph.D  <yosuke.matsusaka @ aist.go.jp>
>>>>>  Interaction Modeling Group /
>>>>>  National Institute of Advanced Industrial Science and Technology (AIST)
>>>>>  Tel: 029-862-6726  Web: http://staff.aist.go.jp/yosuke.matsusaka/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>>>    統合知能研究グループ 主任研究員, 博士(工学)
>>>>    〒305-8568 つくば市梅園1-1-1 中央第2
>>>>    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>>>    OpenRTM-aist: http://www.openrtm.org
>>>>
>>>> Noriaki Ando, Ph.D.
>>>>    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
>>>>    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
>>>>    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>>>    OpenRTM-aist: http://www.openrtm.org
>>>>
>>>>
>>>
>>> --
>>> Yosuke Matsusaka, Ph.D  <yosuke.matsusaka @ aist.go.jp>
>>>  Interaction Modeling Group /
>>>  National Institute of Advanced Industrial Science and Technology (AIST)
>>>  Tel: 029-862-6726  Web: http://staff.aist.go.jp/yosuke.matsusaka/
>>>
>>
>>
>>
>> --
>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>    統合知能研究グループ 主任研究員, 博士(工学)
>>    〒305-8568 つくば市梅園1-1-1 中央第2
>>    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>    OpenRTM-aist: http://www.openrtm.org
>>
>> Noriaki Ando, Ph.D.
>>    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
>>    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
>>    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
>>    OpenRTM-aist: http://www.openrtm.org
>>
>>
>



-- 
安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
    統合知能研究グループ 主任研究員, 博士(工学)
    〒305-8568 つくば市梅園1-1-1 中央第2
    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
    OpenRTM-aist: http://www.openrtm.org

Noriaki Ando, Ph.D.
    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
    OpenRTM-aist: http://www.openrtm.org



openrtm-users メーリングリストの案内