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  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  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  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: epics support for powerpc64-linux
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: Jeong Han Lee <citadel.lee at gmail.com>, Heinz Junkes <junkes at fhi-berlin.mpg.de>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Wed, 31 Mar 2021 22:58:14 +0000
Heniz, see my question at the end…


On Mar 31, 2021, at 3:08 PM, Jeong Han Lee wrote:
> 
> On Wed, Mar 31, 2021 at 12:36 PM Heinz Junkes via Tech-talk
> <tech-talk at aps.anl.gov> wrote:
>> 
>> Now I have booted the IFC_1420 with the native QorIQ SDK:
>> 
>> ifc-1420a:~$ uname -a
>> Linux ifc-1420a 4.1.8-rt8-g5d3dde1 #9 SMP Tue Jan 29 16:28:41 CET 2019 ppc64 GNU/Linux
>> ifc-1420a:~$ more /etc/issue
>> QorIQ SDK (FSL Reference Distro) 2.0 \n \l
>> 
>> and wanted to naively try to build EPICS on it and I got that (which was kind of obvious):
>> 
>> ifc-1420a:~/EPICS/epics-base$ make
>> ./src/tools/EpicsHostArch.pl: Architecture 'powerpc64-linux' not recognized
>> configure/CONFIG:58: configure/os/CONFIG..Common: No such file or directory
>> make: *** No rule to make target `configure/os/CONFIG..Common'.  Stop.
>> 
> 
> You have to modify src/tools/EpicsHostArch.pl to match your platform.

Strictly speaking that is only necessary if your build environment doesn’t set the EPICS_HOST_ARCH environment variable. If the variable is set that script never gets called.

> Here is the example, which was for the ESS Linux.
> 
> https://github.com/jeonghanlee/e3-base-4-timo/blob/master/patch/Site/R7.0.3.1/ess_epics_host_arch.p0.patch
> 
> Then, you have to modify the following file in order to match the
> QorIQ SDK, I think, this should be very minimal, and put them into
> your base configure/os/ path.
> 
> https://github.com/jeonghanlee/e3-base-4-timo/blob/master/configure/os/CONFIG_SITE.Common.linux-ppc64e6500

Are there multiple different ABIs that Linux applications running on the ppc64 CPUs use? I would prefer that we not use the the e6500 part of your name if it isn’t needed, and reading the gcc options for PowerPC it looks like there are only two different ABIs. From https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/RS_002f6000-and-PowerPC-Options.html#index-mabi_003delfv1

> -mabi=elfv1
> Change the current ABI to use the ELFv1 ABI. This is the default ABI for big-endian PowerPC 64-bit Linux. Overriding the default ABI requires special system support and is likely to fail in spectacular ways.
> 
> -mabi=elfv2
> Change the current ABI to use the ELFv2 ABI. This is the default ABI for little-endian PowerPC 64-bit Linux. Overriding the default ABI requires special system support and is likely to fail in spectacular ways.


Do sites need to distinguish both those ABIs with different target architecture names?

For native builds (i.e. when not cross-compiling) just calling gcc and g++ with no special flags should produce binaries that run properly on the local machine. I would like EPICS to support a generic linux-ppc64 host target which gets detected by the EpicsHostArch.pl script. We’ve actually been doing this for years for the linux-arm target – there were probably several incompatible ARM configurations but as long as you’re only building for your own machine that EPICS target has worked fine.

There are already some linux-ppc64 files in the configure/os directory but they were added long ago and I don’t believe they have been used recently, so I’d be happy to change them if necessary.

For cross-compiled targets it’s likely that we would need to add some target-specific flags though, so it might be necessary to have separate target names for the different kinds of ppc64 CPUs in those cases.


Heinz, have you tried doing just

$ export EPICS_HOST_ARCH=linux-ppc64
$ make

and if so where and how did the build fail?

- Andrew


-- 
Complexity comes for free, simplicity you have to work for.


Replies:
Re: epics support for powerpc64-linux Jeong Han Lee via Tech-talk
Re: epics support for powerpc64-linux junkes via Tech-talk
References:
epics support for powerpc64-linux Heinz Junkes via Tech-talk
Re: epics support for powerpc64-linux Torsten Bögershausen via Tech-talk
Re: epics support for powerpc64-linux Heinz Junkes via Tech-talk
Re: epics support for powerpc64-linux Jeong Han Lee via Tech-talk

Navigate by Date:
Prev: Re: Question about ACROMAG IP-408 Wang, SuYin Grass via Tech-talk
Next: Re: epics support for powerpc64-linux Jeong Han Lee 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  <20212022  2023  2024 
Navigate by Thread:
Prev: Re: epics support for powerpc64-linux Jeong Han Lee via Tech-talk
Next: Re: epics support for powerpc64-linux Jeong Han Lee 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  <20212022  2023  2024 
ANJ, 01 Apr 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·