rtems-libbsd build error

Vijay Kumar Banerjee vijaykumar9597 at gmail.com
Tue Mar 19 19:37:35 UTC 2019


On Tue, 19 Mar 2019 at 02:44, Christian Mauderer <list at c-mauderer.de> wrote:

> Am 18.03.19 um 20:31 schrieb Vijay Kumar Banerjee:
> >
> >
> >
> > On Tue, 19 Mar 2019 at 00:56, Vijay Kumar Banerjee
> > <vijaykumar9597 at gmail.com <mailto:vijaykumar9597 at gmail.com>> wrote:
> >
> >
> >     Hi Christian,
> >
> > (it got sent by mistake :) )
> >
> > Thanks for telling about the script, now I have the code imported and
> > it's building successfully.
> > I have forked the repo and created a branch with my commits. Please have
> > a look and see if
> > It's going in the right direction.
> > https://github.com/thelunatic/rtems-libbsd/tree/hdmi_framer
> >
> > I have also wrote a first draft of the proposal. Are we supposed to send
> > the draft proposals only after the the application period stars? or can
> > we just share it offlist with the mentors now?
> >
> > Thanks
>
> Hello Vijay,
>
> first regarding the proposal:
>
> @Joel: Please correct me if I'm wrong!
>
> I think it should be OK to discuss the proposal as soon as you have
> something. I assume you already have completed the Hello world and sent
> it to at least one of our Org Admins?
>
> I have sent pictures in the offlist thread with Joel and you, where we
were dicussing the
hardwares. I can send again in an offlist thread, along with the proposal.
:)

>
> Regarding the code:
>
> Although the commits need some polishing (see * at the end) it looks
> like a good start that you were already able to import and compile some
> of the necessary files.
>
> From what I've seen, you currently pulled in three parts:
>
> 1. Some part of videomode. There are some awk scripts in that directory
> too so some generated files might need some processing.
>
> the ediddevs and modelines.c needed the scripts. I added them and
imported, but
there's a strange error with modelines.c
(If I comment it out, it builds fine)
=======
../../freebsd/sys/dev/videomode/modelines.c:13:19: error: expected
declaration specifiers or '...' before string constant
 __KERNEL_RCSID(0, "$NetBSD$");
 =======


> 2. The iic headers. That looks good. An RTEMS implementation for the
> functions most likely is necessary.
>
> I have added this in the proposal.

> 3. The driver for the chip that converts from the LCD interface to an
> HDMI interface. That's good and necessary too.
>
> What is missing (which is entirely OK at the current phase) are the
> following parts:
>
> A. The LCD controller driver itself (am335x_lcd.c, ...).
>
> Added. Along with it, I had to import other fb codes that it depends on. I
can push it in my
forked branch for you to see.
Since it has already seen some trial and errors. I think it would be better
to create a new
branch after we're happy with what's imported, then we can squash it all
into a commit
and then start the porting work to get two clean commits.

> B. The driver isn't referenced anywhere (normally would be done in
> nexus-devices.h for devices that should be always there). So it isn't
> linked into the applications yet. That's the reason that you currently
> didn't get any `function not found` errors during the linking yet ;-)
>
>  Is there any reference that I can follow to understand how the
nexusmodule is working,
and how to add the driver to it? I had a look into the libbsd.txt

> C. The framebuffer interface of FreeBSD. I haven't had a detailed look
> at that yet. But someone has to do something with the fb_getinfo
> DEVMETHOD that is defined in am335x_lcd.c. I'm also not sure whether we
> have some generic framebuffer code in RTEMS or whether we should use it
> completely from libbsd.
>
> We have the fb.h and framebuffer.h headers. The RPi seems to have
implemented those
functions using own implementation using the mailbox module.

> So most likely you will find some more problems when the real work
> starts. But it would be no fun if everything would run smoothly ;-)
>
> Best regards
>
> Christian
>
>
> (*) See hints in CONTRIBUTING.md in chapter "How to Import Code from
> FreeBSD". The final commits should be (for each sensible module) one
> import commit where unchanged files are imported and one port commit
> where the files are added to libbsd.py and necessary changes are made.
>
>
> >
> >
> >     On Sun, 17 Mar 2019 at 14:30, Christian Mauderer <list at c-mauderer.de
> >     <mailto:list at c-mauderer.de>> wrote:
> >
> >         Am 16.03.19 um 23:52 schrieb Vijay Kumar Banerjee:
> >         >
> >         >
> >         > On Sat, 16 Mar 2019 at 01:00, Christian Mauderer
> >         <list at c-mauderer.de <mailto:list at c-mauderer.de>
> >         > <mailto:list at c-mauderer.de <mailto:list at c-mauderer.de>>>
> wrote:
> >         >
> >         >     Am 15.03.19 um 19:20 schrieb Vijay Kumar Banerjee:
> >         >     >
> >         >     >
> >         >     > On Fri, 15 Mar 2019 at 21:47, Christian Mauderer
> >         >     <list at c-mauderer.de <mailto:list at c-mauderer.de>
> >         <mailto:list at c-mauderer.de <mailto:list at c-mauderer.de>>
> >         >     > <mailto:list at c-mauderer.de <mailto:list at c-mauderer.de>
> >         <mailto:list at c-mauderer.de <mailto:list at c-mauderer.de>>>> wrote:
> >         >     >
> >         >     >     Am 15.03.19 um 15:48 schrieb Vijay Kumar Banerjee:
> >         >     >     > Hello,
> >         >     >     >
> >         >     >     > I am trying to `./waf install` the libbsd but
> >         getting some
> >         >     error,
> >         >     >     need help
> >         >     >     > with that. The commands used and the errors are
> >         given below ...
> >         >     >     >
> >         >     >     > configured using: `./waf configure
> >         >     --buildset=buildset/default.ini
> >         >     >     > --prefix=$HOME/development/rtems/5
> --rtems-arch=arm`
> >         >     >     >
> >         >     >     > configure was successful.
> >         >     >     >
> >         >     >     > then : `./waf install`
> >         >     >     >
> >         >     >     > Error ...
> >         >     >     > ================
> >         >     >     > Build failed
> >         >     >     >  -> task in 'lex__nsyy' failed with exit status 1
> >         (run with
> >         >     -v to
> >         >     >     > display more information)
> >         >     >     >  -> task in 'yacc__nsyy' failed with exit status 1
> >         (run with
> >         >     -v to
> >         >     >     > display more information)
> >         >     >     >  -> task in 'lex_pcap' failed with exit status 1
> >         (run with -v to
> >         >     >     display
> >         >     >     > more information)
> >         >     >     >  -> task in 'yacc_pcap' failed with exit status 1
> >         (run with
> >         >     -v to
> >         >     >     > display more information)
> >         >     >     >  -> task in 'objs01' failed with exit status 1
> >         (run with -v
> >         >     to display
> >         >     >     > more information)
> >         >     >     >  -> task in 'objs01' failed with exit status 1
> >         (run with -v
> >         >     to display
> >         >     >     > more information)
> >         >     >     >  -> task in 'yacc_pfctly' failed with exit status
> >         1 (run
> >         >     with -v to
> >         >     >     > display more information)
> >         >     >     >
> >         >     >     > ================
> >         >     >     >
> >         >     >     > Thanks
> >         >     >     > --vijay
> >         >     >     >
> >         >     >
> >         >     >     Hello Vijay,
> >         >     >
> >         >     >     did you try to build before the install? I don't see
> >         the call.
> >         >     >     Normally it's
> >         >     >
> >         >     >       waf configure ...
> >         >     >       waf
> >         >     >       waf install
> >         >     >
> >         >     >     If you did that: It seems that some of the lex /
> >         yacc files
> >         >     should be
> >         >     >     regenerated. Did you enable --enable-auto-regen
> >         somewhen during an
> >         >     >     earlier configuration run (not necessary except if
> >         you import
> >         >     yacc or
> >         >     >     lex files)? Did you import some yacc or lex files?
> >         >     >
> >         >     > I had to install `byacc` package using yum in fedora,
> >         then I used the
> >         >     > --enable-auto-regen
> >         >     > option, that worked.
> >         >     > However, it's still not building and I'm seeing a lot of
> >         warnings, I
> >         >     > think this is because of the
> >         >     > files I imported from the freebsd source, maybe they
> >         depend on some
> >         >     > other headers that
> >         >     > I didn't include. Any suggestion on how to debug, if
> >         this is the
> >         >     case?
> >         >     >
> >         >     >     Best regards
> >         >     >
> >         >     >     Christian
> >         >     >
> >         >
> >         >
> >         >     Hello Vijay,
> >         >
> >         >     normally you shouldn't need the --enable-auto-regen
> >         option. It only
> >         >     changes a lot of files that you don't want to change.
> >         Especially: If you
> >         >     use Fedora (or some other Linux) you get GPL licensed
> >         output. We
> >         >     normally use FreeBSD for that step and check in the
> >         generated files so
> >         >     that no user has to use --enable-auto-regen.
> >         >
> >         >     Regarding how to start such a port: Normally it's a good
> >         idea to get
> >         >     some overview over what's missing. For that you import the
> >         files that
> >         >     you think are relevant (like you already did). Then you
> >         can build with
> >         >     `waf -k -j1` which continues even if some files are not
> >         compilable (-k
> >         >     is for continue, -j1 so that you receive the messages in
> >         order). You
> >         >     should get a lot of compiler errors during that run.
> >         >
> >         >     Now comes the hard part: You have to analyse the errors
> >         and try to find
> >         >     out what's the reason for them. If some big part is
> >         missing you most
> >         >     likely get a lot of similar errors (like "header xy.h not
> >         found"). Most
> >         >     likely you can identify some groups. With that you can
> >         estimate what has
> >         >     to be ported besides the files you already imported.
> >         >
> >         >     Identifying these groups is a quite relevant step for
> >         planning the
> >         >     amount of work for your GSoC proposal. If you are unsure,
> >         try to ask on
> >         >     the mailing list. You can also post the build output and
> >         an assumption
> >         >     what groups you estimate to get some feedback.
> >         >
> >         >     Best regards
> >         >
> >         >     Christian
> >         >
> >         >
> >         > Hi
> >         >
> >         > I figured out that there were some unnecessary imports I was
> >         doing and
> >         > also some necessary
> >         > header files that I'm missing, after adding those most of the
> >         warnings
> >         > vanished. The error I'm
> >         > seeing now is due to a missing '.m' header file. The error
> >         looks like
> >         > this ...
> >         > =========
> >         >    ../../freebsd/sys/arm/ti/am335x/tda19988.c:56:10: fatal
> error:
> >         > rtems/bsd/local/iicbus_if.h: No such file or directory
> >         >  #include <rtems/bsd/local/iicbus_if.h>
> >         > =========
> >         > There's an iicbus_if.m file in the freebsd source which is
> >         being included as
> >         > ``#include "iicbus_if.h"``
> >         > How to work with the .m files ?
> >         >
> >         > Thanks
> >
> >         Hello Vijay,
> >
> >         that sounds like somewhere during the FreeBSD build process at
> >         least the
> >         .h file is generated out of the .m file. As far as I can tell,
> >         most .m
> >         files are processed with the makeobjops.awk script.
> >
> >         That's something that isn't yet cleanly integrated into the waf
> >         build
> >         system yet. Instead there is a "Makefile.todo" in libbsd that is
> >         used
> >         for this cases. Most likely you can just add that .m file and
> call a
> >         make on that target.
> >
> >         Some background for the "Makefile.todo": Originally the libbsd
> >         has been
> >         build using one big Makefile. Due to the decision that RTEMS
> >         should go
> >         toward waf, most parts of that Makefile has been replaced. The
> >         "Makefile.todo" is the part that is left and should be
> >         integrated into
> >         waf as soon as someone feels like doing it or finds someone who
> >         funds
> >         the the time.
> >
> >         Regarding iicbus: Most likely that is an interfaces that needs a
> >         translation layer so that the RTEMS i2c framework is used. So
> >         importing
> >         the header with the declarations is good and correct. But you
> >         will need
> >         to plan some time to implement the functions based on the RTEMS
> i2c
> >         interface.
> >
> >         Best regards
> >
> >         Christian
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20190320/09fad31d/attachment-0002.html>


More information about the devel mailing list