Getting following error while starting application
rtld: 0712-001 Symbol instance__13ACE_SingletonXT28ACE_Based_Pointer_RepositoryT19ACE_RW_Thread_Mutex_Fv was referenced
from module /scratch/pin7785/opt/ifw/lib/libace64.a(), but a runtime definition
of the symbol was not found.
rtld: 0712-002 fatal error: exiting.
I have built the ace 6.0 source code in AIX 6.1,
Also can see from the cmd "nm -X64 libace64.a" shows the symbol ACE_Singleton<ACE_Based_Pointer_Repository,ACE_RW_Thread_Mutex>::instance() is Undefined.
Do I need build the code with any additional C++ flags etc..
Here somehow its not able to get the ACE_Singleton::instance() definition
template <class TYPE, class ACE_LOCK> TYPE *
ACE_Singleton<TYPE, ACE_LOCK>::instance (void)
The same thing is working fine for
Platform: AIX 6.1
Compiler: Xlc 11.1
Was able to resolve the issue by doing explicit instantiation,
i.e by adding following line in Based_Pointer_Repository.cpp
template ACE_Based_Pointer_Repository * ACE_Singleton<ACE_Based_Pointer_Repository,ACE_RW_Thread_Mutex>::instance (void);
But instead of changing the third party ace source code, I would need a compiler option to resolve the issue.
Currently trying with option -qlanglvl=externtemplate and -qnotempinc
This forum is about C++ programming in general, and specifically about using Oracle Solaris Studio on Solaris and Linux. If I read your post correctly, you are running on IBM's AIX using IBM C++. You are more likely to find a helpful answer in an IBM forum.
You might also try an ACE forum, since the problem seemed to appear when you updated to a newer version of ACE.