[openrtm-users 02576] Re: Fedora17(32bit)上でのOpenRTM(C++)コンパイル

Ando Noriaki n-ando @ aist.go.jp
2012年 6月 7日 (木) 20:48:13 JST


清水先生

安藤です

情報有り難うございます。
結論としては、コンパイルは通しましたが、原因はよくわかりませんでした(笑
一応もう少しで、1.1.0-RELEASEのFedora用rpmをリリースできる見込みです。


#以下は、gcc 4.7, rpmパッケージ作成に興味のある方向け

Fedora17のgcc (4.7) では、-march=i386 オプションを付けて
コンパイルすると、ある種の条件下(詳しくは調べてませんが)で
__atomic_fetch_add_4 という関数(おそらくgccの組み込み関数)
への呼び出しが暗黙的に追加されるようです。
#オプションが -march=i468 i586 i686 だと追加されない。

しかしながら、色々探した限りでは__atomic_fetch_add_4
関数の宣言や実体が無いのと、Fedora14,15,16で作成した
libRTCやlibcoilにはそういうシンボルが一切見当たらないので、
まぁ、なくても問題ないだろうと考えました。(あったらすみません。)

-march=i386オプションは、自分でソースからconfigure;makeする
時にはコンパイルオプションとして追加されないのですが、
rpmパッケージを作るためにrpmbuildを使うと、CFLAGS/CXXFLAGSに
↓のように勝手に追加されてしまいます。

CFLAGS=-O2 -g -march=i386 -mtune=i686
(これはFC14,15,16でも同様、でも問題は起こらない。)

ただし、x86_64版のrpmbuildは

CFLAGS=-O2 -g

というオプションのみです。なので、specファイルを少し書き換えて、
i386版も-O2 -gオプションのみになるように強制したところ、
一応パッケージの作成まで出来ました。

なんかすっきりしませんが、gcc 4.7 が主流になってくれば
何かわかるかもしれません。


他に情報お持ちの方がおられましたら、教えてもらえませんか?
よろしくお願いします。




2012年6月7日 18:41 Masayuki Shimizu <masayuki.shimizu @ aist.go.jp>:
> 安藤様
>
> 静岡大の清水です。
>
> Fedora17 for i386で私の所ではコンパイルは成功しています。
>
> インストール時に開発デスクトップ(だったかな?)を選択したので、
> 開発環境が最初からインストールされているものを使っています。
>
> 何か開発系のパッケージが足りないのではないでしょうか?
>
> 参考までに、私のマシンにインストールされている
> パッケージリストを添付しておきます。
>
> 清水
>
> --- On Thu, 2012/6/7, Ando Noriaki <n-ando @ aist.go.jp> wrote:
>
>> OpenRTM ML皆様
>>
>> 産総研 安藤です
>>
>> どなたかFedora17 (32bit) 上で OpenRTM-aistのC++版の
>> コンパイルを通したことがある方はいらっしゃいませんか?
>>
>> 実行形式にリンクする際に、軒並み以下のようなエラーがでて
>> 困っております。64bit版では出ていないみたいです。
>> ../../src/lib/rtm/.libs/libRTC.so: undefined reference to `__atomic_fetch_add_4'
>> collect2: error: ld returned 1 exit status
>>
>> g++: gcc version 4.7.0 20120507 (Red Hat 4.7.0-5) (GCC)
>> OS: Fedora17, 32bit
>> OpenRTM: OpenRTM-aist-1.1.0-RELEASE
>>
>> --
>> 安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
>>     統合知能研究グループ 主任研究員, 博士(工学)
>>     〒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
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users @ openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users
>


More information about the openrtm-users mailing list