[tao-users] [ace-users] [installation] having problems building ACE/TAO for vxworks.

José Rui Simões jose-r-simoes at criticalsoftware.com
Wed Jun 13 12:36:50 CDT 2007


Hi Tom,

thanks for your reply. 

You did a native build first to get gperf and tao_idl, right?

I already did that.

I will try to use your configuration later. I'll give notice of my
advancements, but for now I couldn't even setup the compilation.

Kind Regards.

José Rui


On Tue, 2007-06-12 at 10:05 -0700, Thomas Lockhart wrote:

> > Could somebody please help  me with some more detailed 
> > instructions on how to build ACE/TAO for VxWorks?
> 
> You did not give any details on what exactly failed. If you have further 
> questions please be sure to do so. But here are some suggestions:
> 
> Do not bother with the autoconf-based build, since that does not work 
> for cross-compiling.
> 
> You did a native build first to get gperf and tao_idl, right?
> 
> I had decent luck building for VxWorks-6.3 and TAO-1.5.8 using the 
> classic from-source build technique. The results are not yet tested.
> 
> In previous versions of TAO I was able to assign TAO_IDL and other 
> variables in my platform_macros.GNU to get the cross-compilation to 
> work, but for 1.5.8 I seemed to need to actually create the soft links 
> in $ACE_ROOT/bin/ from the native build to the VxWorks directory.
> 
> I sourced $WIND_BASE/windriver.bash before compiling. That got the 
> compilers in my path and defined a bunch of environment variables. In 
> previous versions of VxWorks I defined these variables for myself.
> 
> I turned off RTP in platform_macros.GNU since that configuration seemed 
> to want a few definitions that did not exist. I understand that RTP is 
> the configuration that was used by Johnny Willemsen when freshening the 
> VxWorks support recently.
> 
> Much more of ACE and TAO build for VxWorks than did in the days of 
> TAO-1.2.1.
> 
> I patch ACE and TAO to get singletons to work with multiple loadable 
> modules; the VxWorks loader does not respect weakly-defined objects and 
> will create multiple instances of singletons if they are referenced 
> across modules. The patches involve using RTTI to register singletons in 
> a non-templated manager object.
> 
> I've enclosed my platform_macros.GNU and config.h files; be sure to vet 
> them for your environment.
> 
> hth
> 
>                            - Tom
> 
> 
> plain text document attachment (platform_macros-vxworks.GNU)
> 
> # platform_macros.GNU
> # For VxWorks environment
> # Updated for Tornado 2.2.x and TAO 1.3.x
> # Thomas Lockhart Caltech/JPL
> 
> ACE_COMPONENTS= FOR_TAO
> #minimum_corba=1
> #rt_corba= 1
> rtp= 0
> ami= 0
> ami_poller= 0
> ami_callback= 0
> #corba_messaging= 0
> templates= implicit
> rtti= 1
> #exceptions= 0
> interface_repo= 1
> inline= 1
> debug= 0
> shared_libs= 1
> shared_libs_only= 1
> static_libs= 
> 
> #ifeq ($(LIBNAME),"liborbsvcs")
> #  LIBS=
> #endif
> 
> # Disable shared libraries from the link step.
> # Otherwise, we'll try to link to libACE.so, but the linker is looking for libACE.a.
> #ACE_SHLIB=
> 
> # TAO_IDL must be a full-path pointer to a built IDL compiler.
> # Otherwise, rules which list this as a prerequisite (and there are some)
> # will fail with "no rule to make..."
> # One might think that setting PATH should be enough, but nooooooo....
> TAO_IDL= /proj/ace/release/$(HOSTARCH)/bin/tao_idl
> 
> # NOTE THAT ALL TAO_IDLFLAGS PARAMETERS ARE OVERRIDDEN IN THE RTC
> # MAKEFILE.ENV SO THESE PARAMETERS NEED TO BE UPDATED THERE ALSO
> 
> # All support files are going into a stable installation, so generate angle
> # brackets on #includes when possible
> TAO_IDLFLAGS+= -in
> 
> # Enable exception macro arguments since tao_idl may have been
> # compiled with exceptions enabled for the host platform.
> # Note that this could be enabled always, since the exception macros
> # support native exceptions also.
> #ifneq ($(exceptions),1)
> #  TAO_IDLFLAGS+= -Ge 1
> #endif
> 
> # Disable tie classes to shrink libraries
> TAO_IDLFLAGS+= -Sc
> 
> # Enable AMI and OBV interfaces
> ifeq ($(ami),1)
>   TAO_IDLFLAGS+= -GC -Gv
>   IDLFLAGS+= -GC -Gv
> endif
> 
> # TAO currently calls everything with gcc-2.96 VxWorks 5.4.2.
> # Override with the correct value for Tornado 2.2.1.
> #VXWORKS_VERSION_FLAG= -DACE_VXWORKS=0x551
> 
> include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.3.GNU
> 
> # Get the right version of gperf
> TAO_IDLFLAGS+= -g /proj/ace/release/$(HOSTARCH)/bin/gperf
> 
> # VxWorks does not respect weakly-defined objects.
> # Enable the workaround from Rich Johnson.
> CPPFLAGS+= -DACE_HAS_BROKEN_WEAK_OBJECTS
> 
> # TornadoII supports multicast,
> # but this is not turned on by default in ACE
> #CPPFLAGS+= -DACE_HAS_IP_MULTICAST=1
> 
> # Need static data member templates for the SingletonMap workaround.
> # Should move to config-vxworks5.x.h when SingletonMap is added to the tree.
> #CPPFLAGS+= -UACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
> 
> # Remove RCS info from source code. Saves some room...
> CPPFLAGS+= -DACE_USE_RCSID=0
> 
> # Enable patch to use sortable time in log output
> CPPFLAGS+= -DACE_USE_ISO8601_TIME
> 
> # Set optimization to O1 to allow exceptions under Tornado II 2.0 compiler
> #OCFLAGS+= -O0

_________________________

José Rui Simões 

Junior Engineer


Critical Software, SA
Parque Industrial de Taveiro, Lote 48
3045-504 Coimbra, Portugal
Tel:+351.239 989 100 Fax:+351.239 989 119
http://www.criticalsoftware.com
jose-r-simoes at criticalsoftware.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/ace-users/attachments/20070613/51231970/attachment-0001.htm


More information about the Ace-users mailing list