Thread: [orbitcpp-list] Targetting orbitcpp at ORBit 0.5
Status: Beta
Brought to you by:
philipd
From: Phil D. <ph...@us...> - 2000-12-26 13:45:52
Attachments:
orbitcpp-for-ORBit-056.patch
|
Hi All, Just a mail to prevent duplication of effort: It seems like people are having all sorts of strife trying to work with multiple (unsupported) versions of ORBit. To fix this, I'm currently porting orbitcpp to work with the 'stable' ORBit-0.5.X releases. I've attached a patch which allows cvs orbitcpp to compile against ORBit-0.5.6. Note that the following things are broken in ORBit-0.5.6: - Array memory management (Segfaults on CORBA_free) - CORBA_Any (the ORBit compiler generates code for complex types which doesn't compile) Everything else seems to work (according to the orbitcpp 'everything' test harness), so this should be okay for people who don't need these features (I've probably temporarily broken the orbitcpp any support with this patch in any case). I'm currently working on patches to ORBit-0.5 to fix the above problems. I was thinking that it is probably best to target orbitcpp HEAD at 0.5 for the time being (since Elliot has 'officially' disowned ORBit CVS HEAD), and create a archive branch to orbitcpp for ORBit-2. Does this sound like a sane idea? Merry Christmas all, Cheers, Phil |
From: Sam C. <sa...@to...> - 2000-12-29 06:33:02
|
Phil Dawes <ph...@us...> wrote: >=20 > I was thinking that it is probably best to target orbitcpp HEAD at 0.5 > for the time being (since Elliot has 'officially' disowned ORBit CVS > HEAD), and create a archive branch to orbitcpp for ORBit-2. Does this > sound like a sane idea? This sounds very sensible indeed. --=20 Sam Couter | Internet Engineer | http://www.topic.com.au/ sa...@to... | tSA Consulting | OpenPGP key available on key servers OpenPGP fingerprint: A46B 9BB5 3148 7BEA 1F05 5BD5 8530 03AE DE89 C75C |
From: <MHL...@t-...> - 2001-03-03 17:01:00
|
Hi! orbitcpp-0.30 works just perfectly with orbit-0.5.7 (good work !) but mayby you also want to tackle down this: - It doesn't build on top of orbit-mt-0.5.7: I'm using the environment variable ORBIT_CONFIG to specify the right config-script. This obviously works but there is no option to specify that orbit-idl-mt should be used instead of orbit-idl. However, configure fails to create the makefiles. I get the following output when running this command sequence (I have both orbit-0.5.7 and orbit-mt-0.5.7 installed in /opt/orbit): > export LD_LIBRARY_PATH=/opt/orbit/lib > export ORBIT_CONFIG=/opt/orbit/bin/orbit-config-mt > configure --prefix=/opt/orbit --with-orbit-prefix=/opt/orbit --with-orbit-exec-prefix=/opt/orbit [snip] checking for orbit-config... /opt/orbit/bin/orbit-config-mt checking for ORBit - version >= 0.5.7... yes checking for orbit-idl... /usr/bin/orbit-idl [snip] creating Makefile sed: file conftest.s1 line 67: Unterminated `s' command sed: file conftest.s2 line 1: Unknown command: ``-'' [snip] - The support for predefined CORBA-sequences is broken: Try to compile the output 'orbit-idl -lc++' produces from the following idl-code: module CorbaSigC { typedef sequence<any> ParamList; interface Slot { any call( in ParamList params ); }; } It will contain the following expressions that produce errors: -- ::_orbitcpp::c::CORBA_sequence_CORBA_any This is declared in orb/corba_sequences.h and so not included inside namespace _orbitcpp { namespace c { [...] } } -- ::_orbitcpp::c::CORBA_sequence_CORBA_any__alloc This isn't declared anywhere ! I'm sorry that I can't write a buxfix for this myself but I have no idea how the correct output would look like and where to handle the spcecial sequence types. Keep going, Martin. |
From: <MHL...@t-...> - 2001-03-07 13:21:40
Attachments:
orbitcpp-opany.diff
|
On Sam, 03 Mär 2001 18:02:50 Martin Schulze wrote: > Hi! > > orbitcpp-0.30 works just perfectly with orbit-0.5.7 > (good work !) but mayby you also want to tackle down this: > > - It doesn't build on top of orbit-mt-0.5.7: > [snip] Okay so this works with Sam's patches applied, except that test 'everything' fails at 'transient object destruction'. > - The support for predefined CORBA-sequences is broken: > > Try to compile the output 'orbit-idl -lc++' produces > from the following idl-code: > > module CorbaSigC > { > typedef sequence<any> ParamList; > > interface Slot { > any call( in ParamList params ); > }; > }; > A simple workaround for this problem, as I now found out, is to put a remark around three lines in orb/corba_sequences.h: [...] /*#define _CORBA_sequence_CORBA_any_defined typedef struct CORBA_sequence_CORBA_any_struct CORBA_AnySeq; typedef struct CORBA_sequence_CORBA_any_struct CORBA_sequence_CORBA_any;*/ [...] Another problem I experienced with orbitcpp-0.30 lies in the declaration of the i/o-operators for CORBA::Any that are created in [name]-cpp-common.hh when you define a struct or interface in [name]-idl: For the above example orbit-idl -lc++ would create in CorbaSigC-cpp-common.hh: [...] inline void operator<<=(CORBA::Any& the_any, ::CorbaSigC::Slot_ptr* val) { the_any.insert_simple( (CORBA::TypeCode_ptr)&::_orbitcpp::c::TC_CorbaSigC_Slot_struct, val, CORBA_FALSE); } inline void operator<<=(CORBA::Any& the_any, ::CorbaSigC::Slot_ptr val) { the_any.insert_simple( (CORBA::TypeCode_ptr)&::_orbitcpp::c::TC_CorbaSigC_Slot_struct, &val); } inline CORBA::Boolean operator>>=(const CORBA::Any& the_any, ::CorbaSigC::Slot_ptr& val) { return the_any.extract( (CORBA::TypeCode_ptr)&::_orbitcpp::c::TC_CorbaSigC_Slot_struct, val); } [...] but it has to be something like: [...] namespace CorbaSigC { inline void operator<<=(CORBA::Any& the_any, ::CorbaSigC::Slot_ptr const * val) { // <---- const Pointer !!! the_any.insert_simple( (CORBA::TypeCode_ptr)&::_orbitcpp::c::TC_CorbaSigC_Slot_struct, val, CORBA_FALSE); } inline void operator<<=(CORBA::Any& the_any, ::CorbaSigC::Slot_ptr val) { the_any.insert_simple( (CORBA::TypeCode_ptr)&::_orbitcpp::c::TC_CorbaSigC_Slot_struct, &val); } inline CORBA::Boolean operator>>=(const CORBA::Any& the_any, ::CorbaSigC::Slot_ptr& val) { return the_any.extract( (CORBA::TypeCode_ptr)&::_orbitcpp::c::TC_CorbaSigC_Slot_struct, val); } } [...] I attached a simple patch for orbitcpp-0.30 that lets orbitcpp create the latter code. Please check whether it's okay and if so feel free to commit to cvs. Cu, Martin. |