プロジェクト

全般

プロフィール

バグ #3192

omniORB 4.2 でコンパイルが通らない

n-andoほぼ9年前に追加. ほぼ9年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2015/04/30
期日:
進捗率:

100%

予定工数:

説明

omniORB 4.2 でコンパイルが通らない

履歴

#1 n-andoほぼ9年前に更新

  • 進捗率0 から 30 に変更

configure.ac にてomniORB4.2以降が定義されていないため、RTC_CORBA_CXXMAPPING11 が定義されずエラーになる。
以下のとおり変更。

Index: configure.ac
===================================================================
--- configure.ac    (リビジョン 2607)
+++ configure.ac    (リビジョン 2608)
@@ -1019,11 +1019,21 @@
     case $omniorb_version in
     4.0.*)
         AC_MSG_RESULT(CORBA C++ mapping ver1.0 is used.)
+        AC_DEFINE([RTM_OMNIORB_40], [TRUE], [omniORB version is 4.0])
+        AC_MSG_RESULT(omniORB version is 4.0.)
         ;;
     4.1|4.1.*)
         AC_DEFINE([RTC_CORBA_CXXMAPPING11], [TRUE], [CORBA C++ mapping is ver1.1])
         AC_MSG_RESULT(CORBA C++ mapping ver1.1 is used.)
+        AC_DEFINE([RTM_OMNIORB_41], [TRUE], [omniORB version is 4.1])
+        AC_MSG_RESULT(omniORB version is 4.1.)
         ;;
+    4.2|4.2.*)
+        AC_DEFINE([RTC_CORBA_CXXMAPPING11], [TRUE], [CORBA C++ mapping is ver1.1])
+        AC_MSG_RESULT(CORBA C++ mapping ver1.1 is used.)
+        AC_DEFINE([RTM_OMNIORB_42], [TRUE], [omniORB version is 4.2])
+        AC_MSG_RESULT(omniORB version is 4.2.)
+        ;;
     esac
     AC_MSG_RESULT($omnirob_version)

#2 n-andoほぼ9年前に更新

  • 進捗率30 から 60 に変更

omniORBの内部関数 omniIOR::add_IIOP_ADDRESS() の引数が1個から2個になったためコンパイルが通らない。
下記のとおり変更した。

===================================================================
--- Manager.cpp    (リビジョン 2607)
+++ Manager.cpp    (リビジョン 2608)
@@ -1127,7 +1127,11 @@
                     CORBA::UShort port; 
                     coil::stringTo(port, addr_port[1].c_str());
                     iiop_addr.port = port;
+#if defined(RTM_OMNIORB_40) || defined(RTM_OMNIORB_41)
                     omniIOR::add_IIOP_ADDRESS(iiop_addr);
+#else
+                    omniIOR::add_IIOP_ADDRESS(iiop_addr, 0);
+#endif // defined(RTC_OMNIORB_40) and defined(RTC_OMNIORB_41)
                   }
               }
           }

#3 n-andoほぼ9年前に更新

  • 進捗率60 から 90 に変更

omniORB内部関数 dumpComponent() が廃止になった。これを利用しているCORBA_IORUtil内の print_tagged_components() の機能を殺すことで対処。

Index: CORBA_IORUtil.cpp
===================================================================
--- CORBA_IORUtil.cpp    (リビジョン 2607)
+++ CORBA_IORUtil.cpp    (リビジョン 2608)
@@ -399,6 +399,7 @@
   static void print_tagged_components(std::stringstream& sstr,
                                       IOP::MultipleComponentProfile& components)
   {
+#if defined(RTM_OMNIORB_40) || defined(RTM_OMNIORB_41)
     CORBA::ULong total(components.length());

     for (CORBA::ULong index(0); index < total; ++index)
@@ -425,6 +426,7 @@
             sstr << "       Broken component" << std::endl;
           }
       }
+#endif // defined(RTM_OMNIORB_40) || defined(RTM_OMNIORB_41)
   }
 #endif // ORB_IS_RTORB
 };

#4 n-andoほぼ9年前に更新

  • 進捗率90 から 100 に変更

1.1.1@Fedora21(32bit,64bit)でビルドチェック。成功。

#5 n-andoほぼ9年前に更新

  • ステータス担当 から 終了 に変更

他の形式にエクスポート: Atom PDF