Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020 
<== Date ==> <== Thread ==>

Subject: Re: New OS_CLASS to epics-base
From: Michael Davidsaver <mdavidsaver@gmail.com>
To: Andrew Johnson <anj@aps.anl.gov>, Heinz Junkes <junkes@fhi-berlin.mpg.de>
Cc: EPICS core-talk <core-talk@aps.anl.gov>
Date: Thu, 1 Dec 2016 17:21:33 -0500
> Discussion on this from anyone else?

For my part, I don't like the idea of another OS class.  As mentioned it
will necessitate changes to Makefiles of almost every module which
supports RTEMS.  To me, this much churn would need a very compelling reason.


@Heinz, will it be the case that code for >4.10 doesn't work with
<=4.10?  I had hoped that the conditionals could be limited to a few
'#ifdef'.


On 11/30/2016 07:02 PM, Andrew Johnson wrote:
> Hello Heinz,
> 
> On 11/30/2016 10:56 AM, Heinz Junkes wrote:
>> Is there a guideline how to add a new OS_CLASS to epics-base ?
> 
> I'm not aware of anything written down. The Application Developers Guide
> section on the Build system lists the classes known at the time the
> document was written, but says nothing about adding new classes.
> 
>> My suggestion : In addition to RTEMS : RTEMS-4.12
> 
> The value of OS_CLASS is used in a couple of different ways, so we have
> to be slightly careful about which characters to use. The main uses I
> know of are:
> 
>  * Source directories (e.g. src/libCom/osi/os/*, include/os/*)
>  * Makefile variables (e.g. PROD_*, LIB_SRCS_*, USR_CFLAGS_* etc.)
> 
> GNUMake's variable names are more flexible that you might expect and
> both . and - are legal in variable names, although the results might
> look slightly strange to some people.
> 
> Note that adding a second RTEMS OS_CLASS means any support applications
> that currently have something like this in their Makefiles
> 
>   PROD_vxworks = Vxxx
>   PROD_RTEMS = Rxxx
>   PROD_default = xxx
> 
> will try to build the workstation product xxx for RTEMS-4.12 if Base is
> configured to build one of the new RTEMS targets, which is probably the
> wrong target. To change that the Makefile would need an additional line
> such as
> 
>   PROD_RTEMS-4.12 = Rxxx
> 
> That variable name looks a little strange as I mentioned above, and it's
> a pity to have to force support module authors to add an extra line like
> this.
> 
>> The next could then be RTEMS-SMP ?
> 
> Do you think you would need yet /another/ OS_CLASS for the SMP version?
> I would much prefer to have one class handle both unless you really
> can't avoid it, and in fact considering my discussion above I'm
> wondering if the idea of adding a second OS_CLASS for RTEMS is the right
> thing to do after all.
> 
> It might be better to configure the libCom build to search different
> source directories depending on the RTEMS version number, or on some
> target-specific setting given in the CONFIG_SITE.Common.RTEMS-<arch>
> file. I will help with doing this if you want to go that way.
> 
> You could also consider putting different implementations in different
> source files under osi/os/RTEMS and have the main osd*.c files #include
> one or other of the implementations, but this doesn't solve situations
> where your new version wants to throw away the old implementation and
> just use the copy in the osi/os/posix directory. I think my previous
> idea could be made to work with that.
> 
> Discussion on this from anyone else?
> 
> - Andrew
> 


References:
Re: New OS_CLASS to epics-base Andrew Johnson

Navigate by Date:
Prev: Re: New OS_CLASS to epics-base Andrew Johnson
Next: strnlen? Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020 
Navigate by Thread:
Prev: Re: New OS_CLASS to epics-base Andrew Johnson
Next: strnlen? Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020 
ANJ, 01 Dec 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·