Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
nuttx/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. | commit 34b34e2 (tag: nuttx-20200914-172150) | Author: Matias N <[email protected]> | Date: Fri Sep 11 22:31:38 2020 -0300 | | Fix: ensure archive files do not carry object files from prior builds | | In some cases, when NuttX configuration changes and this makes the | object list used to build one of the .a libraries change as well, | since the command used to build it is "ar crs" and this simply appends | the list of object files, the library could still include object | files from prior builds. This commit modifies the ARCHIVE macro to | erase the .a file if it already exists. | | Since in some cases this behavior was actually expected (object | files from a subdirectory were appended to a library created one | level above) I added a ARCHIVE_ADD which works as ARCHIVE did. | | This change should greatly improve behavior of building after | configuration changes. 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 ------------------------------- Signed-off-by: chao an <[email protected]>
- Loading branch information