Error while building the rtems-libbsd
Christian Mauderer
list at c-mauderer.de
Fri Jan 3 08:42:05 UTC 2020
On 01/01/2020 16:14, Utkarsh Rai wrote:
> I have been successful in building the rtems-libbsd using 'python3
> ./waf'. Although, I had to do some weird changes to some of the files in
> the libbsd package. (These changes were done as there were several build
> errors even after the 'python ./waf' command )
>
> 1. In the ../freebsd/sys/netinet/in_mcast.c
> and ../../freebsd/sys/netpfil/pf/if_pfsync.c files I had to change
> the IP_MIN_MEMBERSHIPS with IP_MAX_MEMBERSHIPS .
>
> 2. In the ../../freebsd/sys/netinet6/in6_mcast.c and
> .../freebsd/sys/netinet/ip_carp.c files I had to
> change IPV6_MIN_MEMBERSHIPS, to IPV6_MAX_MEMBERSHIPS,
>
> 3. In the ../testsuite/syscalls01/test_main.c I changed the IPPROTO_SEP
> to IPPROTO_EGP .
>
> Now, I suspect that these changes will come back to bite me as I proceed
> further as I have simply overwritten them based on build error
> messages. It would be helpful if the community can provide its views on
> my changes and whether this is a bug or something that I am doing wrong.
I would too expect that these changes are not a good idea. In normal
case libbsd builds without any trouble.
Can you give some more information about the exact versions you use:
- Which commit of libbsd are you trying to build?
- Which rtems commit do you use?
- Which tool version do you use? If RSB: Which commit?
- What BSP do you use?
Best regards
Christian
>
> On Tue, Dec 31, 2019 at 6:28 PM Christian Mauderer <list at c-mauderer.de
> <mailto:list at c-mauderer.de>> wrote:
>
> On 31/12/2019 12:41, Utkarsh Rai wrote:
> > My host system has an x-86_64 architecture with ubuntu-18.04
> running on
> > top of it, I have a python2 installed.
> > Interestingly enough, when I clean up the libbsd directory and try to
> > build as a super-user, I have two observations:-
>
> Please note that building as super user is generally not a good idea for
> any sane build environment. Although I have to say that in this case it
> provided an interesting error output ...
>
> > 1. The build fails with the following error message:-
> > [1/4] Creating
> >
> ///h/o/m/e///u/r/1/0///s/a/n/d/b/o/x///r/t/e/m/s/-/l/i/b/b/s/d///b/u/i/l/d///a/r/m/-/r/t/e/m/s/5/-/b/e/a/g/l/e/b/o/n/e/b/l/a/c/k/-/d/e/f/a/u/l/t/build-include/rtems/bsd/modules.h
>
> ... here. That looks like some join went horrible wrong. I assume that
> there is some location in the build system where an array of paths
> should be joined but only one is given. Looks like a bug.
>
> > [2/4] Compiling rtemsbsd/rtems/generate_kvm_symbols
> > [3/4] Compiling
> testsuite/include/rtems/bsd/test/network-config.h.in
> <http://network-config.h.in>
> > <http://network-config.h.in>
> > /bin/sh: 1:
> > .//home/ur10/sandbox/rtems-libbsd/rtemsbsd/rtems/generate_kvm_symbols:
>
> The ./ in front is a bit odd here. Looks like an absolute path which
> (for some reason) has been forced to be local...
>
> > not found
> >
> > Now I have checked, and the file in question is present at its
> location.
> >
> > 2. The traceback of the last calls is something like this:-
> > File
> >
> "/home/ur10/sandbox/rtems-libbsd/.waf-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Build.py",
> > line 100, in execute_build
> > self.compile()
> > File
> >
> "/home/ur10/sandbox/rtems-libbsd/.waf-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Build.py",
> > line 174, in compile
> > self.store()
> > File
> >
> "/home/ur10/sandbox/rtems-libbsd/.waf-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Build.py",
> > line 153, in store
> > Utils.writef(db+'.tmp',x,m='wb')
> > File
> >
> "/home/ur10/sandbox/rtems-libbsd/.waf-2.0.13-4c5a17779813574907c253ab5418388d/waflib/Utils.py",
> > line 155, in writef
> > with open(fname,m)as f:
> > IOError: [Errno 2] No such file or directory:
> >
> u'/home/ur10/sandbox/rtems-libbsd/build/arm-rtems5-beagleboneblack-default/.wafpickle-linux2-34017264-20.tmp'
> >
> > If I am correct, this is a python exception for invalid file
> handling.
> > Since I have already removed the 'build' directory, I suppose
> the call
> > should be 'w+' or 'wb+' but this does not seem to be the case. (I am
> > going out on a limb with this assumption, I may be wrong !)
>
> You are right that it's a python exception. Most likely it's a follow up
> bug due to the wrong paths further up.
>
> >
> > It would be very helpful if you could provide your views on the
> problem
> > and as to how I should proceed to resolve this.
> >
>
> The solution is to find the bug in the path handling from further above.
> As a workaround could you try to use python3? Some string handling is
> different there so it might work or give a better error message.
> Just use
>
> python3 ./waf ...
>
> instead of only "waf" in every waf command line.
>
> >
> > On Mon, Dec 30, 2019 at 7:19 PM 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:
> >
> > On 28/12/2019 18:43, Utkarsh Rai wrote:
> > > Hi,
> > > While building the rtems-libbsd as described here
> > >
> >
> <https://devel.rtems.org/browser/rtems-libbsd/README.waf?rev=b83012a9f9f1551d9d223c3126d0f43aba79db62> I
> > > was able to successfully configure the waf file as:-
> > > waf configure
> > > --prefix="/home/ur10/sandbox/rtems/5"
> > > --rtems-bsps=arm/beagleboneblack
> > > --buildset=buildset/default.ini
> > > But the build fails on the "waf" instruction with the error
> - "Could
> > > not create the directory ///h".
> > > My path for the build is PATH="~/sandbox/rtems/bin:$PATH",
> with the
> > > tools and the rtems-libbsd in the sandbox directory.
> > > It would be very kind of you if someone could point out as
> to what
> > is it
> > > that I am doing wrong.
> > > Thank You, Regards.
> >
> > Hello Utkarsh Rai,
> >
> > I now have seen that bug about two or three times on the list.
> But I've
> > never been able to reproduce it. What host system are you
> using? Do you
> > have a python2 or a python3 as default python?
> >
> > Sometimes it works to clean up the libbsd directory. Remove
> the "build"
> > directory and the ".waf2..." or ".waf3..." directory. Also
> remove any
> > "__pycache__" directories.
> >
> > >From your call it seems that you use waf from your host
> system. Can you
> > try to use the waf version delivered with libbsd instead
> (using "./waf
> > configure ...")?
> >
> > Best regards
> >
> > Christian
> >
>
More information about the devel
mailing list