[omniORB] Linking CORBA application on amd64 fails

Jari Lappalainen jari.lappalainen at iki.fi
Fri Sep 30 10:05:23 BST 2005


I built successfully omniORB 4.0.6 on an amd64 (gcc 3.4.4, linux gentoo
2.6.12).
Thank you all for making it work so easily.

I also compiled my application fine. But linking my application fails:

stubSK.cpp:527: undefined reference to `omni::omniExHelper::UNKNOWN(char
const*, int, unsigned long, CORBA::CompletionStatus)'

I get several of these - one for each call descriptor to a function that
declares user exceptions with 'raises'
in idl file.

The compile flags I was using are the same I used on x86:
-D__OMNIORB4__ -D__linux__ -D__x86__ -D__OSVERSION__=2 -D_REENTRANT

(When compiling the omni examples in src/examples, which went fine
including linking, I noticed
__x86__ wasn't among the g++ macros. But removing it from my compile did
not work.)

Looking at /usr/local/lib64/libomniORB4.a with nm --demangle shows

0000000000003210 T omni::omniExHelper::UNKNOWN(char const*, int,
unsigned int, CORBA::CompletionStatus)

which differs with the definition of the third parameter. In the source,
the type of the third argument to omni::omniExHelper::UNKNOWN is
CORBA::ULong.

Looking at previous posts I can see others are managing on x86_64 for
some time now.

Any thoughts what is it that I do wrong?

Jari Lappalainen





More information about the omniORB-list mailing list