<div dir="ltr">Hello Heinz and everyone,<div><br></div><div>Thank you so much, using RTEMS RSB for 4.10 really helped me a lot and saved a lot of time. </div><div>Though in all this it was a good learning experience for how to build the compiler</div><div>tools manually too :-)</div><div><br></div><div>The make was successful this time and the previous error was resolved but after the make while using 'sudo make install', I have got another error as following: </div><div>" ...( cd '/home/development/rtems_dev/rtems-4.10.2/i386-rtems4.10/pc386/lib' && i386-rtems4.10-ranlib libsapi.a )</div>/bin/bash: line 5: i386-rtems4.10-ranlib: command not found<br>Makefile:366: recipe for target 'install-project_libLIBRARIES' failed<br>make[5]: *** [install-project_libLIBRARIES] Error 127<br>make[5]: Leaving directory '/home/mritunjay/development/rtems_dev/rtems-4.10.2/pc-386/i386-rtems4.10/c/pc386/cpukit/sapi'<br>Makefile:952: recipe for target 'install-am' failed<br>make[4]: *** [install-am] Error 2<br>make[4]: Leaving directory '/home/mritunjay/development/rtems_dev/rtems-4.10.2/pc-386/i386-rtems4.10/c/pc386/cpukit/sapi'<br>Makefile:785: recipe for target 'install-recursive' failed<br>make[3]: *** [install-recursive] Error 1<br>make[3]: Leaving directory '/home/mritunjay/development/rtems_dev/rtems-4.10.2/pc-386/i386-rtems4.10/c/pc386/cpukit'<br>Makefile:425: recipe for target 'install-recursive' failed<br>make[2]: *** [install-recursive] Error 1<br>make[2]: Leaving directory '/home/mritunjay/development/rtems_dev/rtems-4.10.2/pc-386/i386-rtems4.10/c/pc386'<br>Makefile:286: recipe for target 'install-recursive' failed<br>make[1]: *** [install-recursive] Error 1<br>make[1]: Leaving directory '/home/mritunjay/development/rtems_dev/rtems-4.10.2/pc-386/i386-rtems4.10/c'<br>Makefile:304: recipe for target 'install-recursive' failed<br>make: *** [install-recursive] Error 1"<div><br></div><div>I am trying to figure out on what can be the reason behind this, it will be kind of </div><div>you all to guide help this fix.</div><div><br></div><div>Thanks,</div><div>Mritunjay<br><div><br></div><div><br><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 2, 2020 at 9:59 AM 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">Hello, Mritunjay,<br>
<br>
why not use the RTEMS Resource builder for 4.10 ?<br>
Heinz<br>
<br>
<br>
> On 1. Jul 2020, at 20:03, Mritunjay Sharma <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> <br>
> Hi Gedare, <br>
> <br>
> Thank you so much, since I had the experience of RSB toolchain till now, <br>
> I forgot to build the RTEMS compiler toolchain.<br>
> <br>
> Today's update is also this that I spent the day figuring out how<br>
> to build it manually and got some really amazing blogs<br>
> which have helped me (though they were a bit difficult to find because most pages have been<br>
> relocated).<br>
> Sharing the resources which I have used today and that are helping me build RTEMS compiler toolchain for 4.10.<br>
> <br>
> <a href="http://heshamelmatary.blogspot.com/2014/06/howto-build-rtems-tool-chain-for.html" rel="noreferrer" target="_blank">http://heshamelmatary.blogspot.com/2014/06/howto-build-rtems-tool-chain-for.html</a><br>
> <a href="https://docs.rtems.org/releases/4.5.0/rtemsdoc-4.5.0/share/rtemsdoc/html/started/started00040.html" rel="noreferrer" target="_blank">https://docs.rtems.org/releases/4.5.0/rtemsdoc-4.5.0/share/rtemsdoc/html/started/started00040.html</a><br>
> <a href="https://ftp.rtems.org/pub/rtems/releases/4.10/tools/" rel="noreferrer" target="_blank">https://ftp.rtems.org/pub/rtems/releases/4.10/tools/</a><br>
> <br>
> I am now applying patches for gdb, gcc, binutils and most<br>
> probably hope that the build will be successful. <br>
> <br>
> As suggested by Heinz, I am improving the blog as well and will post the updated and better<br>
> version of blog by Friday. <br>
> <br>
> Thanks,<br>
> Mritunjay<br>
> <br>
> On Wed, Jul 1, 2020 at 9:25 AM Gedare Bloom <<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>> wrote:<br>
> On Tue, Jun 30, 2020 at 9:42 PM Mritunjay Sharma<br>
> <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> ><br>
> > Hi Gedare,<br>
> ><br>
> > Thank you for the quick response, I tried using --target=i386-rtems4.10, which again<br>
> > gave me the same error.<br>
> ><br>
> Did you build an RTEMS compiler toolchain for 4.10? and install it to<br>
> a prefix in your $PATH?<br>
> <br>
> > "checking for RTEMS_CPU_MODEL... i386_fp<br>
> > checking for RTEMS_BSP_FAMILY... pc386<br>
> > checking for CPU_CFLAGS... (cached) -mtune=i386<br>
> > checking for CFLAGS_OPTIMIZE_V... (cached) -O2 -g<br>
> > checking for style of include used by make... GNU<br>
> > checking for i386-rtems4.10-gcc... no<br>
> > configure: error: no acceptable cc found in $PATH<br>
> > Makefile:712: recipe for target 'pc386' failed<br>
> > make[2]: *** [pc386] Error 1<br>
> > make[2]: Leaving directory '/home/mritunjay/development/rtems-4.10.2/pc-386/i386-rtems4.10/c'<br>
> > Makefile:257: recipe for target 'all-recursive' failed<br>
> > make[1]: *** [all-recursive] Error 1<br>
> > make[1]: Leaving directory '/home/mritunjay/development/rtems-4.10.2/pc-386/i386-rtems4.10/c'<br>
> > Makefile:275: recipe for target 'all-recursive' failed<br>
> > make: *** [all-recursive] Error 1"<br>
> ><br>
> > Mritunjay<br>
> ><br>
> > On Wed, Jul 1, 2020 at 3:48 AM Gedare Bloom <<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>> wrote:<br>
> >><br>
> >>  Use --target=i386-rtems4.10 instead of  --target=i386-rtems<br>
> >><br>
> >> Does this work with 4.10.3/4.10 HEAD?<br>
> >><br>
> >> On Tue, Jun 30, 2020 at 3:54 PM Mritunjay Sharma<br>
> >> <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> >> ><br>
> >> > Hello everyone,<br>
> >> ><br>
> >> > I followed the documentation here <a href="https://docs.rtems.org/releases/rtemsdocs-4.10.2/share/rtems/pdf/started.pdf" rel="noreferrer" target="_blank">https://docs.rtems.org/releases/rtemsdocs-4.10.2/share/rtems/pdf/started.pdf</a> and<br>
> >> > started building RTEMS (4.10.2) for target architecture: i386 and BSP: pc386. The configure seemed to be fine<br>
> >> > after entering the following command:<br>
> >> > "../configure --target=i386-rtems --disable-posix --enable-cxx --enable-rtemsbsp=pc386 --enable-tests=samples --prefix=/home/development/rtems-4.10.2"<br>
> >> ><br>
> >> > However, the make failed with the following error: checking for i386-rtems-gcc... no<br>
> >> > "configure: error: no acceptable cc found in $PATH<br>
> >> > Makefile:712: recipe for target 'pc386' failed<br>
> >> > make[2]: *** [pc386] Error 1<br>
> >> > make[2]: Leaving directory '/home/mritunjay/development/rtems-4.10.2/pc386/i386-rtems/c'<br>
> >> > Makefile:257: recipe for target 'all-recursive' failed<br>
> >> > make[1]: *** [all-recursive] Error 1<br>
> >> > make[1]: Leaving directory '/home/mritunjay/development/rtems-4.10.2/pc386/i386-rtems/c'<br>
> >> > Makefile:275: recipe for target 'all-recursive' failed<br>
> >> > make: *** [all-recursive] Error 1"<br>
> >> ><br>
> >> > I checked that gcc is already installed in /usr/bin/gcc.<br>
> >> > So I am not able to figure out what exactly is causing the error.<br>
> >> > Please help to figure out what is causing this and how it can be resolved.<br>
> >> > I have attached the config log as well.<br>
> >> ><br>
> >> > Thanks<br>
> >> > Mritunjay<br>
> >> ><br>
> >> ><br>
> >> ><br>
> >> ><br>
> >> ><br>
> >> ><br>
> >> > On Wed, Jul 1, 2020 at 12:27 AM Mritunjay Sharma <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> >> >><br>
> >> >><br>
> >> >> I mistakenly forgot to cc my other mentors.<br>
> >> >><br>
> >> >> This is what I responded :<br>
> >> >><br>
> >> >>> Hello Heinz,<br>
> >> >>><br>
> >> >>> Pardon the mistake I did in haste,<br>
> >> >>> as I advised by you I am now building it for RTEMS 4.10 and then I will<br>
> >> >>> be reporting here shortly as the build completes.<br>
> >> >>><br>
> >> >>> Thanks<br>
> >> >>> Mritunjay.<br>
> >> >><br>
> >> >><br>
> >> >> I am shortly sending the email for the progress I made after working on above.<br>
> >> >> Thanks<br>
> >> >> Mritunjay<br>
> >> >><br>
> >> >><br>
> >> >><br>
> >> >> On Wed, Jul 1, 2020 at 12:11 AM Heinz Junkes <<a href="mailto:junkes@fhi-berlin.mpg.de" target="_blank">junkes@fhi-berlin.mpg.de</a>> wrote:<br>
> >> >>><br>
> >> >>> Hello, Mritunjay,<br>
> >> >>><br>
> >> >>> the epics-base version in github does not work with RTEMS5 It needs my extensions for this.<br>
> >> >>> Therefore I suggested that you first build epics7 for e.g. RTEMS 4.10.<br>
> >> >>> Then the easiest way is to build epics7 for RTEMS-pc386-qemu. This is fully supported.<br>
> >> >>> So you learn how to build EPics and then you can develop a first rsb-set for it.<br>
> >> >>> If this works, we will work on RTEMS5 and xilinx-Zynq.<br>
> >> >>> Heinz<br>
> >> >>><br>
> >> >>> > On 30. Jun 2020, at 20:10, Mritunjay Sharma <<a href="mailto:mritunjaysharma394@gmail.com" target="_blank">mritunjaysharma394@gmail.com</a>> wrote:<br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> > Hello everyone,<br>
> >> >>> ><br>
> >> >>> > While yesterday, I completed the blog for the progress<br>
> >> >>> > till date, today I started the coding part.<br>
> >> >>> ><br>
> >> >>> > The tutorial that Heinz sent me yesterday guided<br>
> >> >>> > me to make the following changes:<br>
> >> >>> ><br>
> >> >>> > 1) epics-base/configure/CONFIG_SITE:<br>
> >> >>> > # Which target architectures to cross-compile for.<br>
> >> >>> > #  Definitions in configure/os/CONFIG_SITE.<host>.Common<br>
> >> >>> > #  may override this setting.<br>
> >> >>> > -CROSS_COMPILER_TARGET_ARCHS=<br>
> >> >>> > - #CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32<br>
> >> >>> > + CROSS_COMPILER_TARGET_ARCHS=pc386<br>
> >> >>> > +#CROSS_COMPILER_TARGET_ARCHS=RTEMS-xilinx_zynq_a9_qemu<br>
> >> >>> ><br>
> >> >>> > I did not use xilinx_zynq_a9_qemu for now because I could<br>
> >> >>> > not locate CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu<br>
> >> >>> > as of now in epics-base/configure/os.<br>
> >> >>> ><br>
> >> >>> > 2) configure/os/CONFIG_SITE.Common.RTEMS :<br>
> >> >>> ><br>
> >> >>> > # Where to find RTEMS<br>
> >> >>> > #<br>
> >> >>> > # APS:<br>
> >> >>> > -RTEMS_VERSION = 4.10.2<br>
> >> >>> > -RTEMS_BASE = /usr/local/vw/rtems/rtems-$(RTEMS_VERSION)<br>
> >> >>> > #RTEMS_VERSION = 4.10.2<br>
> >> >>> > #RTEMS_BASE = /usr/local/vw/rtems/rtems-$(RTEMS_VERSION)<br>
> >> >>> ><br>
> >> >>> > +# FHI:<br>
> >> >>> > +RTEMS_SERIES = 5<br>
> >> >>> > +RTEMS_VERSION = 5<br>
> >> >>> > +RTEMS_BASE = /home/mritunjay/development/rtems/5<br>
> >> >>> ><br>
> >> >>> > I thought to straightaway move with building it with RTEMS 5<br>
> >> >>> > because I have done it earlier for beatnik.<br>
> >> >>> ><br>
> >> >>> > After this as an experiment, I tried the make command which,<br>
> >> >>> > as expected, generated the following error:<br>
> >> >>> ><br>
> >> >>> > "make[4]: *** No rule to make target '../O.Common/osiFileName.h', needed by 'inc'.  Stop.<br>
> >> >>> > make[4]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/modules/libcom/src/O.pc386'<br>
> >> >>> > ../../../configure/RULES_ARCHS:58: recipe for target 'install.pc386' failed<br>
> >> >>> > make[3]: *** [install.pc386] Error 2<br>
> >> >>> > make[3]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/modules/libcom/src'<br>
> >> >>> > ../../configure/RULES_DIRS:85: recipe for target 'src.install' failed<br>
> >> >>> > make[2]: *** [src.install] Error 2<br>
> >> >>> > make[2]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/modules/libcom'<br>
> >> >>> > ../configure/RULES_DIRS:85: recipe for target 'libcom.install' failed<br>
> >> >>> > make[1]: *** [libcom.install] Error 2<br>
> >> >>> > make[1]: Leaving directory '/home/mritunjay/development/EPICS/epics-base/modules'<br>
> >> >>> > configure/RULES_DIRS:85: recipe for target 'modules.install' failed<br>
> >> >>> > make: *** [modules.install] Error 2<br>
> >> >>> > "<br>
> >> >>> > I then re-visited to what I did with beatnik and made the following changes to<br>
> >> >>> > start with adding support for RTEMS 5:<br>
> >> >>> ><br>
> >> >>> > diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON<br>
> >> >>> > index 6c0e11e0d..d56802968 100644<br>
> >> >>> > --- a/configure/CONFIG_COMMON<br>
> >> >>> > +++ b/configure/CONFIG_COMMON<br>
> >> >>> > @@ -142,9 +142,10 @@ BUILDLIB_SUFFIX = $(BUILDLIB_SUFFIX_$(SHARED_LIBRARIES))<br>
> >> >>> >  #--------------------------------------------------<br>
> >> >>> >  # vpath directories<br>
> >> >>> >  POSIX_YES = os/posix<br>
> >> >>> > +OS_IMPL_DIRS = $(if $(OS_API),os/$(OS_CLASS)-$(OS_API),) os/$(OS_CLASS)<br>
> >> >>> >  GENERIC_SRC_DIRS = .. $(SRC_DIRS)<br>
> >> >>> >  OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \<br>
> >> >>> > -       $(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))<br>
> >> >>> > +       $(addprefix $(dir)/, $(OS_IMPL_DIRS) $(POSIX_$(POSIX)) os/default ))<br>
> >> >>> >  CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \<br>
> >> >>> >         $(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))<br>
> >> >>> >  ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)<br>
> >> >>> > diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE<br>
> >> >>> > index 09b4c1525..f3aa4b3f7 100644<br>
> >> >>> > --- a/configure/CONFIG_SITE<br>
> >> >>> > +++ b/configure/CONFIG_SITE<br>
> >> >>> > @@ -161,7 +161,7 @@ USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES<br>
> >> >>> ><br>
> >> >>> >  # Site version number, if set will append '-' and this string to the<br>
> >> >>> >  #  EPICS version number string that is reported by many tools.<br>
> >> >>> > -EPICS_SITE_VERSION =<br>
> >> >>> > +EPICS_SITE_VERSION =<br>
> >> >>> ><br>
> >> >>> >  # For GNU compiler, use pipes rather than temporary files for<br>
> >> >>> >  #  communication between the various stages of compilation.<br>
> >> >>> > diff --git a/configure/os/CONFIG.Common.RTEMS b/configure/os/CONFIG.Common.RTEMS<br>
> >> >>> > index 8425e6ef9..929510d61 100644<br>
> >> >>> > --- a/configure/os/CONFIG.Common.RTEMS<br>
> >> >>> > +++ b/configure/os/CONFIG.Common.RTEMS<br>
> >> >>> > @@ -94,16 +94,28 @@ MODEXT=.obj<br>
> >> >>> >  # operating system class (include/os/<os_class>)<br>
> >> >>> >  OS_CLASS = RTEMS<br>
> >> >>> ><br>
> >> >>> > +#--------------------------------------------------<br>
> >> >>> > +# operating system API (src/os/<os_class>-<os-api>)<br>
> >> >>> > +OS_API_4.7 = kernel<br>
> >> >>> > +OS_API_4.8 = kernel<br>
> >> >>> > +OS_API_4.9 = kernel<br>
> >> >>> > +OS_API_4.10 = kernel<br>
> >> >>> > +OS_API = $(firstword $(OS_API_$(RTEMS_SERIES)) posix)<br>
> >> >>> > +<br>
> >> >>> >  #--------------------------------------------------<br>
> >> >>> >  # Operating system flags<br>
> >> >>> > -OP_SYS_LDLIBS += -lrtemsCom -lc -lrtemscpu -lCom -lnfs -lm<br>
> >> >>> > -OP_SYS_LDFLAGS += $(CPU_CFLAGS) -u Init \<br>
> >> >>> > +OP_SYS_LDLIBS += -lrtemsCom -lc -lrtemscpu -lCom -lnfs -lm<br>
> >> >>> > +# newest Rtems > 2019 needs this -ltftpfs<br>
> >> >>> > +<br>
> >> >>> > +OP_SYS_LDFLAGS_posix += -u POSIX_Init<br>
> >> >>> > +OP_SYS_LDFLAGS_kernel += $(CPU_CFLAGS) -u Init \<br>
> >> >>> >                   $(PROJECT_RELEASE)/lib/no-dpmem.rel \<br>
> >> >>> >                   $(PROJECT_RELEASE)/lib/no-mp.rel \<br>
> >> >>> >                   $(PROJECT_RELEASE)/lib/no-part.rel \<br>
> >> >>> >                   $(PROJECT_RELEASE)/lib/no-signal.rel \<br>
> >> >>> >                   $(PROJECT_RELEASE)/lib/no-rtmon.rel<br>
> >> >>> ><br>
> >> >>> > +OP_SYS_LDFLAGS += $(CPU_FLAGS) $(OP_SYS_LDFLAGS_$(OS_API))<br>
> >> >>> >  MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib<br>
> >> >>> ><br>
> >> >>> >  # Do not link against libraries which are part of the Generic Image<br>
> >> >>> > diff --git a/modules/libcom/RTEMS/Makefile b/modules/libcom/RTEMS/Makefile<br>
> >> >>> > index b46889db1..cb1a63b97 100644<br>
> >> >>> > --- a/modules/libcom/RTEMS/Makefile<br>
> >> >>> > +++ b/modules/libcom/RTEMS/Makefile<br>
> >> >>> > @@ -11,6 +11,9 @@ TOP = ../../..<br>
> >> >>> >  include $(TOP)/configure/CONFIG<br>
> >> >>> >  include $(TOP)/configure/CONFIG_LIBCOM_VERSION<br>
> >> >>> ><br>
> >> >>> > +#for checking<br>
> >> >>> > +SRC_DIRS += ../$(OS_API)<br>
> >> >>> > +<br>
> >> >>> >  PERL_SCRIPTS += epicsMakeMemFs.pl<br>
> >> >>> ><br>
> >> >>> >  INC += epicsRtemsInitHooks.h<br>
> >> >>> > (END)<br>
> >> >>> ><br>
> >> >>> > I will start with further changes tomorrow. Please find the changes pushed<br>
> >> >>> > here: <a href="https://github.com/epics-base/epics-base/compare/7.0...mritunjaysharma394:GSoC_pc-386" rel="noreferrer" target="_blank">https://github.com/epics-base/epics-base/compare/7.0...mritunjaysharma394:GSoC_pc-386</a><br>
> >> >>> ><br>
> >> >>> > I will be pleased to have the feedback and if I am on the correct course now.<br>
> >> >>> ><br>
> >> >>> > I will also like to inform that I have filled the GSoC Phase 1 Evaluation form and I<br>
> >> >>> > will request all my mentors to please feel free to fill the form before the deadline<br>
> >> >>> > and I hope that from now I will not disappoint with my progress.<br>
> >> >>> ><br>
> >> >>> > It is my bad that I still have not  been able to reach out to one more<br>
> >> >>> > mentor Pavel Pisa. Please if possible share the email id of Pavel and cc<br>
> >> >>> > Pavel in the replies to the email so that Pavel s aware of the progress and I<br>
> >> >>> > can apologise for my inability to connect with Pavel earlier.<br>
> >> >>> ><br>
> >> >>> > Thanks,<br>
> >> >>> > Mritunjay.<br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>> ><br>
> >> >>><br>
<br>
</blockquote></div>