Merge lp:~aacid/qtmir/compile_with_ubsan into lp:qtmir

Proposed by Albert Astals Cid on 2016-05-25
Status: Merged
Approved by: Gerry Boland on 2016-05-25
Approved revision: 497
Merged at revision: 507
Proposed branch: lp:~aacid/qtmir/compile_with_ubsan
Merge into: lp:qtmir
Diff against target: 11 lines (+1/-0)
1 file modified
src/platforms/mirserver/CMakeLists.txt (+1/-0)
To merge this branch: bzr merge lp:~aacid/qtmir/compile_with_ubsan
Reviewer Review Type Date Requested Status
Unity8 CI Bot continuous-integration Approve on 2016-06-03
Gerry Boland 2016-05-25 Approve on 2016-05-25
Review via email: mp+295677@code.launchpad.net

Commit Message

Compile with -fsanitize=undefined

Otherwise i get
    undefined reference to `typeinfo for MirMousePointerInterface'

As per questions on IRC:
 * ubsan = http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html (works on gcc too)
 * If you also use https://code.launchpad.net/~aacid/qtmir/ecm_optional_santizers/+merge/295673 you can enable it by using -DECM_ENABLE_SANITIZERS='undefined' if you have ecm installed

Description of the Change

 * Are there any related MPs required for this MP to build/function as expected?
No

 * Did you perform an exploratory manual test run of your code change and any related functionality?
Yes

 * If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A

To post a comment you must log in.
Gerry Boland (gerboland) wrote :

LGTM

review: Approve
Albert Astals Cid (aacid) wrote :

BTW ubsan runs fine after changing gmock to not do weird stuff

  Result InvokeWith(const ArgumentTuple& args)
        GTEST_LOCK_EXCLUDED_(g_gmock_mutex) {
        auto x = static_cast<const ResultHolder*>(this->UntypedInvokeWith(&args));
        return x ? x->GetValueAndDelete() : Result();
  }

is the new code i used for InvokeWith in /usr/include/gmock/gmock-spec-builders.h

Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-ci/248/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/1805
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1830
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1770
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1770
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1770
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1760/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/1760
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/1760/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-qtmir-ci/248/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/platforms/mirserver/CMakeLists.txt'
2--- src/platforms/mirserver/CMakeLists.txt 2016-05-20 08:41:46 +0000
3+++ src/platforms/mirserver/CMakeLists.txt 2016-05-25 08:57:48 +0000
4@@ -84,6 +84,7 @@
5 tracepoints.c
6 # We need to run moc on these headers
7 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
8+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirMousePointerInterface.h
9 )
10
11 add_library(qpa-mirserver SHARED

Subscribers

People subscribed via source and target branches