rtems-libbsd build error

Christian Mauderer list at c-mauderer.de
Fri Mar 15 19:30:38 UTC 2019


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>> 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



More information about the devel mailing list