Discussion:
[omniORB] Unix transport with static libraries error [patch]
Arne Pajunen
2010-01-25 17:14:46 UTC
Permalink
Hi,

I encountered a problem with using Unix Transport (-ORBendPoint
giop:unix: option) with omniORB 4.1.4 release version built as a static
library. It seems similar to a problem encountered by Roloff Craig in
2004 (quoted). I received the same error message when trying to start a
program with a unix transport endpoint:

Error: Unable to create an endpoint of this description: giop:unix:

I traced this down to a missing OMNI_FORCE_LINK in giopEndpoint.cc. I've
included a patch that adds the missing macro for unixTransportImpl. For
the Unix transport, this fixes the problem and the static library worked
fine.

I don't know if the other transports (ssl ?) need similar link lines,
but since I couldn't test them I didn't include them in the patch.

Best regards,
Arne Pajunen

Software Engineer
OpenTTCN Oy
Posted by: Roloff, Craig A
Tue Feb 3 09:52:23 GMT 2004
Using version 4.0.3 on an HP-UX 11 machine, setting -ORBendPoint gioP:unix: works fine
I suspect the linker is removing the "unused" reference to unixTransportImpl.
How to proceed?
-------------- next part --------------
--- omniORB-4.1.4-clean/src/lib/omniORB/orbcore/giopEndpoint.cc 2010-01-25 11:48:32.000000000 +0200
+++ omniORB-4.1.4/src/lib/omniORB/orbcore/giopEndpoint.cc 2010-01-25 11:45:48.000000000 +0200
@@ -107,6 +107,7 @@
// Make sure built-in transports are always linked

OMNI_FORCE_LINK(tcpTransportImpl);
+OMNI_FORCE_LINK(unixTransportImpl);


OMNI_NAMESPACE_BEGIN(omni)
Arne Pajunen
2010-01-25 18:15:47 UTC
Permalink
Hi,

I just found the patch most likely breaks windows builds, since they
don't include the Unix transport (obviously). I corrected the patch by
adding a ifdef around the OMNI_FORCE_LINK lines. Sorry about the confusion.

Best regards,

Arne Pajunen

Software Engineer
OpenTTCN Oy
Post by Arne Pajunen
Hi,
I encountered a problem with using Unix Transport (-ORBendPoint
giop:unix: option) with omniORB 4.1.4 release version built as a static
library. It seems similar to a problem encountered by Roloff Craig in
2004 (quoted). I received the same error message when trying to start a
I traced this down to a missing OMNI_FORCE_LINK in giopEndpoint.cc. I've
included a patch that adds the missing macro for unixTransportImpl. For
the Unix transport, this fixes the problem and the static library worked
fine.
I don't know if the other transports (ssl ?) need similar link lines,
but since I couldn't test them I didn't include them in the patch.
Best regards,
Arne Pajunen
Software Engineer
OpenTTCN Oy
Posted by: Roloff, Craig A
Tue Feb 3 09:52:23 GMT 2004
Using version 4.0.3 on an HP-UX 11 machine, setting -ORBendPoint gioP:unix: works fine
when linked using shared libraries. However, using static libraries
I suspect the linker is removing the "unused" reference to
unixTransportImpl.
How to proceed?
-------------- next part --------------
--- omniORB-4.1.4-clean/src/lib/omniORB/orbcore/giopEndpoint.cc 2010-01-25 11:48:32.000000000 +0200
+++ omniORB-4.1.4/src/lib/omniORB/orbcore/giopEndpoint.cc 2010-01-25 13:19:43.000000000 +0200
@@ -108,6 +108,9 @@

OMNI_FORCE_LINK(tcpTransportImpl);

+#if defined(UnixArchitecture)
+OMNI_FORCE_LINK(unixTransportImpl);
+#endif

OMNI_NAMESPACE_BEGIN(omni)
Duncan Grisby
2010-01-27 05:38:53 UTC
Permalink
Post by Arne Pajunen
I just found the patch most likely breaks windows builds, since they
don't include the Unix transport (obviously). I corrected the patch by
adding a ifdef around the OMNI_FORCE_LINK lines. Sorry about the confusion.
Thanks for that. I'm not sure why it wasn't force-linked already. I've
checked your fix in to svn (on the 4_1 branch).

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...