diff options
Diffstat (limited to 'recipes/omniorb')
-rw-r--r-- | recipes/omniorb/files/arm_double.patch | 266 | ||||
-rw-r--r-- | recipes/omniorb/files/dynskel.patch | 49 | ||||
-rw-r--r-- | recipes/omniorb/files/omniORB-cross.patch | 31 | ||||
-rw-r--r-- | recipes/omniorb/files/omniORB.cfg | 918 | ||||
-rw-r--r-- | recipes/omniorb/files/omniORB_embedded_appl.patch | 24 | ||||
-rw-r--r-- | recipes/omniorb/files/rm_LongDouble.patch | 14 | ||||
-rw-r--r-- | recipes/omniorb/omniorb-native_4.0.7.bb | 18 | ||||
-rw-r--r-- | recipes/omniorb/omniorb_4.0.7.bb | 38 |
8 files changed, 1358 insertions, 0 deletions
diff --git a/recipes/omniorb/files/arm_double.patch b/recipes/omniorb/files/arm_double.patch new file mode 100644 index 0000000000..cfcfd41630 --- /dev/null +++ b/recipes/omniorb/files/arm_double.patch @@ -0,0 +1,266 @@ +--- include/omniORB4/CORBA_sysdep.h 30 Dec 2005 17:40:22 -0000 1.2.2.32 ++++ include/omniORB4/CORBA_sysdep.h 12 Apr 2006 16:55:41 -0000 +@@ -125,6 +125,15 @@ + #endif + + // ++// Processor dependencies ++// ++ ++#if defined(__arm__) ++# define OMNI_MIXED_ENDIAN_DOUBLE ++#endif ++ ++ ++// + // Macro to provide const_cast functionality on all platforms. + // + #ifdef HAS_Cplusplus_const_cast +--- include/omniORB4/cdrStream.h 22 Jul 2005 16:57:17 -0000 1.1.2.23 ++++ include/omniORB4/cdrStream.h 12 Apr 2006 16:55:41 -0000 +@@ -428,6 +428,13 @@ + m.l[1] = Swap32(l.l[0]); + l = m; + } ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ { ++ _CORBA_ULong v = l.l[0]; ++ l.l[0] = l.l[1]; ++ l.l[1] = v; ++ } ++#endif + CdrMarshal(s,LongArray2,omni::ALIGN_8,l); + } + +@@ -440,6 +447,13 @@ + m.l[1] = Swap32(l.l[0]); + l = m; + } ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ { ++ _CORBA_ULong v = l.l[0]; ++ l.l[0] = l.l[1]; ++ l.l[1] = v; ++ } ++#endif + convertToFloat(_CORBA_Double, LongArray2); + } + #else +@@ -791,6 +805,19 @@ + p[i] = l; + } + } ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ { ++ struct LongArray2 { ++ _CORBA_ULong l[2]; ++ }; ++ LongArray2* p=(LongArray2*)a; ++ for( int i = 0; i < length; i++ ) { ++ _CORBA_ULong v = p[i].l[0]; ++ p[i].l[0] = p[i].l[1]; ++ p[i].l[1] = v; ++ } ++ } ++#endif + } + #endif + +@@ -957,6 +984,13 @@ + m.l[1] = Swap32(l.l[0]); + l = m; + } ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ { ++ _CORBA_ULong v = l.l[0]; ++ l.l[0] = l.l[1]; ++ l.l[1] = v; ++ } ++#endif + CdrMarshal(s,LongArray2,omni::ALIGN_8,l); + } + +@@ -969,6 +1003,13 @@ + m.l[1] = Swap32(l.l[0]); + l = m; + } ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ { ++ _CORBA_ULong v = l.l[0]; ++ l.l[0] = l.l[1]; ++ l.l[1] = v; ++ } ++#endif + convertToFloat(_CORBA_Double, LongArray2); + } + +--- include/omniORB4/seqTemplatedecls.h 11 Oct 2005 13:17:01 -0000 1.1.2.10 ++++ include/omniORB4/seqTemplatedecls.h 12 Apr 2006 16:55:42 -0000 +@@ -544,43 +544,6 @@ + }; + + +- +-////////////////////////////////////////////////////////////////////// +-///////////// _CORBA_Sequence_w_FixSizeElement ///////////// +-////////////////////////////////////////////////////////////////////// +-template <class T,int elmSize,int elmAlignment> +-class _CORBA_Sequence_w_FixSizeElement : public _CORBA_Sequence<T> { +-protected: +- typedef _CORBA_Sequence_w_FixSizeElement<T,elmSize,elmAlignment> T_seq; +- typedef _CORBA_Sequence<T> Base_T_seq ; +- +- +- inline _CORBA_Sequence_w_FixSizeElement() {} +- +- inline _CORBA_Sequence_w_FixSizeElement(_CORBA_ULong max, +- _CORBA_Boolean bounded=0) : +- Base_T_seq(max,bounded) {} +- +- inline _CORBA_Sequence_w_FixSizeElement(const T_seq& s) : Base_T_seq(s) {} +- +- inline _CORBA_Sequence_w_FixSizeElement(_CORBA_ULong max, +- _CORBA_ULong len, +- T *value, +- _CORBA_Boolean release_ = 0, +- _CORBA_Boolean bounded = 0 +- ) : Base_T_seq(max,len,value,release_,bounded) {} +- +- inline T_seq &operator= (const T_seq &s) { +- Base_T_seq::operator= (s); +- return *this; +- } +- +-public: +- inline void operator>>= (cdrStream &s) const; +- inline void operator<<= (cdrStream &s); +-}; +- +- + ////////////////////////////////////////////////////////////////////// + ///////////// _CORBA_Unbounded_Sequence_w_FixSizeElement ///////////// + ////////////////////////////////////////////////////////////////////// +@@ -663,6 +626,46 @@ + }; + + ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ ++template <int max> ++class _CORBA_Bounded_Sequence_w_FixSizeElement<_CORBA_Double,max,8,8> : ++ public _CORBA_Bounded_Sequence<_CORBA_Double,max> { ++public: ++ typedef _CORBA_Bounded_Sequence_w_FixSizeElement<_CORBA_Double,max,8,8> T_seq; ++ typedef _CORBA_Bounded_Sequence<_CORBA_Double,max> Base_T_seq; ++ ++ ++ inline _CORBA_Bounded_Sequence_w_FixSizeElement() {} ++ inline _CORBA_Bounded_Sequence_w_FixSizeElement(_CORBA_ULong len, ++ _CORBA_Double *value, ++ _CORBA_Boolean rel = 0) : ++ Base_T_seq(len,value,rel) {} ++ ++ inline _CORBA_Bounded_Sequence_w_FixSizeElement(const T_seq& s) : ++ Base_T_seq(s) {} ++ ++ inline ~_CORBA_Bounded_Sequence_w_FixSizeElement() {} ++ ++ inline T_seq& operator=(const T_seq& s) { ++ Base_T_seq::operator= (s); ++ return *this; ++ } ++ ++ // CORBA 2.3 additions ++ ++ inline void replace(_CORBA_ULong len, _CORBA_Double* data,_CORBA_Boolean release_ = 0) { ++ Base_T_seq::replace(len,data,release_); ++ } ++ ++ inline void operator>>= (cdrStream &s) const; ++ inline void operator<<= (cdrStream &s); ++}; ++ ++#endif ++ ++ ++ + ////////////////////////////////////////////////////////////////////// + ////////////////// _CORBA_Sequence_Char ///////////////////////////// + ////////////////////////////////////////////////////////////////////// +--- include/omniORB4/seqTemplatedefns.h 22 May 2003 13:41:39 -0000 1.1.2.11 ++++ include/omniORB4/seqTemplatedefns.h 12 Apr 2006 16:55:42 -0000 +@@ -266,6 +266,48 @@ + } + + ////////////////////////////////////////////////////////////////////// ++#ifdef OMNI_MIXED_ENDIAN_DOUBLE ++ ++// Template member function specializations to use the base ++// marshalling functions for double, so the doubles are properly ++// word-swapped. ++ ++template<> ++inline ++void ++_CORBA_Unbounded_Sequence_w_FixSizeElement<_CORBA_Double,8,8>::operator>>= (cdrStream& s) const ++{ ++ Base_T_seq::operator>>=(s); ++} ++ ++template<> ++inline ++void ++_CORBA_Unbounded_Sequence_w_FixSizeElement<_CORBA_Double,8,8>::operator<<= (cdrStream& s) ++{ ++ Base_T_seq::operator<<=(s); ++} ++ ++template<int max> ++inline ++void ++_CORBA_Bounded_Sequence_w_FixSizeElement<_CORBA_Double,max,8,8>::operator>>= (cdrStream& s) const ++{ ++ Base_T_seq::operator>>=(s); ++} ++ ++template<int max> ++inline ++void ++_CORBA_Bounded_Sequence_w_FixSizeElement<_CORBA_Double,max,8,8>::operator<<= (cdrStream& s) ++{ ++ Base_T_seq::operator<<=(s); ++} ++ ++#endif ++ ++ ++////////////////////////////////////////////////////////////////////// + inline + void + _CORBA_Sequence_Char::operator>>= (cdrStream& s) const +--- src/lib/omniORB/omniidl_be/cxx/skutil.py 27 Jul 2003 19:24:32 -0000 1.17.2.10 ++++ src/lib/omniORB/omniidl_be/cxx/skutil.py 12 Apr 2006 16:55:42 -0000 +@@ -197,6 +197,11 @@ + if array_marshal_helpers.has_key(d_type.type().kind()): + (alignment,elmsize) = array_marshal_helpers[d_type.type().kind()] + if alignment != "omni::ALIGN_1": ++ is_double = d_type.type().kind() == idltype.tk_double ++ if is_double: ++ to.out(""" ++#ifndef OMNI_MIXED_ENDIAN_DOUBLE""") ++ + to.out("""\ + if (! @where@.marshal_byte_swap()) { + @where@.put_octet_array((CORBA::Octet*)(@slice_cast@@name@),@num@,@align@); +@@ -207,6 +212,11 @@ + slice_cast = slice_cast, + num = str(n_elements * elmsize), + align = alignment) ++ ++ if is_double: ++ to.out("""\ ++#endif""") ++ + # Do not return here. + # let the code below to deal with the else block. + else: diff --git a/recipes/omniorb/files/dynskel.patch b/recipes/omniorb/files/dynskel.patch new file mode 100644 index 0000000000..469d3eb45e --- /dev/null +++ b/recipes/omniorb/files/dynskel.patch @@ -0,0 +1,49 @@ +--- src/lib/omniORB/omniidl_be/cxx/dynskel/main.py 27 Nov 2001 14:37:25 -0000 1.14.2.10 ++++ src/lib/omniORB/omniidl_be/cxx/dynskel/main.py 15 May 2006 13:36:20 -0000 +@@ -474,15 +474,30 @@ + + elementDesc = output.StringStream() + prefix = config.state['Private Prefix'] ++ + # djr and jnw's "Super-Hacky Optimisation" + # (amended by dpg1 to be even more hacky, since char/wchar now don't work) +- if isinstance(d_seqType.type(), idltype.Base) and \ +- not d_seqType.variable() and \ +- not d_seqType.type().kind() in [idltype.tk_char, idltype.tk_wchar] and \ +- not is_array: ++ # (amended again to cope with mixed endian doubles) ++ ++ is_double = d_seqType.type().kind() == idltype.tk_double ++ is_contiguous = (isinstance(d_seqType.type(), idltype.Base) and ++ not d_seqType.variable() and ++ not d_seqType.type().kind() in [idltype.tk_char, ++ idltype.tk_wchar] and ++ not is_array) ++ ++ if is_double: ++ elementDesc.out(""" ++#ifndef OMNI_MIXED_ENDIAN_DOUBLE""") ++ ++ if is_contiguous: + elementDesc.out(template.sequence_elementDesc_contiguous, + sequence = sequence_desc) +- else: ++ if is_double: ++ elementDesc.out(""" ++#else""") ++ ++ if is_double or not is_contiguous: + # <--- + required_symbols = [ prefix + "_buildDesc" + seqType_cname ] + assertDefined(required_symbols) +@@ -492,6 +507,10 @@ + thing_cname = seqType_cname, + thing = thing) + ++ if is_double: ++ elementDesc.out(""" ++#endif""") ++ + # <--- + cname = memberType_cname + # this is the #ifdef guard diff --git a/recipes/omniorb/files/omniORB-cross.patch b/recipes/omniorb/files/omniORB-cross.patch new file mode 100644 index 0000000000..3206af2b7a --- /dev/null +++ b/recipes/omniorb/files/omniORB-cross.patch @@ -0,0 +1,31 @@ +*** omniORB-4.0.5/mk/beforeauto.mk.in 2004-10-17 20:44:56.000000000 -0400 +--- omniORB-4.0.5.new/mk/beforeauto.mk.in 2005-03-21 12:33:05.756947025 -0500 +*************** +*** 48,59 **** + # + # Tool bindir to use depends on make target + # + ifeq ($(MAKECMDGOALS),install) + TOOLBINDIR = $(INSTALLBINDIR) + else + TOOLBINDIR = $(TOP)/$(BINDIR) + endif +! + + ############################################################################# + # +--- 48,60 ---- + # + # Tool bindir to use depends on make target + # ++ ifndef TOOLBINDIR + ifeq ($(MAKECMDGOALS),install) + TOOLBINDIR = $(INSTALLBINDIR) + else + TOOLBINDIR = $(TOP)/$(BINDIR) + endif +! endif + + ############################################################################# + # + diff --git a/recipes/omniorb/files/omniORB.cfg b/recipes/omniorb/files/omniORB.cfg new file mode 100644 index 0000000000..c1c8c24f95 --- /dev/null +++ b/recipes/omniorb/files/omniORB.cfg @@ -0,0 +1,918 @@ +############################################################################ +# omniORB (4.0 or above) configuration file # +############################################################################ + +############################################################################ +############################################################################ +############################################################################ +# # +# ORB wide options # +# # +############################################################################ + +############################################################################ +# Tracing level +# level 0 - critical errors only +# level 1 - informational messages only +# level 2 - configuration information and warnings +# level 5 - the above plus report server thread creation and +# communication socket shutdown +# level 10 - the above plus execution trace messages +# level 25 - output trace message per send or receive giop message +# level 30 - dump up to 128 bytes of a giop message +# level 40 - dump the complete giop message +# +# Valid values = (n >= 0) +# + +#traceLevel = 1 + +############################################################################ +# Trace Exceptions +# If true, then system exceptions will be logged when they are thrown. +# +# Valid values = 0 or 1 +# +traceExceptions = 0 + +############################################################################ +# Trace Invocations +# If true, then each local and remote invocation will generate a trace +# message. +# +# Valid values = 0 or 1 +# +traceInvocations = 0 + +############################################################################ +# Trace thread id +# If true, all trace messages include the thread id of the thread doing +# the logging. +# +# Valid values = 0 or 1 +# +traceThreadId = 0 + +############################################################################ +# dumpConfiguration +# Set to 1 to cause the ORB to dump the current set of configuration +# parameters. +# +# Valid values = 0 or 1 +# +dumpConfiguration = 0 + +############################################################################ +# maxGIOPVersion +# +# Set the maximum GIOP version the ORB should support. The ORB tries +# to match the <major>.<minor> version as specified. +# +# Valid values = 1.0 | 1.1 | 1.2 +# +maxGIOPVersion = 1.2 + +############################################################################ +# giopMaxMsgSize +# +# This value defines the ORB-wide limit on the size of GIOP message +# (excluding the header). If this limit is exceeded, the ORB will +# refuse to send or receive the message and raise a MARSHAL exception. +# +# Valid values = (n >= 8192) +# +giopMaxMsgSize = 2097152 # 2 MBytes. + +############################################################################ +# strictIIOP flag +# Enable vigorous check on incoming IIOP messages +# +# In some (sloppy) IIOP implementations, the message size value in +# the header can be larger than the actual body size, i.e. there is +# garbage at the end. As the spec does not say the message size +# must match the body size exactly, this is not a clear violation +# of the spec. +# +# If this flag is non-zero, the incoming message is expected to +# be well-behaved. Any messages that have garbage at the end will +# be rejected. +# +# The default value of this flag is true, so invalid messages are +# rejected. If you set it to zero, the ORB will silently skip the +# unread part. The problem with this behaviour is that the header +# message size may actually be garbage, caused by a bug in the +# sender's code. The receiving thread may block forever on the +# strand as it tries to read more data from it. In this case the +# sender won't send any more as it thinks it has marshalled in all +# the data. +# +# Valid values = 0 or 1 +# +strictIIOP = 1 + +############################################################################ +# lcdMode +# +# Set to 1 to enable 'Lowest Common Denominator' Mode. +# This will disable various features of IIOP and GIOP which are +# poorly supported by some ORBs, and disable warnings/errors when +# certain types of erroneous message are received on the wire. +# +# Valid values = 0 or 1 +# +lcdMode = 0 + +############################################################################ +# tcAliasExpand flag +# +# This flag is used to indicate whether TypeCodes associated with Anys +# should have aliases removed. This functionality is included because +# some ORBs will not recognise an Any containing a TypeCode with +# aliases to be the same as the actual type contained in the Any. Note +# that omniORB will always remove top-level aliases, but will not remove +# aliases from TypeCodes that are members of other TypeCodes (e.g. +# TypeCodes for members of structs etc.), unless tcAliasExpand is set to 1. +# There is a performance penalty when inserting into an Any if +# tcAliasExpand is set to 1. The default value is 0 (i.e. aliases of +# member TypeCodes are not expanded). Note that aliases won't be expanded +# when one of the non-type-safe methods of inserting into an Any is +# used (i.e. when the replace() member function or non - type-safe Any +# constructor is used. ) +# +# Valid values = 0 or 1 +# +tcAliasExpand = 0 + +############################################################################ +# useTypeCodeIndirections +# +# If true (the default), typecode indirections will be used. Set +# this to false to disable that. Setting this to false might be +# useful to interoperate with another ORB implementation that cannot +# handle indirections properly. +# +# Valid values = 0 or 1 +useTypeCodeIndirections = 1 + +############################################################################ +# acceptMisalignedTcIndirections +# +# If true, try to fix a mis-aligned indirection in a typecode. This +# is used to work around a bug in some versions of Visibroker's Java +# ORB. +# +# Valid values = 0 or 1 +acceptMisalignedTcIndirections = 0 + +############################################################################ +# scanGranularity +# +# The granularity at which the ORB scans for idle connections. +# This value determines the minimum value that inConScanPeriod or +# outConScanPeriod can be. +# +# Valid values = (n >= 0 in seconds) +# 0 --> do not scan for idle connections. +# +scanGranularity = 5 + +############################################################################ +# nativeCharCodeSet +# +# set the native code set for char and string +# +nativeCharCodeSet = ISO-8859-1 + +############################################################################ +# nativeWCharCodeSet +# +# set the native code set for wchar and wstring +# +nativeWCharCodeSet = UTF-16 + +############################################################################ +# omniORB_27_CompatibleAnyExtraction +# +# In omniORB pre-2.8.0 versions, the CORBA::Any extraction operator for +# 1. unbounded string operator>>=(char*&) +# 2. bounded string operator>>=(to_string) +# 3. object reference operator>>=(A_ptr&) for interface A +# Return a copy of the value. The caller must free the returned +# value later. +# +# With 2.8.0 and later, the semantics becomes non-copy, i.e. the Any +# still own the storage of the returned value. +# This would cause a problem in a program that is written to use the +# pre-2.8.0 semantics. To make it easier for the transition, +# set omniORB_27_CompatibleAnyExtraction to 1. +# This would revert the semantics to the pre-2.8.0 versions. +# +# Valid values = 0 or 1 +# +omniORB_27_CompatibleAnyExtraction = 0 + +############################################################################ +# abortOnInternalError +# +# If the value of this variable is TRUE then the ORB will abort +# instead of throwing an exception when a fatal internal error is +# detected. This is useful for debuging the ORB -- as the stack will +# not be unwound by the exception handler, so a stack trace can be +# obtained. +# It is hoped that this will not often be needed by users of omniORB! +# +# Valid values = 0 or 1 +# +abortOnInternalError = 0 + +############################################################################ +# abortOnNativeException +# +# On Windows, "native" exceptions such as segmentation faults and +# divide by zero appear as C++ exceptions that can be caught with +# catch (...). Setting this parameter to TRUE causes such exceptions +# to abort the process instead. +# +# This parameter has no effect on other platforms. +# +# Valid values = 0 or 1 +# +abortOnNativeException = 0 + +############################################################################ +# maxSocketSend +# maxSocketRecv +# +# On some platforms, calls to send() and recv() have a limit on the +# buffer size that can be used. These parameters set the limits in +# bytes that omniORB uses when sending / receiving bulk data. +# +# The default values are platform specific. It is unlikely that you +# will need to change the values from the defaults. +# +# The minimum valid limit is 8KB, 8192 bytes. +# +# e.g. to limit to 64KB sends / receives: +# +# maxSocketSend = 65536 +# maxSocketRecv = 65536 + +############################################################################ +# sslCAFile +# sslKeyFile +# sslKeyPassword +# sslVerifyMode +# +# SSL transport options +# +# sslCAFile specifies the file containing the SSL Certificate +# Authority certificate. +# +# sslKeyFile specifies the file containing the SSL key. +# +# sslKeyPassword specifies the password to unlock the key. +# +# sslVerifyMode specifies the verify mode, as given to +# SSL_CTX_set_verify. Valid values are "none", representing +# SSL_VERIFY_NONE, and "peer", representing SSL_VERIFY_PEER. If peer +# is selected, additional options "fail" and "once" can also be +# specified, corresponding to SSL_VERIFY_FAIL_IF_NO_PEER_CERT and +# SSL_VERIFY_CLIENT_ONCE respectively. e.g. +# +# sslVerifyMode = peer,fail +# +# These options are only available if the SSL transport is linked. + + +############################################################################ +############################################################################ +############################################################################ +# # +# Client Side Options # +# # +############################################################################ + +############################################################################ +# InitRef +# +# Specify the objects the ORB should return in response to calls to +# resolve_initial_references. +# +# There can be more than one configuration line defining InitRef. +# Each line adds one initial reference to the ORB. +# +# Here are some valid examples: +# +# Specify the root context of the Naming Service. (Notice the end of line +# continuation marker '\' +# +# InitRef = NameService=IOR:010000002800000049444c3a6f6d672e6f72672f436f734\ +#e616d696e672f4e616d696e67436f6e746578743a312e300001000000000000002c000000010\ +#102000c0000003139322e3136382e312e3000f90a00000c000000349568c45cb1e6780000000\ +#100000000 +# +# Alternatively, and more cleanly, specify the Naming service with a +# corbaname URI: +# +InitRef = NameService=corbaname::localhost +# +# +# Specify the Trading service and the interface repository using corbaloc: +# +# InitRef = TradingService=corbaloc:iiop:marrow:5009/MyObjectKey +# = InterfaceRepository=corbaloc::1.2@marrow:5009/Intf +# +# The default for the set of initial references is empty. + +############################################################################ +# DefaultInitRef +# +# DefaultInitRef provides a prefix string which is used to resolve +# otherwise unknown names. When resolve_initial_references() is unable to +# resolve a name which has been specifically configured (with InitRef), +# it constructs a string consisting of the default prefix, a `/' character, +# and the name requested. The string is then fed to string_to_object(). +# For example, if DefaultInitRef is set up like this: +# DefaultInitRef = corbaloc::myhost.example.com +# A call to resolve_initial_references("MyService") will return the object +# reference denoted by `corbaloc::myhost.example.com/MyService'. +# +# The default is empty. + + +############################################################################ +# clientTransportRule +# +# When the client receives an IOR that defines 1 or more ways to contact +# the server, the rules in clientTransportRule filter and prioritise +# the order in which the transports are used. +# +# There can be more than one configuration line of this type. +# Each line adds one rule to the selection process. The rules are applied +# in the order they are defined. The relative positions of the rules define +# the relative priority. The first rule has the highest priority. +# +# The syntax of a rule is as follows: +# clientTransportRule = [^]<address mask> [action]+ +# +# <address mask> can be: +# 1. localhost the address is this machine +# 2. w.x.y.z/m1.m2.m3.m4 IPv4 address with the bits selected by +# the mask. e.g. 172.16.0.0/255.240.0.0 +# 3. * the wildcard that matches any address +# +# <action>+ can be one or more of the following: +# 1. none Do not use this address +# 2. tcp,ssl,unix Use the 3 transports in the specified order +# if any or all of them are available +# 3. bidir Any connection to this address should be +# used bidirectionally. +# +# The optional prefix ^ before <address mask>, if present, causes +# the ORB to remove previously declared clientTransportRules from +# its internal store before adding the current rule. +# +# By default, no rule is defined. The ORB implicitly uses the following +# rule: +# clientTransportRule = * unix,tcp,ssl +# If any rule is specified, no implicit rule will be applied. +# +# Given an IOR, for each of the addresses within it, the ORB matches the +# address to the rules. If one is found, the position of the matched rule +# and the action is noted. If the action is none, the address is discarded. +# If the action does not contain the transport the address is specified for, +# e.g. the action is "ssl" but the address is "tcp", the address is +# discarded. Otherwise, the address and action is entered as one of the +# candidates to use. Having gone through all the addresses, the candidiates +# available are then ordered based on the priority of the matching rules and +# used accordingly. +# +# Here are some example usages: +# +# A) Restrict to only contacting server on the same host: +# clientTransportRule = localhost unix,tcp +# = * none +# B) Use tcp to contact servers in the intranet and must use bidirectional +# ssl otherwise. +# clientTransportRule = 172.16.0.0/255.240.0.0 unix,tcp +# = * bidir,ssl +# C) When a fast network (192.168.1.0) exists in the cluster, use it in +# preference to the external network. +# clientTransportRule = 192.168.1.0/255.255.255.0 unix,tcp +# clientTransportRule = 172.16.0.0/255.240.0.0 unix,tcp +# = * none +# +# + +############################################################################ +# clientCallTimeOutPeriod +# +# Call timeout. On the client side, if a remote call takes longer +# than the timeout value, the ORB will shutdown the connection and +# raise a COMM_FAILURE. +# +# Valid values = (n >= 0 in milliseconds) +# 0 --> no timeout. Block till a reply comes back +# +clientCallTimeOutPeriod = 0 + +############################################################################ +# supportPerThreadTimeOut +# +# If true, each client thread may have its own timeout. This adds +# some overhead to each call, so it is off by default. +# +# Valid values = 0 or 1 +# +supportPerThreadTimeOut = 0 + +############################################################################ +# outConScanPeriod +# +# Idle connections shutdown. The ORB periodically scans all the +# outgoing connections to detect if they are idle. +# If no operation has passed through a connection for a scan period, +# the ORB would treat this connection idle and shut it down. +# +# Valid values = (n >= 0 in seconds) +# 0 --> do not close idle connections. +# +outConScanPeriod = 120 + +############################################################################ +# maxGIOPConnectionPerServer +# +# The ORB could open more than one connection to a server +# depending on the number of concurrent invocations to the same +# server. This variable decides the maximum number of connections +# to use per server. This variable is read only once at ORB_init. +# If the number of concurrent invocations exceeds this number, the +# extra invocations are blocked until the the outstanding ones +# return. +# +# Valid values = (n >= 1) +# +maxGIOPConnectionPerServer = 5 + +############################################################################ +# oneCallPerConnection +# +# 1 means only one call can be in progress at any time per connection. +# +# Valid values = 0 or 1 +# +oneCallPerConnection = 1 + +############################################################################ +# offerBiDirectionalGIOP +# +# Applies to the client side. Set to 1 to indicate that the +# ORB may choose to use a connection to do bidirectional GIOP +# calls. Set to 0 means the ORB should never do bidirectional. +# +# Valid values = 0 or 1 +# +offerBiDirectionalGIOP = 0 + +############################################################################ +# diiThrowsSysExceptions +# +# If the value of this variable is 1 then the Dynamic Invocation Interface +# functions (Request::invoke, send_oneway, send_deferred, get_response, +# poll_response) will throw system exceptions as appropriate. Otherwise +# the exception will be stored in the Environment pseudo object associated +# with the Request. By default system exceptions are passed through the +# Environment object. +# +# Valid values = 0 or 1 +# +diiThrowsSysExceptions = 0 + +############################################################################ +# verifyObjectExistsAndType +# +# If the value of this variable is 0 then the ORB will not +# send a GIOP LOCATE_REQUEST message to verify the existence of +# the object prior to the first invocation. Set this variable +# if the other end is a buggy ORB that cannot handle GIOP +# LOCATE_REQUEST. +# +# Valid values = 0 or 1 +# +verifyObjectExistsAndType = 1 + +############################################################################ +# giopTargetAddressMode +# +# On the client side, if it is to use GIOP 1.2 or above to talk to a +# server, use this Target Address Mode. +# +# Valid values = 0 (GIOP::KeyAddr) +# 1 (GIOP::ProfileAddr) +# 2 (GIOP::ReferenceAddr) +# +giopTargetAddressMode = 0 + +############################################################################ +# bootstrapAgentHostname +# +# Applies to the client side. Non-zero enables the use of Sun's bootstrap +# agent protocol to resolve initial references. The value is the host name +# where requests for initial references should be sent. Only use this +# option to interoperate with Sun's javaIDL. +# +#bootstrapAgentHostname = localhost + +############################################################################ +# bootstrapAgentPort +# +# Applies to the client side. Use this port no. to contact the bootstrap +# agent. +# +bootstrapAgentPort = 900 + +############################################################################ +# principal +# +# The value of the principal field in GIOP 1.0 and 1.1 requests +# +# principal = me + + + +############################################################################ +############################################################################ +############################################################################ +# # +# Server Side Options # +# # +############################################################################ + + +############################################################################ +# endPoint +# endPointNoPublish +# endPointNoListen +# endPointPublishAllIFs +# +# There are 3 possible way to specify the endpoints a server should create. +# The 3 forms differ in the following ways: +# endPoint - create, listen on the connection and publish it in IORs +# endPointNoPublish - same as endPoint but do not publish it in IORs +# endPointNoListen - only publish it in IORs +# +# There can be more than one configuration line defining endPoints. +# Each line adds one endpoint to the server. +# +# Each configuration line can start with the keyword 'endPoint', e.g. +# endPoint = giop:tcp:neem:12345 +# endPoint = giop:ssl:neem:23456 +# +# Or a short hand form can be used, like this: +# +# endPoint = giop:tcp:neem:12345 +# = giop:ssl:neem:23456 +# +# The value of an endPoint configuration is a transport specific string. +# The transport strings recongised by the ORB and its supported transports +# are: +# 1. giop:tcp:[<host>]:[<port>] +# The <host> and <port> parameter are optional. If either or +# both are missing, the ORB fills in the blank. For example, +# "giop:tcp::" will cause the ORB to pick an arbitrary tcp port +# as the endpoint and it will pick one IP address of the host +# as the host name. +# +# 2. giop:ssl:[<host>]:[<port>] +# Similar to the tcp transport except that SSL is run on top +# of the tcp connection. +# +# 3. giop:unix:[<filename>] +# Create a unix domain socket and bind to the file with pathname +# <filename>. If <filename> is not specified, e.g. "giop:unix:", +# the ORB would pick a file name based on the process ID and +# the current timestamp. +# Therefore, if one wants to write an application that always +# restarts to use the same file to bind to its unix domain +# socket, a filename should be specified in the transport string. +# +# It is possible to use the ORB's transport extension framework to add +# a new transport to the ORB. In that case, the transport must define its +# own transport string format and must obey the colon separation rule. +# For example, if one is to create a transport which executes an arbitrary +# shell script and let the ORB use its stdin and stdout for sending and +# receiving giop messages, a transport string could look like this: +# giop:shell:magic_gw +# ^ ^ +# | +--------- transport specific part +# +--------------- transport name +# +# By default, no endPoint configuration is defined. In this case the ORB +# will create just 1 tcp endpoint as if the line: +# endPoint = giop:tcp:: +# is specified in the configuration file +# +# Other than tcp, none of the transports are guaranteed to be available +# on all platforms. If one specifies say: +# endPoint = giop:ssl:: +# and the ORB cannot initialise an ssl endpoint, the INITIALIZE exception +# will be raised. Even though ssl is supported on a platform, its transport +# is implemented as a separate shared library and must be linked with the +# application for the ORB to initialise the endpoint. +# +# Here are some examples of valid endPoint configurations: +# +# endPoint = giop:tcp:: +# endPoint = giop:unix: +# = giop:ssl:: +# +# endPointNoPublish = giop:tcp:: +# = giop:unix: +# = giop:ssl:: +# +# endPointNoListen = giop:tcp:192.168.1.1:12345 +# +# +# If the endPointPublishAllIFs boolean parameter is set to true, all +# non-loopback IP network interfaces are published in IORs, rather +# than just the first one. + + +############################################################################ +# serverTransportRule +# +# When the server sees a connection request from a client, it looks at the +# client's address and uses the rules in serverTransportRule to determine +# if the connection should be accepted. +# +# There can be more than one configuration line of this type. +# Each line adds one rule to the selection process. The rules are applied +# in the order they are defined until one matching rule is found. +# +# The syntax of a rule is as follows: +# serverTransportRule = [^]<address mask> [action]+ +# +# <address mask> can be: +# 1. localhost if the address is this machine +# 2. w.x.y.z/m1.m2.m3.m4 IPv4 address with the bits selected by +# the mask. e.g. 172.16.0.0/255.240.0.0 +# 3. * the wildcard that matches any address +# +# <action>+ can be one or more of the following: +# 1. none Do not accept this connection. +# 2. tcp,ssl,unix Accept if the transport is any of the +# 3 specified. +# 3. bidir Allow bidirectional requests if the +# client requests it. +# +# The optional prefix ^ before <address mask>, if present, causes +# the ORB to remove previously declared clientTransportRules from +# its internal store before adding the current rule. +# +# By default, no rule is defined. The ORB implicitly uses the following +# rule: +# serverTransportRule = * unix,tcp,ssl +# If any rule is specified, the implicit rule will not be applied. +# +# Here are some example usages: +# +# A) Only accept connections from our intranet +# serverTransportRule = localhost unix,tcp,ssl +# = 172.16.0.0/255.240.0.0 tcp,ssl +# = * none +# +# B) Only accept ssl connections if the client is not on our intranet +# serverTransportRule = localhost unix,tcp,ssl +# = 172.16.0.0/255.240.0.0 tcp,ssl +# = * bidir,ssl + + +############################################################################ +# serverCallTimeOutPeriod +# +# Call timeout. On the server side, if the ORB cannot completely +# unmarshal a call's arguments in the defined timeout, it shutdown the +# connection. +# +# Valid values = (n >= 0 in milliseconds) +# 0 --> no timeout. +# +serverCallTimeOutPeriod = 0 + +############################################################################ +# inConScanPeriod +# +# Idle connections shutdown. The ORB periodically scans all the +# incoming connections to detect if they are idle. +# If no operation has passed through a connection for a scan period, +# the ORB would treat this connection idle and shut it down. +# +# Valid values = (n >= 0 in seconds) +# 0 --> do not close idle connections. +# +inConScanPeriod = 180 + +############################################################################ +# threadPerConnectionPolicy +# +# 1 means the ORB should dedicate one thread per connection on the +# server side. 0 means the ORB should dispatch a thread from a pool +# to a connection only when a request has arrived. +# +# Valid values = 0 or 1 +# +threadPerConnectionPolicy = 1 + +############################################################################ +# maxServerThreadPerConnection +# +# The max. no. of threads the server will dispatch to serve the +# requests coming from one connection. +# +# Valid values = (n >= 1) +# +maxServerThreadPerConnection = 100 + +############################################################################ +# maxServerThreadPoolSize +# The max. no. of threads the server will allocate to do various +# ORB tasks. This number does not include the dedicated thread +# per connection when the threadPerConnectionPolicy is in effect +# +# Valid values = (n >= 1) +# +maxServerThreadPoolSize = 100 + +############################################################################ +# threadPerConnectionUpperLimit +# +# If the one thread per connection is in effect, this number is +# the max. no. of connections the server will allow before it +# switch off the one thread per connection policy and move to +# the thread pool policy. +# +# Valid values = (n >= 1) +# +threadPerConnectionUpperLimit = 10000 + +############################################################################ +# threadPerConnectionLowerLimit +# +# If the one thread per connection was in effect and was switched +# off because threadPerConnectionUpperLimit has been exceeded +# previously, this number tells when the policy should be restored +# when the number of connections drop. +# +# Valid values = (n >= 1 && n < threadPerConnectionUpperLimit) +# +threadPerConnectionLowerLimit = 9000 + +############################################################################ +# threadPoolWatchConnection +# +# After dispatching an upcall in thread pool mode, the thread that +# has just performed the call can watch the connection for a short +# time before returning to the pool. This leads to less thread +# switching for a series of calls from a single client, but is less +# fair if there are concurrent clients. The connection is watched +# if the number of threads concurrently handling the connection is +# <= the value of this parameter. i.e. if the parameter is zero, +# the connection is never watched; if it is 1, the last thread +# managing a connection watches it; if 2, the connection is still +# watched if there is one other thread still in an upcall for the +# connection, and so on. + +threadPoolWatchConnection = 1 + +############################################################################ +# connectionWatchPeriod +# +# For each endpoint, the ORB allocates a thread to watch for new +# connections and to monitor existing connections for calls that +# should be handed by the thread pool. The thread blocks in select() +# or similar for a period, after which it re-scans the lists of +# connections it should watch. This parameter is specified in +# microseconds. +# +# Valid values = (n >= 0 in microseconds) +# +connectionWatchPeriod = 50000 + +############################################################################ +# connectionWatchImmediate +# +# When a thread handles an incoming call, it unmarshals the +# arguments then marks the connection as watchable by the connection +# watching thread, in case the client sends a concurrent call on the +# same connection. If this parameter is set to the default false, +# the connection is not actually watched until the next connection +# watch period (determined by the connectionWatchPeriod parameter). +# If connectionWatchImmediate is set true, the connection watching +# thread is immediately signalled to watch the connection. That +# leads to faster interactive response to clients that multiplex +# calls, but adds significant overhead along the call chain. +# +# Note that this setting has no effect on Windows, since it has no +# mechanism for signalling the connection watching thread. +# +# Valid values = 0 or 1 +# +connectionWatchImmediate = 0 + +############################################################################ +# acceptBiDirectionalGIOP +# +# Applies to the server side. Set to 1 to indicate that the +# ORB may choose to accept a client's offer to use bidirectional +# GIOP calls on a connection. Set to 0 means the ORB should +# never accept any bidirectional offer and should stick to normal +# GIOP. +# +# Valid values = 0 or 1 +# +acceptBiDirectionalGIOP = 0 + +############################################################################ +# unixTransportDirectory +# +# Applies to the server side. Determine the directory in which +# the unix domain socket is to be created. +# +# Valid values = a valid pathname for a directory +# +unixTransportDirectory = /tmp/omni-%u +# %u is expanded into user name. + +############################################################################ +# unixTransportPermission +# +# Applies to the server side. Determine the permission mode bits +# the unix domain socket is set to. +# +# Valid values = unix permission mode bits in octal radix (e.g. 0755) +# +unixTransportPermission = 0777 + +############################################################################ +# supportCurrent +# +# If the value of this variable is TRUE, per-thread information is +# made available through the Current interfaces, e.g. +# PortableServer::Current. If you do not need this information, you +# can set the value to 0, resulting in a small performance +# improvement. +# +supportCurrent = 1 + +############################################################################ +# objectTableSize +# +# Hash table size of the Active Object Map. If this is zero, the ORB +# uses a dynamically resized open hash table. This is normally the +# best option, but it leads to less predictable performance since +# any operation which adds or removes a table entry may trigger a +# resize. If you set this to a non-zero value, the hash table has +# the specified number of entries, and is never resized. Note that +# the hash table is open, so this does not limit the number of +# active objects, just how efficiently they can be located. +# +# Valid values = (n >= 0) +# 0 --> use a dynamically resized table. +# +objectTableSize = 0 + +############################################################################ +# poaHoldRequestTimeout +# +# This variable can be used to set a time-out for calls being held +# in a POA which is in the HOLDING state. It gives the time in +# milliseconds after which a TRANSIENT exception will be thrown if the +# POA is not transitioned to a different state. +# +# Valid values = (n >= 0 in milliseconds) +# 0 --> no time-out. +# +poaHoldRequestTimeout = 0 + +############################################################################ +# poaUniquePersistentSystemIds +# +# The POA specification requires that object ids in POAs with the +# PERSISTENT and SYSTEM_ID policies are unique between +# instantiations of the POA. Older versions of omniORB did not +# comply with that, and reused object ids. With this value true, the +# POA has the correct behaviour; with false, the POA uses the old +# scheme for compatibility. +# +# Valid values = 0 or 1 +# +poaUniquePersistentSystemIds = 1 + +############################################################################ +# supportBootstrapAgent +# +# Applies to the server side. 1 means enable the support for Sun's +# bootstrap agent protocol. This enables interoperability between omniORB +# servers and Sun's javaIDL clients. When this option is enabled, an +# omniORB server will respond to a bootstrap agent request. +supportBootstrapAgent = 0 diff --git a/recipes/omniorb/files/omniORB_embedded_appl.patch b/recipes/omniorb/files/omniORB_embedded_appl.patch new file mode 100644 index 0000000000..43afc58bf2 --- /dev/null +++ b/recipes/omniorb/files/omniORB_embedded_appl.patch @@ -0,0 +1,24 @@ +*** omniORB-4.0.5/src/dir.mk 2002-02-18 06:58:54.000000000 -0500 +--- omniORB-4.0.5.new/src/dir.mk 2005-03-23 09:11:04.585121450 -0500 +*************** +*** 12,20 **** + + SUBDIRS += lib + +! ifndef EmbeddedSystem + SUBDIRS += appl services +! endif + + all:: + @echo +--- 12,20 ---- + + SUBDIRS += lib + +! #ifndef EmbeddedSystem + SUBDIRS += appl services +! #endif + + all:: + @echo + diff --git a/recipes/omniorb/files/rm_LongDouble.patch b/recipes/omniorb/files/rm_LongDouble.patch new file mode 100644 index 0000000000..20556ddcf1 --- /dev/null +++ b/recipes/omniorb/files/rm_LongDouble.patch @@ -0,0 +1,14 @@ +*** omniORB-4.0.7/idl/corbaidl.idl.orig 2006-10-13 09:21:35.000000000 -0400 +--- omniORB-4.0.7/idl/corbaidl.idl 2006-10-13 09:22:38.000000000 -0400 +*************** +*** 48,56 **** + #endif + typedef sequence<float> FloatSeq; + typedef sequence<double> DoubleSeq; +- #ifdef HAS_LongDouble +- typedef sequence<long double> LongDoubleSeq; +- #endif + typedef sequence<string> StringSeq; + typedef sequence<wstring> WStringSeq; + +--- 48,53 ---- diff --git a/recipes/omniorb/omniorb-native_4.0.7.bb b/recipes/omniorb/omniorb-native_4.0.7.bb new file mode 100644 index 0000000000..1df6236aea --- /dev/null +++ b/recipes/omniorb/omniorb-native_4.0.7.bb @@ -0,0 +1,18 @@ +SECTION = "devel" +DEPENDS += "python-native" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/omniorb/omniORB-${PV}.tar.gz" + +S = "${WORKDIR}/omniORB-${PV}" + +inherit native autotools + +do_compile () { + oe_runmake +} +# Ugly hack so libtool does not find native libs when building cross packages +# We really only build this package for omniidl anyway +do_stage_append() { + rm -f ${STAGING_LIBDIR_NATIVE}/libomni* +} diff --git a/recipes/omniorb/omniorb_4.0.7.bb b/recipes/omniorb/omniorb_4.0.7.bb new file mode 100644 index 0000000000..89e98e3534 --- /dev/null +++ b/recipes/omniorb/omniorb_4.0.7.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "OmniORB High Performance ORB" +SECTION = "devel" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "omniorb-native" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/omniorb/omniORB-${PV}.tar.gz \ +file://omniORB.cfg \ +file://omniORB-cross.patch;patch=1 \ +file://omniORB_embedded_appl.patch;patch=1 \ +file://rm_LongDouble.patch;patch=1 \ +file://arm_double.patch;patch=1;pnum=0 \ +file://dynskel.patch;patch=1;pnum=0 \ +" + +S = "${WORKDIR}/omniORB-${PV}" + +FILES_${PN}-dev += "${datadir}/idl/omniORB/* ${datadir}/idl/omniORB/cos/* + +inherit autotools pkgconfig + +do_compile () { + export EmbeddedSystem=1 + export TOOLBINDIR=${STAGING_BINDIR_NATIVE} + oe_runmake +} +do_install () { + export EmbeddedSystem=1 + make DESTDIR=${D} install + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/omniORB.cfg ${D}${sysconfdir} + install -d ${D}${localstatedir}/omninames +} +do_stage () { + export EmbeddedSystem=1 + autotools_stage_all +} |