Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: R3.14 support for MIPS (hkbaja47)
From: Matt Rippa <mrippa@gemini.edu>
To: EPICS-tech-talk <tech-talk@aps.anl.gov>
Date: Wed, 26 Apr 2006 13:48:04 -1000
Hi All,

Has anyone built a 3.14 application for a mips target? I'm building this from solaris with tornado 2.0. This thread extends from last weeks subject "Undefined symbols R3.14.6"... thanks for the help so far!

I can't get a simple "bare-bones" CA client app to load on a mips board. This works fine on the PPC architecture. The test I came up with just links in acctst.o and vxComLibrary.o from base.

On the mips build I get an undefined symbol in the final munch file that *very* closely matches a defined symbol save for the prepended underscore :

>nmmips test.munch | grep libCom
000b76b0 T _GLOBAL_$I$.._.._.._src_libCom_cxxTemplates_epicsSingletonMutex.cpp
U __GLOBAL_$I$.._.._.._src_libCom_cxxTemplates_epicsSingletonMutex.cpp



Whereas on the ppc604_long build this is full resolved:
> nmppc test.munch | grep libCom
000e20f8 T _GLOBAL_$I$_________src_libCom_cxxTemplates_epicsSingletonMutex_cpp


I noticed the dots after "_GLOBAL_$I$". If munch.pl sees any dots in the symbol name it tags the symbol as a function call with an "__asm__" attribute. This ends up in test_ctdt.c as:
void _GLOBAL_$I$$$_$$_$$_src_libCom_cxxTemplates_epicsSingletonMutex$cpp
() __asm__ ("__GLOBAL_$I$.._.._.._src_libCom_cxxTemplates_epicsSingletonMutex.cpp");



Not sure if that's correct.


There must be an incorrect linker flag or something. Thanks for any help! I've included some build info below.

-Matt

------Build flags---------

/usr/software/dev/packages/vxworks/tornado2.0/mips/host/sun4-solaris2/bin/ldmips -r -EB -X -o test -L/usr/software/dev/packages/epics/epics3.14.6GEM9.1/base/lib/vxWorks-mips/

-L/usr/software/dev/packages/vxworks/tornado2.0/mips/host/sun4-solaris2/mips-wrs-vxworks/lib

/usr/software/dev/packages/epics/epics3.14.6GEM9.1/base/bin/vxWorks-mips/acctst.o /usr/software/dev/packages/epics/epics3.14.6GEM9.1/base/bin/vxWorks-mips/vxComLibrary.o test_registerRecordDeviceDriver.o -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom
/usr/software/dev/packages/vxworks/tornado2.0/mips/host/sun4-solaris2/bin/nmmips test > test.nm
perl /usr/software/dev/packages/epics/epics3.14.6GEM9.1/base/configure/tools/munch.pl < test.nm > test_ctdt.c
/usr/software/dev/packages/vxworks/tornado2.0/mips/host/sun4-solaris2/bin/ccmips -c -D_POSIX_SOURCE -DCPU=R4000 -DvxWorks -include /usr/software/dev/packages/vxworks/tornado2.0/mips/target/h/vxWorks.h -ansi -O3 -Wall -EB -mcpu=r4000 -mips3 -mgp32 -mfp32 -non_shared -G 0 -fno-builtin -fdollars-in-identifiers -I. -I.. -I/home/mrippa/install/example1/include/os/vxWorks -I/home/mrippa/install/example1/include -I/usr/software/dev/packages/epics/epics3.14.6GEM9.1/base/include/os/vxWorks -I/usr/software/dev/packages/epics/epics3.14.6GEM9.1/base/include


-I/usr/software/dev/packages/vxworks/tornado2.0/mips/target/h test_ctdt.c
/usr/software/dev/packages/vxworks/tornado2.0/mips/host/sun4-solaris2/bin/ldmips -r -EB -X -o test.munch test_ctdt.o test
Installing binary /home/mrippa/install/example1/bin/vxWorks-mips/test
Installing binary /home/mrippa/install/example1/bin/vxWorks-mips/test.munch


------Makefile------------

TOP=../..

include $(TOP)/configure/CONFIG

PROD_IOC_vxWorks += test

DBD += test.dbd
test_DBD += base.dbd

test_SRCS+= test_registerRecordDeviceDriver.cpp

test_OBJS_vxWorks += $(EPICS_BASE_BIN)/acctst
test_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
test_LIBS += $(EPICS_BASE_IOC_LIBS)

include $(TOP)/configure/RULES



Replies:
Re: R3.14 support for MIPS (hkbaja47) Andrew Johnson

Navigate by Date:
Prev: RE: assert failed in db_post_single_event_private for CALC record Jeff Hill
Next: Re: drvAscii decode string Matt Rippa
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: RE: TCP/UDP port for CA Jeff Hill
Next: Re: R3.14 support for MIPS (hkbaja47) Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·