On 7/16/21 12:47 PM, Siddons, David via Tech-talk wrote:
> Hi Andrew,
> It doesn't seem to. The file is clearly compiled and included in the support library:
>
> /home/peter/quick-start/rtems/5/bin/arm-rtems5-ar rc libmyexampleSupport.a xxxRecord.o devXxxSoft.o dbSubExample.o devmyexampleVersion.o myexampleHello.o initTrace.o tarball.o
I'm not sure my 'epicsRtemsFSImage' trick will work from a library.
Try moving tarball.c to myexample_SRCS.
> myexample_SRCS += tarball.c
And I think you can just remove '..._SRCS += tarball.h'.
It's probably not doing anything helpful.
> arm-rtems5-nm libmyexampleSupport.a |grep epicsRtems
> 00000000 R epicsRtemsFSImage
> 00000000 R epicsRtemsFSImage_size
>
> but not in the myexample executable:
>
> peter@peter-OptiPlex-7070:~/test_ioc/bin/RTEMS-beagleboneblack$ arm-rtems5-nm myexample |grep epicsRtems
> 8060306c V epicsRtemsFSImage
>
> which is the weak symbol.
> Pete.
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> *From:* Johnson, Andrew N. <anj at anl.gov>
> *Sent:* Friday, July 16, 2021 3:21 PM
> *To:* Siddons, David <siddons at bnl.gov>
> *Cc:* EPICS tech-talk <tech-talk at aps.anl.gov>
> *Subject:* Re: linking in IOC makefile for RTEMS
>
> Hi Pete,
>
> Just an idea, does it make any difference if you remove the tarball.h file from your _SRCS variable (you shouldn’t include .h files in _SRCS anyway, if you want to install them they go into INC instead)?
>
> - Andrew
>
>
>> On Jul 16, 2021, at 2:08 PM, Siddons, David via Tech-talk <tech-talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov>> wrote:
>>
>> I have an RTEMS test IOC (generated using makeBaseApp) to which I've added a source file which declares a large array (actually, a compiled-in file system). The Makefile has:
>>
>> ......
>> # rather than directly into the IOC application, that
>> # causes problems on Windows DLL builds
>> myexampleSupport_SRCS += dbSubExample.c
>> myexampleSupport_SRCS += devmyexampleVersion.c
>> myexampleSupport_SRCS += myexampleHello.c
>> myexampleSupport_SRCS += initTrace.c
>> myexampleSupport_SRCS += tarball.h
>> myexampleSupport_SRCS += tarball.c
>>
>> where the tarball files are my additions. The C file contains:
>>
>> /*
>> * Declarations for C structure representing binary file epicsRtemsFSImage
>> *
>> * WARNING: Automatically generated -- do not edit!
>> */
>>
>> #include <sys/types.h>
>>
>> const unsigned char epicsRtemsFSImage[] = {
>> 0x74, 0x61, 0x72, 0x62, 0x61, 0x6c, 0x6c, 0x2f, 0x00, 0x00, 0x00, 0x00,
>> 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>> .....etc, then:
>>
>> const size_t epicsRtemsFSImage_size = sizeof(epicsRtemsFSImage);
>>
>>
>> The EPICS base libraries contain a weak reference to this same symbol (from libcom/RTEMS/init.c) , and I expected this definition to overwrite the weak one, but inspection of the executable only shows the weak one, and the size variable is not referenced at all. What am I missing? It seems that the tarball file is compiled, but not linked.
>>
>> Pete.
>
> --
> Complexity comes for free, simplicity you have to work for.
>
- Replies:
- Re: linking in IOC makefile for RTEMS Siddons, David via Tech-talk
- References:
- linking in IOC makefile for RTEMS Siddons, David via Tech-talk
- Re: linking in IOC makefile for RTEMS Johnson, Andrew N. via Tech-talk
- Re: linking in IOC makefile for RTEMS Siddons, David via Tech-talk
- Navigate by Date:
- Prev:
Re: Attocube AMC300 driver? Lang, Keenan C. via Tech-talk
- Next:
Re: linking in IOC makefile for RTEMS Siddons, David via Tech-talk
- 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: linking in IOC makefile for RTEMS Siddons, David via Tech-talk
- Next:
Re: linking in IOC makefile for RTEMS Siddons, David via Tech-talk
- 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
|