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

Johnny Willemsen jwillemsen at remedy.nl
Fri Sep 14 11:58:47 CDT 2007


Hi,

It looks you have an older version of gcc then we expected. 

Try to add the lines below to your platform_macros.GNU (to start with) and
see if then the commandline changes

ifeq (Red Hat 4.1.1-30,$(findstring Red Hat 4.1.1-30,$(CXX_FULL_VERSION)))
  gcc_template_instantiation_visibility ?= 1
endif

Johnny

"Sowayan, Abdullah (N-DUA)" <abdullah.sowayan at lmco.com> wrote in message
news:<mailman.2238.1189782821.5286.ciao-users at mail.cse.wustl.edu>...
> 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