Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: RE: EPICS on vxWorks
From: "Amit Chauhan" <amit@rrcat.gov.in>
To: "'Andrew Johnson'" <anj@aps.anl.gov>
Cc: tech-talk@aps.anl.gov
Date: Tue, 21 Oct 2014 11:26:12 +0530
Hi Andrew,

Thanks a lot for the useful suggestion.

We could finally run EPICS on VxWorks on MVME-5500 without the errors.

This happened after we used GNU for building VxWorks Image also (instead of
diab).

Thanks again !!!

Regards,
Amit. 

-----Original Message-----
From: Andrew Johnson [mailto:anj@aps.anl.gov] 
Sent: Friday, October 17, 2014 11:00 PM
To: Amit Chauhan; tech-talk@aps.anl.gov
Subject: Re: EPICS on vxWorks

Hi Amit,

On 10/17/2014 12:43 AM, Amit Chauhan wrote:
> The problem is that when my application's .munch file executes on the
> target, it flags following errors and stops:
> 
> ld 0,0, "myIoc.munch"
> Warning: module 0x2474770 holds reference to undefined symbol
> _ZNSt9exceptionD2Ev.
> Warning: module 0x2474770 holds reference to undefined symbol
> __gxx_personality_v0.
> ld(): module contains undefined symbol(s) and may be unusable.
> value = 0 = 0x0

In the future, please post your primary errors first - the first missing
symbol above is an essential C++ support routine, and I think the second
is a symbol essential for code compiled by g++, both of which should be
included in the VxWorks OS image that you boot. Demangling the first
symbol name shows it to be the destructor for the std::exception class:

tux% c++filtppc _ZNSt9exceptionD2Ev
std::exception::~exception()

I remember getting this problem once, which I fixed by changing the
VxWorks Image Projects that build our bootable OS images to use the GNU
toolchain instead of the Diab one. Here's my commit to the mv6100 BSP
that changed the default setting to GNU:

> committer: Andrew Johnson <anj@aps.anl.gov>
> branch nick: bsp-mv6100
> timestamp: Tue 2014-08-12 17:32:26 -0500
> message:
>   Change TOOL default to gnu
> diff:
> === modified file 'mv6100/Makefile'
> --- mv6100/Makefile     2010-12-08 18:53:51 +0000
> +++ mv6100/Makefile     2014-08-12 22:32:26 +0000
> @@ -40,7 +40,7 @@
>  
>  CPU              = PPC32
>  CPU_VARIANT      = _ppc604_745x
> -TOOL             = diab
> +TOOL             = gnu
>  
>  TGT_DIR=$(WIND_BASE)/target
>  include $(TGT_DIR)/h/make/defs.bsp

Unfortunately I don't think you can modify the toolchain from WorkBench
once you have created a VxWorks Image Project, you can only set it at
project creation time. I just posted a question about your missing
symbols on the Wind River support forum, and got back this response:

> Per VxWorks Kernel Programmer's Guide:
> 
> WARNING: Wind River Compiler C++ and GNU C++ binary files are not
> compatible.
> 
> Therefore, both VxWorks image and any C++ application must be
> compiled with the same toolchain i.e. either GNU or Wind River (Diab).
> 
> Using different toolchains to build VxWorks image and C++ application
> will result in error during loading and/or in runtime. This
> configuration is not supported.

Note that EPICS will not build using the Diab compiler, so your only
option is to rebuild your VxWorks image with the GNU toolset.

- Andrew

-- 
People everywhere confuse what they read in newspapers with news.
-- A. J. Liebling


References:
EPICS on vxWorks Amit Chauhan
Re: EPICS on vxWorks Andrew Johnson
RE: EPICS on vxWorks Amit Chauhan
Re: EPICS on vxWorks Andrew Johnson

Navigate by Date:
Prev: Re: License or copyright for the naming module in DISCS Jeong Han Lee
Next: Re: Problem with CSS archive engine 龙巍
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: EPICS on vxWorks Andrew Johnson
Next: AsynPortDriver setting DRVH of ao? Florian Feldbauer
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·