v01d commented on issue #1764:
URL: 
https://github.com/apache/incubator-nuttx/issues/1764#issuecomment-691392838


   The same change in `apps` is a bit more challenging since the build system 
is wired in such a way that each app "contributes" to the libapps.a sitting in 
the top-level `apps` dir. The problem is that if remov libapps.a on every 
build, if I start from a previous build where all apps .o are already there, 
the library is not recreated since there's no rule tying the .o's to the .a. I 
see there's also a bit convoluted logic to deal with this and parallel builds 
using a dummy `.built` file and `flock` over the `.a`. 
   
   I think it would be simpler to split the building of apps and linking into 
the `.a` in two separate stages, where the linking is done all at once. As this 
can't be parallelized anyway there's no reason to accumulate `.o` files in the 
`.a` while building each app.
   Ideally we could build each app to its own `.a` but from what I read it is 
not that easy to then build one large `.a` from them (it requires extracting 
objects or other tricks: 
https://stackoverflow.com/questions/3821916/how-to-merge-two-ar-static-libraries-into-one)


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to