[Ace-users] [ciao-users] Building CIAO under Fedora6 Problem

Sowayan, Abdullah (N-DUA) abdullah.sowayan at lmco.com
Fri Sep 14 10:13:24 CDT 2007


CIAO VERSION: 0.6
TAO VERSION : 1.6
ACE VERSION : 5.6

HOST MACHINE and OPERATING SYSTEM:

Fedora Core 6


TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
COMPILER NAME AND VERSION (AND PATCHLEVEL):
    
g++ (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30)

THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
specific file, simply state which one]:

#include "ace/config-linux.h"


THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
use a link to a platform-specific file, simply state which one
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:

debug=1
optimize=0
gen_ostream=1
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU


CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):

gen_ostream=1


AREA/CLASS/EXAMPLE AFFECTED:

$CIAO_ROOT/DAnCE/ExecutionManager


DOES THE PROBLEM AFFECT:

COMPILATION/LINKING


[Please indicate whether ACE/TAO/CIAO, your application, or both are
affected.]

CIAO


DESCRIPTION:

    ACE/TAO/CIAO compiles perfectly under Fedora Core 5. Under Fedora
Core 6 ExecutionManager doesn't compile/link properly. We generate the
make files of $CIAO_ROOT/CIAO_TAO_DAnCE.mwc and make it. We get the
following error. 

g++ -fvisibility=hidden -fvisibility-inlines-hidden -W -Wall
-Wpointer-arith -g -pipe   -pipe -DACE_HAS_LINUX_NPTL -D_REENTRANT
-DACE_HAS_AIO_CALLS -D_GNU_SOURCE   -I/opt/ACE_wrappers
-I/opt/ACE_wrappers/TAO/CIAO -DACE_HAS_EXCEPTIONS -D__ACE_INLINE__
-I../../../.. -I../../.. -I../.. -I../../ciao -I../../../orbsvcs
-I../../DAnCE -I../../ciaosvcs/Events -I../../DAnCE/Interfaces
-I../../DomainApplicationManager -I../../DAnCE/ExecutionManager  -Wl,-E
-L/opt/ACE_wrappers/ace -L./ -L/opt/ACE_wrappers/lib
-L/opt/ACE_wrappers/TAO/CIAO/ciao -L/opt/ACE_wrappers/TAO/tao -L.
-L../../../../lib -o Execution_Manager .obj/ExecutionManagerDaemonS.o
.obj/Execution_Manager.o .obj/Execution_Manager_Impl.o .obj/DAM_Map.o
-lTAO_Strategies -lTAO_RTPortableServer -lTAO_RTCORBA
-lExecutionManager_stub -lDomainApplicationManager -lCIAO_Server
-lTAO_Utils -lCIAO_Deployment_svnt -lCIAO_Events -lCIAO_RTEvent
-lTAO_CosNaming -lTAO_RTEvent_Serv -lTAO_RTEvent_Skel -lTAO_RTEvent
-lTAO_Svc_Utils -lCIAO_Deployment_stub -lTAO_Messaging
-lCIAO_Events_Base -lCIAO_Container -lTAO_PortableServer -lCIAO_Client
-lTAO_PI -lTAO_CodecFactory -lTAO_Valuetype -lTAO_IFR_Client
-lTAO_AnyTypeCode -lTAO -lACE -ldl -lpthread -lrt 
/opt/ACE_wrappers/lib/libTAO_Strategies.so: undefined reference to
`ACE_Singleton<ACE_Based_Pointer_Repository,
ACE_RW_Thread_Mutex>::instance()'
collect2: ld returned 1 exit status
make[1]: *** [Execution_Manager] Error 1
make[1]: Leaving directory
`/opt/ACE_wrappers/TAO/CIAO/DAnCE/ExecutionManager'
make: *** [ExecutionManager] Error 2

To make this work, we define
ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS to 1 as described in
Remedy's TAO Pgorammer's Guide. Now it works perfectly fine. I thought
there was a fix for this in x.6.0 where platform_g++_common.GNU would
automagically detect if one is running under FC6 or FC7 and apply the
fix.

Thanks,
Abdul



More information about the Ace-users mailing list