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  <20112012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: Does EPICS Base support multi-thread on vxWorks 6.3?
From: Andrew Johnson <anj@aps.anl.gov>
To: lorna.zhang@ni.com
Cc: tech-talk@aps.anl.gov
Date: Tue, 10 May 2011 11:08:53 -0500
Hi Lorna,

On Monday 09 May 2011 22:38:51 lorna.zhang@ni.com wrote:
> 
> What is a munch file? Why doesn't my bin\vxWorks-ppc603 folder include a
> vxTestHarness.munch file?

If you built EPICS Base properly, that file should be present for all vxWorks 
architectures, e.g:

tux% cd base-3.14.12.1/bin/vxWorks-ppc32
tux% ls -l *.munch
-r-xr-xr-x 1 anj aesctl 1416603 Apr 26 15:43 callbackTest.munch*
-r-xr-xr-x 1 anj aesctl 1864447 May 10 10:47 softIoc.munch*
-r-xr-xr-x 1 anj aesctl  613149 May 10 10:33 vxTestHarness.munch*

> What is and how to link all the vxWorks binaries into a single .munch
> file??

A .munch file is a binary executable for vxWorks. It's created by linking 
together all your object files and libraries into a single file, generating 
and compiling a C source file that combines all of the C++ static constructors 
and destructors present, and then linking that object file into the executable 
as well.  The name "munch" comes from the Wind River tool used to create the 
static constructor/destructor list file, although EPICS Base uses its own 
version of that tool written in Perl.

Here's the vxTestHarness.munch file being created inside base/src/libCom/test:

/usr/local/vw/vxWorks-6.8/gnu/4.1.2-vxworks-6.8/x86-linux2/bin/ldppc -r -o 
vxTestHarness  -L../../../../lib/vxWorks-ppc32/ -
L/usr/local/vw/vxWorks-6.8/gnu/4.1.2-vxworks-6.8/x86-linux2/powerpc-wrs-
vxworks/lib ../../../../bin/vxWorks-ppc32/vxComLibrary.o epicsCalcTest.o 
epicsAlgorithmTest.o epicsMathTest.o epicsEllTest.o epicsErrlogTest.o 
epicsStdioTest.o epicsStringTest.o epicsTimeTest.o epicsThreadTest.o 
epicsThreadOnceTest.o epicsThreadPriorityTest.o epicsThreadPrivateTest.o 
epicsExitTest.o epicsTimerTest.o ringPointerTest.o ringBytesTest.o 
epicsEventTest.o epicsMutexTest.o epicsExceptionTest.o macEnvExpandTest.o 
macLibTest.o taskwdTest.o blockingSockTest.o epicsMessageQueueTest.o 
epicsRunLibComTests.o epicsThreadPerform.o epicsMaxThreads.o buckTest.o 
cvtFastPerform.o -lCom

/usr/local/vw/vxWorks-6.8/utilities-1.0/x86-linux2/bin/nmppc vxTestHarness > 
vxTestHarness.nm

perl ../../../../bin/linux-x86_64/munch.pl -o vxTestHarness_ctdt.c 
vxTestHarness.nm

/usr/local/vw/vxWorks-6.8/gnu/4.1.2-vxworks-6.8/x86-linux2/bin/ccppc -c            
-DCPU=PPC32 -DvxWorks -include 
/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/vxWorks.h  -O2 -Wall -mstrict-
align -mlongcall -fno-builtin -MMD -fdollars-in-identifiers -I. -I../O.Common 
-I. -I.. -I../../../../include/os/vxWorks -I../../../../include -
I/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h -
I/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/wrn/coreip  
vxTestHarness_ctdt.c

/usr/local/vw/vxWorks-6.8/gnu/4.1.2-vxworks-6.8/x86-linux2/bin/ldppc -r -T 
/usr/local/vw/vxWorks-6.8/vxworks-6.8/target/h/tool/gnu/ldscripts/link.OUT -o 
vxTestHarness.munch vxTestHarness_ctdt.o vxTestHarness

Installing created file ../../../../bin/vxWorks-ppc32/vxTestHarness.munch


Are you using the EPICS build system?  The above steps are all automatic when 
you ask it to create a vxWorks executable.  If you're using Wind River 
Workbench the equivalent seems to be a "Downloadable Kernel Module" project, 
but I've never tried using Workbench to create EPICS applications.

- Andrew
-- 
An error is only a mistake if you don't learn from it.
When you learn something from it, it becomes a lesson.

Replies:
Re: Does EPICS Base support multi-thread on vxWorks 6.3? lorna . zhang
References:
Does EPICS Base support multi-thread on vxWorks 6.3? lorna . zhang
Re: Does EPICS Base support multi-thread on vxWorks 6.3? Andrew Johnson
Re: Does EPICS Base support multi-thread on vxWorks 6.3? lorna . zhang

Navigate by Date:
Prev: RE: Announce: seq-2.0.13 Mark Rivers
Next: Re: Announce: seq-2.0.13 Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: Does EPICS Base support multi-thread on vxWorks 6.3? lorna . zhang
Next: Re: Does EPICS Base support multi-thread on vxWorks 6.3? lorna . zhang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·