EPICS Controls 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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Generating a loadable module for cexp (epics 3.14.12.3)
From: Michael Davidsaver <[email protected]>
To: [email protected]
Date: Fri, 20 Sep 2013 21:13:38 -0400
This is what we use.  Tested with EPICS 3.14.11 and 3.14.12.3 w/ RTEMS
4.9.3.

https://raw.github.com/epicsdeb/epics-base/master/debian/patches/0012-rtems-build-gesys-loadable-objects.patch

On 09/20/13 12:10, Till Straumann wrote:
> Your basic approach is correct. You'll just have to massage OP_SYS_LDFLAGS
> and OP_SYS_LDLIBS at the right places. IIRC the structure of the EPICS
> makefiles has changed (i.e. the order in which the different generic, host-
> and target- specific CONFIG files are included). IIRC I set in
> 
> os/CONFIG.$(EPICS_HOST_ARCH).$(T_A):
> 
> OP_SYS_LDLIBS=
> OP_SYS_LDFLAGS=$(CPU_CFLAGS) -Wl,-r -nostdlib
> 
> HTH
> - Till
> 
> On 09/19/2013 02:33 PM, Sue Witherspoon wrote:
>> Hi,
>>      I've been using cexp for rtems 4.9.2, epics version 3.14.11 for some
>> time now with little problem. Recently, I tried rebuilding
>> my application using epics version 3.14.12.3. The build was successful
>> with no errors but when I load the cexp module I get
>> pages of load errors ( ...already exists...). See below.
>>     What changed in the build process? Is there a fix for it? I did have
>> a similar problem when I added the 'devIocStats' library to
>> my epics 3.14.11 application but adding the following to my Makefile
>> alleviated the problem.
>> #  ADD RULES AFTER THIS LINE
>> OP_SYS_LDLIBS = -g
>>
>>> Welcome to RTEMS GeSys
>>> This system $Name:  $ was built on 20090323EDT11:17:38
>>> $Id: init.c,v 1.42 2007-09-11 17:39:48 till Exp $
>>> Installing TIOCGWINSZ line discipline: ok.
>>> To skip initialization, press a key now...
>>> Going to probe for Ethernet chips when initializing networking:
>>> (supported are 3c509 (ISA), 3c90x (PCI) and eepro100 (PCI) variants).
>>> NOTES:
>>>    - Initializing a 3c90x may take a LONG time (~1min); PLUS: it NEEDS
>>> media
>>>      autonegotiation!
>>>    - A BOOTP/DHCP server must supply my IF configuration
>>>      (ip address, mask, [gateway, dns, ntp])
>>> Ethernet address 0:E0:4B:2B:9E:E4
>>> PCI IDs: 0x8086 0x1209 0x8086 0x70 0x10
>>> Chip Type: 0
>>> dec2114x : device 'dc1' not found on PCI bus
>>> etherlink : No Etherlink devices found
>>> 3C509: attach() called.
>>> 3C509: isa_probe() looking for a card...
>>> 3C509: isa_probe() fail to find a board.
>>> bootpc_init: using network interface 'fxp1'
>>> bootpc hw address is 0:e0:4b:2b:9e:e4
>>> My ip address is 129 .57 .228 .69
>>> Domain Name Server is 129 .57 .228 .40
>>> Domain Name Server is 129 .57 .32 .100
>>> Ignoring BOOTP/DHCP option code 150
>>> Time Server is 129 .57 .228 .40
>>> Time Server is 129 .57 .32 .100
>>> Domain name is acc.jlab.org
>>> Server name is 129.57.228.40
>>> Boot file is /cs/dvl/iocs/iocpct3/boot/pxegrub
>>> Subnet mask is 255 .255 .252 .0
>>> Server ip address is 129 .57 .228 .40
>>> Gateway ip address is 129 .57 .228 .1
>>> Log server ip address is 129 .57 .250 .11
>>> This is RTEMS-RPCIOD Release $Name: R_rtems_nfs_1_5 $
>>> ($Id: rpcio.c,v 1.42 2007/06/12 04:47:25 strauman Exp $)
>>>
>>> Till Straumann, Stanford/SLAC/SSRL 2002
>>> See LICENSE file for licensing info
>>> This is RTEMS-NFS Release $Name: R_rtems_nfs_1_5 $
>>> ($Id: nfs.c,v 1.48 2007/06/12 04:47:25 strauman Exp $)
>>>
>>> Till Straumann, Stanford/SLAC/SSRL 2002
>>> See LICENSE file for licensing info
>>> Trying to synchronize NTP...OK
>>> Trying to mount 129.57.228.40:/cs/dvl on /boot
>>> Change Dir to '/boot/iocs/iocpct3/'
>>> Trying symfile 'BUILTIN', system script 'st.sys'
>>> Type 'cexpsh.help()' for help (no quotes)
>>> 'st.sys':
>>>    # IOC: iocpct3
>>>    # Location:
>>>    ld    = cexpModuleLoad
>>> 0x00107054 (1077332)
>>>    unld  = cexpModuleUnload
>>> 0x001079c8 (1079752)
>>>    lsmod = cexpModuleInfo
>>> 0x00107fe0 (1081312)
>>>    rtems_rpc_start_portmapper(50)
>>> 0x00000000 (0)
>>>    #
>>>    chdir ("/boot")
>>> 0x00000000 (0)
>>>    < iocs/Gesys-Rtems/misc/mnt_cfg.init
>>> <'iocs/Gesys-Rtems/misc/mnt_cfg.init':
>>>      nfsMount("devfs.acc.jlab.org","/cs/dvl","/cs/dvl")
>>> Trying to mount 129.57.228.40:/cs/dvl on /cs/dvl
>>> 0x00000000 (0)
>>>      mkdir("/usr",0777)
>>> 0x00000000 (0)
>>>      mkdir("/usr/llapp4",0777)
>>> 0x00000000 (0)
>>>      nfsMount("devfs.acc.jlab.org","/usr/llapp4","/usr/llapp4")
>>> Trying to mount 129.57.228.40:/usr/llapp4 on /usr/llapp4
>>> 0x00000000 (0)
>>>    #
>>>    # Define HOME to op area
>>>    HOME = "/cs/dvl/iocs/iocpct3"
>>> 0x008d5ee0 (9264864)
>>>    chdir (HOME)
>>> 0x00000000 (0)
>>>    #
>>>    ld("rtemsV/ioUtil.obj")
>>> 0x008d6020 (9265184)
>>>    ld("rtemsV/miscUtils.obj")
>>> 0x008d8740 (9275200)
>>>    ld("rtemsV/ntpclock.obj") && rtemsNtpInitialize(0,0)
>>> Trying to contact NTP server; (timeout ~1min.)... OK
>>> NTP synchro code initialized; this is EXPERIMENTAL
>>> WARNING: High resolution clock not implemented for this CPU
>>>           please contribute to <ntpNanoclock/pcc.h>
>>> 0x00000000 (0)
>>>    setenv("TZ","EST5EDT,M 3.2.0,M 11.1.0",1)
>>> 0x00000000 (0)
>>>    tzset()
>>> 0x00000000 (0)
>>>    setenv("STARTUP","st.sys",1)
>>> 0x00000000 (0)
>>>    setenv("ST_CMD","st.cmd",1)
>>> 0x00000000 (0)
>>>    setenv("ENGINEER","withers",1)
>>> 0x00000000 (0)
>>>    setenv("LOCATION","Hall A",1)
>>> 0x00000000 (0)
>>>    sethostname("devfs",6)
>>> 0x00000000 (0)
>>>    ansiTiocGwinszInstall(0)
>>> 0x00000000 (0)
>>>    #####< st.cmd
>>>
>>> Type 'cexpsh.help()' for help (no quotes)
>>> Cexp><st.cmd
>>> 'st.cmd':
>>>    ## Analogouse to startup.all
>>>    ## You may have to change test to something else
>>>    ## everywhere it appears in this file
>>>    setenv("EPICS_CA_MAX_ARRAY_BYTES","100000")
>>> 0x00000000 (0)
>>>    ##############################################
>>>    # Load Application Executable (that used cexpModuleLoad)
>>>    ##############################################
>>>    <startup.iocpct3Apps.obj
>>> <'startup.iocpct3Apps.obj':
>>>      # IOC: <IOC_TAG>
>>>      # APP: iocpct3Apps
>>>      # First load (objects)
>>>
>>>      iocpct3Apps_loaded=1
>>> 0x00000001 (1)
>>>
>>>      # load module for <iocpct3Apps>
>>>      #cexpModuleLoad("iocpct3AppsO/iocpct3Apps.obj")
>>>      cexpModuleLoad("iocpct3AppsO/iocpct3Apps")
>>> Symbol 'getch' already exists
>>> Symbol 'console_read' already exists
>>> Symbol 'BSP_install_rtems_irq_handler' already exists
>>> Symbol 'finite' already exists
>>> Symbol 'access_modes_assoc' already exists
>>> Symbol 'herror' already exists
>>> Symbol '__ieee754_log10' already exists
>>> Symbol 'rt_ifmsg' already exists
>>> Symbol 'MOU_Init' already exists
>>> Symbol 'rtems_termios_dequeue_characters' already exists
>>> Symbol 'rtems_libio_number_iops' already exists
>>> Symbol '_Priority_Major_bit_map' already exists
>>> Symbol 'rtems_gxx_key_delete' already exists
>>> Symbol 'rip_ctloutput' already exists
>>> Symbol 'rtems_task_create' already exists
>>> Symbol '_Event_Sync_state' already exists
>>> Symbol 'hard_math' already exists
>>> Symbol '_TOD_Get' already exists
>>> Symbol '_TOD_Get_uptime' already exists
>>> Symbol '_ZN10__cxxabiv119__pointer_type_infoD1Ev' already exists
>>> Symbol 'rtems_task_variable_add' already exists
>>> Symbol 'in_localaddr' already exists
>>> Symbol 'rn_addroute' already exists
>>> Symbol '__fp_lock_all' already exists
>>> Symbol '__p_time' already exists
>>> Symbol 'sbflush' already exists
>>> Symbol '_Bfree' already exists
>>> Symbol '_ZNKSt9type_info15__is_function_pEv' already exists
>>> Symbol '_ZNSt13runtime_errorC1ERKSs' already exists
>>> Symbol 'rtems_libio_semaphore' already exists
>>> Symbol 'pru_listen_notsupp' already exists
>>> Symbol 'rtems_kbpoll' already exists
>>> Symbol 'rewind' already exists
>>> Symbol '_timezone' already exists
>>> Symbol 'bind' already exists
>>> Symbol '_Dual_ported_memory_Manager_initialization' already exists
>>> Symbol 'rtems_exception_prologue_13' already exists
>>> Symbol '_ZNSt10bad_typeidD2Ev' already exists
>>> Symbol '__cxa_get_exception_ptr' already exists
>>> Symbol '_Thread_Stack_Free' already exists
>>> Symbol '_Objects_Get_name_as_string' already exists
>>> Symbol '_Chain_Get' already exists
>>> Symbol '__ns_name_ntop' already exists
>>> Symbol 'tcp_keepinit' already exists
>>> Symbol 'rtalloc_ign' already exists
>>> Symbol '__hi0bits' already exists
>>> Symbol 'printk' already exists
>>> .
>> (pages of the same)
>>> Symbol 'rtems_exception_prologue_17' already exists
>>> Symbol 'tcp_mssdflt' already exists
>>> Symbol 'udbinfo' already exists
>>> Error creating symbol table
>>> 0x00000000 (0)
>>>
> 

Replies:
Re: Generating a loadable module for cexp (epics 3.14.12.3) Sue Witherspoon
References:
Generating a loadable module for cexp (epics 3.14.12.3) Sue Witherspoon
Re: Generating a loadable module for cexp (epics 3.14.12.3) Till Straumann

Navigate by Date:
Prev: Re: Generating a loadable module for cexp (epics 3.14.12.3) Till Straumann
Next: EPICS base Installation Error- Need Help Vikas Kumthekar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Generating a loadable module for cexp (epics 3.14.12.3) Till Straumann
Next: Re: Generating a loadable module for cexp (epics 3.14.12.3) Sue Witherspoon
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·