[GSoC 2020: Daily Update]: Building EPICS with RTEMS5
Mritunjay Sharma
mritunjaysharma394 at gmail.com
Tue Jun 30 21:54:19 UTC 2020
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/20200701/8a5f7252/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.log
Type: text/x-log
Size: 8843 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200701/8a5f7252/attachment-0001.bin>
More information about the devel
mailing list