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
<2013>
2014
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
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|