EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Next R3.14.9 version: -pre2 or -RC1?
From: Andrew Johnson <[email protected]>
To: "Ernest L. Williams Jr." <[email protected]>
Cc: EPICS core-talk <[email protected]>, "Peng, Sheng" <[email protected]>, "Kasemir, Kay" <[email protected]>
Date: Fri, 08 Dec 2006 16:25:25 -0600
Hi Ernest,

Ok, I think I've finished integrating your modifications into the build system; here's what I've done, and some feedback on your questions.

Ernest L. Williams Jr. wrote:

Problems with vxWorks build with new config file structure:
(1) Can't build for vxWorks 5.5.X and vxWorks 6.X

Sorry, I'm not letting that Camel's nose in, because someone else will want to be able to build for both vxWorks 6.2 and 6.3 - where does this stop? See below...

This is not good. Since our production environment includes both.
So, vxWorks-ppc604 gets overwritten by second build of EPICS BASE
against a different version of vxWorks.  I am sure that other sites that
move to vxWorks 6 will experience this.

It should be relatively easy to define a new target architecture vxWorks6-ppc604 which inherits its settings from the regular vxWorks-ppc604 target but overrides the vxWorks version and directory settings. I do not want that architecture to appear in base though.

I think we should have the config files contain vxWorks major version
and BSP name like before.  Looks like you allow RTEMS to do this?

No, the numbers after the RTEMS names are all machine architectures AFAIK. We do include the BSP name in the RTEMS target architecture because when you build an RTEMS IOC you're including the board-specific code into the final binary. On vxWorks that is not necessary since we don't link the EPICS code with any vxWorks BSP-specific code.

For example, we are starting to use the altivec support on the MVME5110
but the MVME5100 does not have altivec support.

I've added a ppc604_altivec target, which derives from the ppc604_long target to permit this. EPICS makes no use of the altivec capabilities, but if you're building Base for a system that does do some altivec processing the Base code must be built with the appropriate flag set to avoid strange problems.

Another example is using
the BSP/target name to discover whether we have a UNIVERSE or Tsi148
interface for a DMA driver that we may write.  Having, the scheme that
we used last time just turns into a bit more compile time and disk
space, right?

Anything like that is BSP-specific, and IMHO should appear in the vxWorks boot file itself. I have three different implementations with a common API that drives the VME DMA engines on the VMEchip2 (MVME16x, MVME17x boards), the Universe-2 (MVME2100, 2700, and 5100) and the Tempe (MVME6100, 3100).

Alternatively you could create a local alias architecture for your different boards that are based on the base targets. If you look at the CONFIG.Common.vxWorks-ppc604_long file in the forthcoming R3.14.9-pre2 release you'll see how simple this is to do: you only have to create the relevent CONFIG.Common.vxWorks-xxxx file and tell your build system to compile that architecture.

Running tests in libCom under linux-x86_64:
Only the blockingSockTest failed all other passed:
=============================================================
[williams@dragon O.linux-x86_64]$ ./blockingSockTest
1..1

A call to "assert (status == 0)" failed in ../blockingSockTest.cpp line
173.
EPICS Release EPICS R3.14.9- $R3-14-9-pre1$ $2006/11/20 21:09:36$.
Current time Fri Dec 01 2006 09:41:41.202612000.
Please E-mail this message to the author or to [email protected]
Calling epicsThreadSuspendSelf()

I'm pretty sure this failed because the test requires that there are no CA servers running on the test machine, and that assertion failure comes from it being unable to bind to the CA server port.

By the way, there's now a much easier way to run all the tests in base - you just type 'make -s runtests' and it will run everything and summarize the results for you at the end. We only need to see the detailed output from a particular test if it fails.

As to your patches, almost everything should now be there in the -pre2 release. I am not setting the -nostdlib flag because it is only used if you use gcc/g++ to link, which we don't. I did a diff between two builds on Tornado 2.2, with and without that flag, and the results were bitwise identical.

- Andrew
--
There is considerable overlap between the intelligence of the smartest
bears and the dumbest tourists -- Yosemite National Park Ranger

Replies:
Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.
Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.
References:
Next R3.14.9 version: -pre2 or -RC1? Andrew Johnson
Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.

Navigate by Date:
Prev: Re: configure/os/linux, configure/os/freebsd, configure/os/win32 .... Andrew Johnson
Next: Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.
Next: Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·