操作
バグ #3192
完了omniORB 4.2 でコンパイルが通らない
開始日:
2015/04/30
期日:
進捗率:
100%
予定工数:
説明
omniORB 4.2 でコンパイルが通らない
n-ando さんが10年以上前に更新
- 進捗率 を 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)
n-ando さんが10年以上前に更新
- 進捗率 を 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)
}
}
}
n-ando さんが10年以上前に更新
- 進捗率 を 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
};
操作