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: Jeong Han Lee via Tech-talk <tech-talk at aps.anl.gov>
To: "Johnson, Andrew N." <anj at anl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Wed, 31 Mar 2021 17:10:54 -0700
Andrew,

On Wed, Mar 31, 2021 at 3:58 PM Johnson, Andrew N. <anj at anl.gov> wrote:
>
> 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.

So, you can remove it from the EPICS base, because strictly speaking,
it doesn't need it.


>
> > 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?

The hardware is the last generation of big-endian. You rejection for
accepting  my old configuration file, so they have no chance to
change this ridiculous file name.

>
> 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.
>

You always misinterpreted my point, I don't care about this arch
anymore, this is just to help him to fix his issue. You may look at my
very old email about this configuration and try to understand what I
said to you.

>
> Heinz, have you tried doing just
>
> $ export EPICS_HOST_ARCH=linux-ppc64
> $ make
>
> and if so where and how did the build fail?

You look at my previous email also, Yocto Linux has a slightly
different directory structure from which the EPICS base has. That was
my first argument to add this configuration to the epics base, but I
agreed this file is too site-specific.

HTH,
Han





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

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
Re: epics support for powerpc64-linux Johnson, Andrew N. via Tech-talk

Navigate by Date:
Prev: Re: epics support for powerpc64-linux Johnson, Andrew N. via Tech-talk
Next: Re: epics support for powerpc64-linux junkes 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 Johnson, Andrew N. via Tech-talk
Next: Re: epics support for powerpc64-linux junkes 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 ·