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