[GSoC 2020]: Need help in writing sed alternative in Python for RSB recipes

Heinz Junkes junkes at fhi-berlin.mpg.de
Wed Aug 19 09:17:32 UTC 2020


Hallo Mritunjay,

this was an improvement in the EPICS configuration to include the tool/path definitions
from the RTEMS BSP directory:

configure/os/CONFIG.Common.RTEMS:
...
#-------------------------------------------------------
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.
include $(RTEMS_BASE)/$(GNU_TARGET)/$(RTEMS_BSP)/Makefile.inc
include $(RTEMS_CUSTOM)
include $(CONFIG.CC)

#-------------------------------------------------------
# RTEMS cross-development tools
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
CCC = $(RTEMS_TOOLS)/bin/$(CXX)
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r
…

The assumption was that Makefile.inc is present in every BSP.
If it cannot be found in the pc-386 BSP, should the BSP be adapted?


Viele Grüße
Heinz Junkes
--
Experience directly varies with equipment ruined.



> On 19. Aug 2020, at 07:09, Mritunjay Sharma <mritunjaysharma394 at gmail.com> wrote:
> 
> Hi everyone, 
> 
> Before I begin my queries [ mainly regarding epics upstream], let me give a few updates. 
> 
> As per the suggestion of Gedare, I started building by hand the pc-386 and xilinx_zynq_a9_qemu using
> the terminal configured make command. 
> 
> What I did initially as an experiment is that, in configure/os/CONFIG_SITE.Common.RTEMS: 
> 
> I made 
> RTEMS_VERSION = 
> RTEMS_BASE = 
> 
> That is both were left blank.
> 
> Similarly, I did it for configure/CONFIG_SITE:
> CROSS_COMPILER_TARGET_ARCHS=
> 
> After this, I started building EPICS for xilinx_zynq_a9_qemu from the 'epics-base' downloaded from this source of Heinz [https://gitlab.fhi.mpg.de/junkes/epics-base]
> 
> The command I used was:
> 
> ` make RTEMS_BASE=$HOME/development/rtems/5-arm RTEMS_VERSION=5 CROSS_COMPILER_TARGET_ARCHS=RTEMS-xilinx_zynq_a9_qemu`
> 
> The Build was successful for xilinx_zynq_a9_qemu.
> 
> However, if I used the same `epics-base` and tried to build it for pc-386 using the command:
> 
> `make RTEMS_BASE=$HOME/development/rtems/5 RTEMS_VERSION=5 BUILD_ARCHS=RTEMS-pc386`
> 
> The Build failed and I got this error:
> 
> `make -C ./configure install 
> make[1]: Entering directory '/home/mritunjay/development/EPICS/epics-base/configure'
> make -C O.RTEMS-pc386 -f ../Makefile TOP=../.. \
>     T_A=RTEMS-pc386 install
> make[2]: Entering directory '/home/mritunjay/development/EPICS/epics-base/configure/O.RTEMS-pc386'
> ../../configure/os/CONFIG.Common.RTEMS:36: /home/mritunjay/development/rtems/5//pc386/Makefile.inc: No such file or directory
> make[2]: *** No rule to make target '/home/mritunjay/development/rtems/5//pc386/Makefile.inc'.  Stop.
> make[2]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/configure/O.RTEMS-pc386'
> make[1]: *** [../configure/RULES_ARCHS:58: install.RTEMS-pc386] Error 2
> make[1]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/configure'
> make: *** [configure/RULES_DIRS:84: configure.install] Error 2
> `
> This made me try another `epics-base` of Heinz that he earlier suggested which is: https://github.com/hjunkes/epicsBaseOwnPlayground/tree/3afec267ab08568ea454789e562450b00feea5c0
> 
> Running the same `make RTEMS_BASE=$HOME/development/rtems/5 RTEMS_VERSION=5 BUILD_ARCHS=RTEMS-pc386`
> the command worked here and EPICS for pc-386 was successfully built. 
> 
> Therefore, we need to make changes in the epics code base so that we can have one common epics-base which works for both. 
> 
> This was the update. I am modifying the RSB recipes and soon will update regarding the build related to it. 
> 
> Now, I am commenting on the queries further below. 
> 
> 
> On Wed, Aug 19, 2020 at 9:45 AM Gedare Bloom <gedare at rtems.org> wrote:
> On Tue, Aug 18, 2020 at 7:13 PM Heinz Junkes <junkes at fhi-berlin.mpg.de> wrote:
> >
> > Hi Mritunjay,
> >
> > To define the architecture you can create a file “CONFIG_SITE.local” in “configure”.
> > Look at the comment at the end of the file "CONFIG_SITE":
> >
> Do I have to just write `CROSS_COMPILER_TARGET_ARCHS=` in CONFIG_SITE.local file? 
> Please if you can tell more about what changes it can bring for us? 
> > "
> > ...
> > # Overrides for the settings above may appear in a CONFIG_SITE.local file
> > -include $(CONFIG)/CONFIG_SITE.local.
> > “
> >
> 
> Can we generate/inject the file/variables directly from scripts?
> 
> I also have the same question. 
> 
> Thanks
> Mritunjay Sharma
>  
> 
> > Heinz
> >
> > > On 16. Aug 2020, at 12:16, Mritunjay Sharma <mritunjaysharma394 at gmail.com> wrote:
> > >
> > >
> > >
> > > On Sun, Aug 16, 2020 at 1:12 PM Chris Johns <chrisj at rtems.org> wrote:
> > > On 16/8/20 8:29 am, Mritunjay Sharma wrote:
> > > > On Sun, Aug 16, 2020 at 12:15 AM Gedare Bloom <gedare at rtems.org
> > > > <mailto:gedare at rtems.org>> wrote:
> > > >
> > > >     Hi Mritunjay, Chris:
> > > >
> > > >     For the RSB, since it is user-facing, we need to be sure to minimize
> > > >     its dependencies on the user environment and platform. So this pycli
> > > >     can only be used if it is distributed standard with Python 2 and
> > > >     Python 3.
> > > >
> > > >     Would someone be able to apply this patch and use it to build epics?
> > > >     No, because (1) they won't have pycli available, and (2) they don't
> > > >     have a path /home/mritunjay
> > > >
> > > >
> > > > I think what you are saying is absolutely right. It will be really a great help
> > > > if Chris can guide on what next can be done.
> > >
> > > See below.
> > >
> > > > As far as 'pycli' is concerned, I have made a couple of minor tweaks. Gave it a
> > > > better name 'sedpy' and made it public on GitHub.
> > > >
> > > > Please find the link to the
> > > > project here: https://github.com/mritunjaysharma394/sedpy
> > >
> > > Thanks but I currently do not see a need for this tool.
> > >
> > > > I will appreciate if mentors can have a look and try this and see if it in any
> > > > way can be modified
> > > > to be used with RSB or else we will go with what is suggested.
> > >
> > > Please put the RSB to one side. I will let you know when we can return to it.
> > >
> > > I believe patching config files in EPCIS from the RSB is fragile. EPICS should
> > > be free to change any of these files without needing to considering the effect
> > > it has on the RSB. Just because we can peek inside does not means we are free to
> > > exploit what we see.
> > >
> > > What happens if you define the needed variables on the make command line? For
> > > example:
> > >
> > >  gmake RTEMS_BASE=$HOME/development/rtems/5 RTEMS_VERSION=5.1-rc2
> > >
> > > These variables are just normal make ones and so they can be overridden from the
> > > command line.
> > >
> > > Please investigate this and see what happens?
> > >
> > > Hi Chris,
> > > I investigated and used:
> > >
> > >  `make RTEMS_BASE=$HOME/development/rtems/5-arm RTEMS_VERSION=5`
> > >
> > > This worked perfectly fine and the build was successful. Thank you so much for telling this. It makes it so
> > > easy. What can we do next? This surely removes the requirement of `sed` or the tool I built to make command line changes.
> > >
> > > Thanks
> > > Mritunjay
> > >
> > >
> > > Chris
> >

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5300 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200819/839c63ca/attachment-0001.bin>


More information about the devel mailing list