Error while building the rtems-libbsd

Christian Mauderer list at c-mauderer.de
Tue Dec 31 12:58:18 UTC 2019


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