Project

General

Profile

バグ #3192

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

Added by n-ando over 5 years ago. Updated over 5 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
Start date:
04/30/2015
Due date:
% Done:

100%

Estimated time:

Description

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

History

#1 Updated by n-ando over 5 years ago

  • % Done changed from 0 to 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 Updated by n-ando over 5 years ago

  • % Done changed from 30 to 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 Updated by n-ando over 5 years ago

  • % Done changed from 60 to 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 Updated by n-ando over 5 years ago

  • % Done changed from 90 to 100

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

#5 Updated by n-ando over 5 years ago

  • Status changed from 担当 to 終了

Also available in: Atom PDF