anchao opened a new pull request, #2048:
URL: https://github.com/apache/nuttx-apps/pull/2048

   
   
   ## Summary
   
   apps/build: Restore ARLOCK to improve compile speed in incremental case
   
   To solve the issue of carrying object files from previous builds, Matias 
changed the archiving process to re-archive libapps.a on every compilation, if 
libapps.a carries more object files, incremental compilation will waste too 
many time in re-archiving, compared with the previous implement, this is a 
degradation of the build system.  Referring to mature engineering projects such 
as cmake, if there is configuration or source file changed, the best solution 
should be to reconfigure the environment.
   
   Revert this PR to ensure the compilation speed during incremental 
compilation.
   
   
   https://github.com/apache/nuttx-apps/pull/380
   ```
   |  commit 18137c0fec3cea30871f29238e11ea0f4e8523da
   |  Author: Matias N <[email protected]>
   |  Date:   Sat Sep 12 00:36:23 2020 -0300
   |
   |      Fix: ensure archive files do not carry object files from prior builds
   |
   |      This is the corresponding change to the one on main NuttX repo. In 
this
   |      case this involves splitting the build of libapps.a into: a) building
   |      all applications (which is safely parallelizable), b) adding each
   |      application's object files to the archive in turns (serial by nature).
   |
   |      This removes the need for the flock used to protect the parallel 
build.
   ```
   
   ## Impact
   
   Build system
   Depends on: https://github.com/apache/nuttx/pull/10576
   
   ## Testing
   
   Testing:
   
   ```
   sim:nsh
   -------------------------------
   |   Patched    |  Current
   -------------------------------
   |$ time make   |  $ time make
   |real 0m1.270s |  real 0m1.728s
   |user 0m0.971s |  user 0m1.276s
   |sys  0m0.363s |  sys    0m0.530s
   -------------------------------
   ```
   
   ```
   Private project (20+ 3rd library needs archive to libapps.a) 
   -------------------------------
   |   Patched     |  Current
   -------------------------------
   |$ time make    |  $ time make
   |real 0m21.181s |  real 0m39.721s
   |user 0m14.638s |  user 0m24.837s
   |sys  0m6.919s  |  sys  0m14.394s
   -------------------------------
   ```


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

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to