Building libbsd after installing libbsd

Chris Johns chrisj at rtems.org
Thu Oct 8 21:59:20 UTC 2020


On 9/10/20 8:24 am, Joel Sherrill wrote:
> Hi
> 
> I am not sure if this is avoidable but it is surprising. 
> 
> + build and install rtems to $prefix
> 
> + build and install libbsd to $prefix
> 
> + ./waf will then rebuild some files. It appears to be using installed headers

Is this in rtems or libbsd?

> + Then ./waf install and it will also rebuild some files before fails.

Again which or is it both?

> I think there is no way to avoid this and waf for libbsd should detect that it
> sees headers installed from itself and give an error that you need a clean
> $prefix to build.

Waf uses an md5 checksum for dependency checking so replacing a file with the
same file should not trigger a rebuild, the contents have to have changed. This
is different to make and others that stat a file.

> Just to make sure there wasn't interference between two different BSPs, I built
> and installed one followed by a second different one. That went fine. 
> 
> The behavior is bizarre and the weird compilation errors are mysterious until
> you repeat the steps enough to figure it out. Unless someone knows how the build
> can avoid this, I think we need an error check early in the configure process. 

This implies some files in one package are overwriting a file installed by
another package. That should not happen.

It would be nice to install a manifesto of the files a package installs. I am
sure it would aid deployment for those wanting to package and deploy RTEMS with
rpm, deb or what ever else. It would help here as the contents of each could be
reviewed.

> I think it is sufficient to check if machine/rtems-bsd-nexus-bus.h is installed
> already ad give a nice explanation and failure during configure.

Adding this would limit those develop and maintaining these packages.

> Thoughts?

Should we understand the interactions before we decide on a solution?

Chris


More information about the devel mailing list