Merge lp://qastaging/~afrantzis/mir/no-lto-for-tests into lp://qastaging/mir
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Daniel van Vugt | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | 3634 | ||||
Proposed branch: | lp://qastaging/~afrantzis/mir/no-lto-for-tests | ||||
Merge into: | lp://qastaging/mir | ||||
Diff against target: |
28 lines (+5/-2) 2 files modified
CMakeLists.txt (+2/-2) tests/CMakeLists.txt (+3/-0) |
||||
To merge this branch: | bzr merge lp://qastaging/~afrantzis/mir/no-lto-for-tests | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt | Approve | ||
Cemil Azizoglu (community) | Approve | ||
Kevin DuBois (community) | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Review via email: mp+302034@code.qastaging.launchpad.net |
Commit message
tests: Don't build with LTO
Description of the change
tests: Don't build with LTO
We don't care about our tests being link-time-
1. Improved build time (~20% improvement in parallel builds vs full-lto)
2. No need to care about various obscure issues either caused or uncovered by LTO in our test code (gcc-6 seems to have a bunch of these).
Sample runs on my i5 quad-core using debflags and ld.gold:
build-time (real/user) : 13m/45m 16m/43m 12m/43m
build-dir-size : 3.1 GiB 1.8 GiB 3.0 GiB
Note that the 'user' build-time is slightly higher for the no-test-lto case because we are producing "fat" objects for our non-test code (objects that have both binary code and intermediate bytecode and can be linked both with and without LTO). However, the work is distributed across all compilations and can be parallelized more efficiently, hence the lower 'real' time. In contrast, in the full-lto case most of the work is performed at the linking stage which cannot be parallelized.
PASSED: Continuous integration, rev:3630 /mir-jenkins. ubuntu. com/job/ mir-ci/ 1397/ /mir-jenkins. ubuntu. com/job/ build-mir/ 1700 /mir-jenkins. ubuntu. com/job/ build-0- fetch/1753 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 1744 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 1744 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 1744 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= vivid+overlay/ 1720 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= vivid+overlay/ 1720/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 1720 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 1720/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 1720 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 1720/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 1720 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 1720/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 1720 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 1720/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 1720 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 1720/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 1397/rebuild
https:/