[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