<div dir="ltr"><div dir="ltr">[UPDATE]: Finally modified the RSB recipes to make them work with make utility and EPICS was built successfully.<div><br></div><div><pre style="color:rgb(0,0,0);white-space:pre-wrap">iff --git a/source-builder/config/epics-7-1.cfg b/source-builder/config/epics-7-1.cfg
index f51c6582..a9581a2e 100644
--- a/source-builder/config/epics-7-1.cfg
+++ b/source-builder/config/epics-7-1.cfg
@@ -21,7 +21,6 @@ URL:    <a href="https://epics.mpg.de/">https://epics.mpg.de/</a>
 #
 %source set epics --rsb-file=epics-base-%{epics_version}.tar.gz <a href="https://gitlab.fhi.mpg.de/junkes/epics-base/-/archive/%{epics_version}/epics-base-%{epics_version}.tar.gz">https://gitlab.fhi.mpg.de/junkes/epics-base/-/archive/%{epics_version}/epics-base-%{epics_version}.tar.gz</a>
 
-
 #
 # Prepare the source code.
 #
@@ -31,20 +30,9 @@ URL:           <a href="https://epics.mpg.de/">https://epics.mpg.de/</a>
   source_dir_epics="epics-base-%{epics_version}"
 
   %source setup epics -q -n epics-base-%{epics_version}
-#
-# Changing the RTEMS Version in epics-base/configure/os/CONFIG_SITE.Common.RTEMS
-#
-sed -i 's/RTEMS_VERSION = .*/RTEMS_VERSION = 5/g' configure/os/CONFIG_SITE.Common.RTEMS
-
-#
-# Changing the RTEMS Base in epics-base/configure/os/CONFIG_SITE.Common.RTEMS
-#
-sed -i "s/^RTEMS_BASE .*/RTEMS_BASE = \/home\/mritunjay\/development\/rtems\/\$\(RTEMS_VERSION\)\-arm/g" configure/os/CONFIG_SITE.Common.RTEMS
 
   cd ${build_top}
 
-
-
 %build
   build_top=$(pwd)
 
@@ -52,7 +40,7 @@ sed -i "s/^RTEMS_BASE .*/RTEMS_BASE = \/home\/mritunjay\/development\/rtems\/\$\
 
   %{build_build_flags}
 
-  %{__make} PREFIX=%{_prefix}
+  %{__make} PREFIX=%{_prefix} RTEMS_BASE=$HOME/development/rtems/5-arm RTEMS_VERSION=5 CROSS_COMPILER_TARGET_ARCHS=RTEMS-xilinx_zynq_a9_qemu
 
   cd ${build_top}
 
@@ -62,6 +50,6 @@ sed -i "s/^RTEMS_BASE .*/RTEMS_BASE = \/home\/mritunjay\/development\/rtems\/\$\
   rm -rf $SB_BUILD_ROOT
 
   cd ${source_dir_epics}
-  %{__make} DESTDIR=$SB_BUILD_ROOT PREFIX=%{_prefix} install
+  %{__make} DESTDIR=$SB_BUILD_ROOT PREFIX=%{_prefix} RTEMS_BASE=$HOME/development/rtems/5-arm RTEMS_VERSION=5 CROSS_COMPILER_TARGET_ARCHS=RTEMS-xilinx_zynq_a9_qemu
 </pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"><font face="arial, sans-serif">Thanks</font></pre><pre style="color:rgb(0,0,0);white-space:pre-wrap"><font face="arial, sans-serif">Mritunjay</font></pre></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 19, 2020 at 2:47 PM Heinz Junkes <<a href="mailto:junkes@fhi-berlin.mpg.de">junkes@fhi-berlin.mpg.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hallo Mritunjay,<br>
<br>
this was an improvement in the EPICS configuration to include the tool/path definitions<br>
from the RTEMS BSP directory:<br>
<br>
configure/os/CONFIG.Common.RTEMS:<br>
...<br>
#-------------------------------------------------------<br>
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.<br>
include $(RTEMS_BASE)/$(GNU_TARGET)/$(RTEMS_BSP)/Makefile.inc<br>
include $(RTEMS_CUSTOM)<br>
include $(CONFIG.CC)<br>
<br>
#-------------------------------------------------------<br>
# RTEMS cross-development tools<br>
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm<br>
CCC = $(RTEMS_TOOLS)/bin/$(CXX)<br>
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E<br>
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)<br>
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r<br>
…<br>
<br>
The assumption was that Makefile.inc is present in every BSP.<br>
If it cannot be found in the pc-386 BSP, should the BSP be adapted?<br></blockquote><div><br></div><div>I will have to look into it again tomorrow and then I will revert on it.</div><div><br></div><div>Thanks</div><div>Mritunjay <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
Viele Grüße<br>
Heinz Junkes<br>
--<br>
Experience directly varies with equipment ruined.<br>
<br>
<br>
<br>
> On 19. Aug 2020, at 07:09, Mritunjay Sharma <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> <br>
> Hi everyone, <br>
> <br>
> Before I begin my queries [ mainly regarding epics upstream], let me give a few updates. <br>
> <br>
> As per the suggestion of Gedare, I started building by hand the pc-386 and xilinx_zynq_a9_qemu using<br>
> the terminal configured make command. <br>
> <br>
> What I did initially as an experiment is that, in configure/os/CONFIG_SITE.Common.RTEMS: <br>
> <br>
> I made <br>
> RTEMS_VERSION = <br>
> RTEMS_BASE = <br>
> <br>
> That is both were left blank.<br>
> <br>
> Similarly, I did it for configure/CONFIG_SITE:<br>
> CROSS_COMPILER_TARGET_ARCHS=<br>
> <br>
> After this, I started building EPICS for xilinx_zynq_a9_qemu from the 'epics-base' downloaded from this source of Heinz [<a href="https://gitlab.fhi.mpg.de/junkes/epics-base" rel="noreferrer" target="_blank">https://gitlab.fhi.mpg.de/junkes/epics-base</a>]<br>
> <br>
> The command I used was:<br>
> <br>
> ` make RTEMS_BASE=$HOME/development/rtems/5-arm RTEMS_VERSION=5 CROSS_COMPILER_TARGET_ARCHS=RTEMS-xilinx_zynq_a9_qemu`<br>
> <br>
> The Build was successful for xilinx_zynq_a9_qemu.<br>
> <br>
> However, if I used the same `epics-base` and tried to build it for pc-386 using the command:<br>
> <br>
> `make RTEMS_BASE=$HOME/development/rtems/5 RTEMS_VERSION=5 BUILD_ARCHS=RTEMS-pc386`<br>
> <br>
> The Build failed and I got this error:<br>
> <br>
> `make -C ./configure install <br>
> make[1]: Entering directory '/home/mritunjay/development/EPICS/epics-base/configure'<br>
> make -C O.RTEMS-pc386 -f ../Makefile TOP=../.. \<br>
>     T_A=RTEMS-pc386 install<br>
> make[2]: Entering directory '/home/mritunjay/development/EPICS/epics-base/configure/O.RTEMS-pc386'<br>
> ../../configure/os/CONFIG.Common.RTEMS:36: /home/mritunjay/development/rtems/5//pc386/Makefile.inc: No such file or directory<br>
> make[2]: *** No rule to make target '/home/mritunjay/development/rtems/5//pc386/Makefile.inc'.  Stop.<br>
> make[2]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/configure/O.RTEMS-pc386'<br>
> make[1]: *** [../configure/RULES_ARCHS:58: install.RTEMS-pc386] Error 2<br>
> make[1]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/configure'<br>
> make: *** [configure/RULES_DIRS:84: configure.install] Error 2<br>
> `<br>
> This made me try another `epics-base` of Heinz that he earlier suggested which is: <a href="https://github.com/hjunkes/epicsBaseOwnPlayground/tree/3afec267ab08568ea454789e562450b00feea5c0" rel="noreferrer" target="_blank">https://github.com/hjunkes/epicsBaseOwnPlayground/tree/3afec267ab08568ea454789e562450b00feea5c0</a><br>
> <br>
> Running the same `make RTEMS_BASE=$HOME/development/rtems/5 RTEMS_VERSION=5 BUILD_ARCHS=RTEMS-pc386`<br>
> the command worked here and EPICS for pc-386 was successfully built. <br>
> <br>
> Therefore, we need to make changes in the epics code base so that we can have one common epics-base which works for both. <br>
> <br>
> This was the update. I am modifying the RSB recipes and soon will update regarding the build related to it. <br>
> <br>
> Now, I am commenting on the queries further below. <br>
> <br>
> <br>
> On Wed, Aug 19, 2020 at 9:45 AM Gedare Bloom <<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>> wrote:<br>
> On Tue, Aug 18, 2020 at 7:13 PM Heinz Junkes <<a href="mailto:junkes@fhi-berlin.mpg.de" target="_blank">junkes@fhi-berlin.mpg.de</a>> wrote:<br>
> ><br>
> > Hi Mritunjay,<br>
> ><br>
> > To define the architecture you can create a file “CONFIG_SITE.local” in “configure”.<br>
> > Look at the comment at the end of the file "CONFIG_SITE":<br>
> ><br>
> Do I have to just write `CROSS_COMPILER_TARGET_ARCHS=` in CONFIG_SITE.local file? <br>
> Please if you can tell more about what changes it can bring for us? <br>
> > "<br>
> > ...<br>
> > # Overrides for the settings above may appear in a CONFIG_SITE.local file<br>
> > -include $(CONFIG)/CONFIG_SITE.local.<br>
> > “<br>
> ><br>
> <br>
> Can we generate/inject the file/variables directly from scripts?<br>
> <br>
> I also have the same question. <br>
> <br>
> Thanks<br>
> Mritunjay Sharma<br>
>  <br>
> <br>
> > Heinz<br>
> ><br>
> > > On 16. Aug 2020, at 12:16, Mritunjay Sharma <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> > ><br>
> > ><br>
> > ><br>
> > > On Sun, Aug 16, 2020 at 1:12 PM Chris Johns <<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>> wrote:<br>
> > > On 16/8/20 8:29 am, Mritunjay Sharma wrote:<br>
> > > > On Sun, Aug 16, 2020 at 12:15 AM Gedare Bloom <<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a><br>
> > > > <mailto:<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>>> wrote:<br>
> > > ><br>
> > > >     Hi Mritunjay, Chris:<br>
> > > ><br>
> > > >     For the RSB, since it is user-facing, we need to be sure to minimize<br>
> > > >     its dependencies on the user environment and platform. So this pycli<br>
> > > >     can only be used if it is distributed standard with Python 2 and<br>
> > > >     Python 3.<br>
> > > ><br>
> > > >     Would someone be able to apply this patch and use it to build epics?<br>
> > > >     No, because (1) they won't have pycli available, and (2) they don't<br>
> > > >     have a path /home/mritunjay<br>
> > > ><br>
> > > ><br>
> > > > I think what you are saying is absolutely right. It will be really a great help<br>
> > > > if Chris can guide on what next can be done.<br>
> > ><br>
> > > See below.<br>
> > ><br>
> > > > As far as 'pycli' is concerned, I have made a couple of minor tweaks. Gave it a<br>
> > > > better name 'sedpy' and made it public on GitHub.<br>
> > > ><br>
> > > > Please find the link to the<br>
> > > > project here: <a href="https://github.com/mritunjaysharma394/sedpy" rel="noreferrer" target="_blank">https://github.com/mritunjaysharma394/sedpy</a><br>
> > ><br>
> > > Thanks but I currently do not see a need for this tool.<br>
> > ><br>
> > > > I will appreciate if mentors can have a look and try this and see if it in any<br>
> > > > way can be modified<br>
> > > > to be used with RSB or else we will go with what is suggested.<br>
> > ><br>
> > > Please put the RSB to one side. I will let you know when we can return to it.<br>
> > ><br>
> > > I believe patching config files in EPCIS from the RSB is fragile. EPICS should<br>
> > > be free to change any of these files without needing to considering the effect<br>
> > > it has on the RSB. Just because we can peek inside does not means we are free to<br>
> > > exploit what we see.<br>
> > ><br>
> > > What happens if you define the needed variables on the make command line? For<br>
> > > example:<br>
> > ><br>
> > >  gmake RTEMS_BASE=$HOME/development/rtems/5 RTEMS_VERSION=5.1-rc2<br>
> > ><br>
> > > These variables are just normal make ones and so they can be overridden from the<br>
> > > command line.<br>
> > ><br>
> > > Please investigate this and see what happens?<br>
> > ><br>
> > > Hi Chris,<br>
> > > I investigated and used:<br>
> > ><br>
> > >  `make RTEMS_BASE=$HOME/development/rtems/5-arm RTEMS_VERSION=5`<br>
> > ><br>
> > > This worked perfectly fine and the build was successful. Thank you so much for telling this. It makes it so<br>
> > > easy. What can we do next? This surely removes the requirement of `sed` or the tool I built to make command line changes.<br>
> > ><br>
> > > Thanks<br>
> > > Mritunjay<br>
> > ><br>
> > ><br>
> > > Chris<br>
> ><br>
<br>
</blockquote></div></div>