Mir

Merge lp:~andreas-pokorny/mir/ftbfs-vivid-clang-lttng-ust-changes into lp:mir

Proposed by Andreas Pokorny
Status: Merged
Approved by: Andreas Pokorny
Approved revision: no longer in the source branch.
Merged at revision: 3516
Proposed branch: lp:~andreas-pokorny/mir/ftbfs-vivid-clang-lttng-ust-changes
Merge into: lp:mir
Diff against target: 38 lines (+18/-0)
2 files modified
src/client/lttng/CMakeLists.txt (+9/-0)
src/server/report/lttng/CMakeLists.txt (+9/-0)
To merge this branch: bzr merge lp:~andreas-pokorny/mir/ftbfs-vivid-clang-lttng-ust-changes
Reviewer Review Type Date Requested Status
Chris Halse Rogers Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+295418@code.launchpad.net

Commit message

fix vivid + overlay build problems triggered by a lttng-ust-dev update by dsiabling a specific clang warning and -pedantic in the lttng directories
(LP: #1584601)

Description of the change

An update to lttng-ust-dev contains a change in the user space tracepoint call, which now leads to a call to macro expansion that uses a gcc extension
(urcu/system.h):

/*
 * Load a data from shared memory, doing a cache flush if required.
 */
#define CMM_LOAD_SHARED(p) \
        __extension__ \
        ({ \
                cmm_smp_rmc(); \
                _CMM_LOAD_SHARED(p); \
        })

The block inside the ()-expression is kind of like a ,-operator the last statement in the block is treated as an expression and defines the value of the expression.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3516
https://mir-jenkins.ubuntu.com/job/mir-ci/1017/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1111/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1159
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1150
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1150
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1121/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1121
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1121/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1121/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1121/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1121
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1121/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1017/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

Only fixes the clang build. I think it should be limited to the affected clang versions before landing. removal of pedantic might fix the vivid/gcc/android build. Looking for alternatives of that.

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3517
https://mir-jenkins.ubuntu.com/job/mir-ci/1021/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1116/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1164
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1155
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1155
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1126/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1126
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1126/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1126/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1126/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1126
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1126/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1021/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3518
https://mir-jenkins.ubuntu.com/job/mir-ci/1022/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1117
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1165
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1156
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1156
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1127
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1127/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1127
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1127/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1127
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1127/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1127
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1127/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1127
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1127/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1022/rebuild

review: Approve (continuous-integration)
Revision history for this message
Chris Halse Rogers (raof) wrote :

I'm good with this.

review: Approve
Revision history for this message
Chris Halse Rogers (raof) wrote :

Even without limiting to affected clang versions.

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

aye - it is now limited to the lttng directories.. so I am happy to land that now..

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/client/lttng/CMakeLists.txt'
2--- src/client/lttng/CMakeLists.txt 2016-03-29 07:30:50 +0000
3+++ src/client/lttng/CMakeLists.txt 2016-05-23 13:07:06 +0000
4@@ -15,6 +15,15 @@
5 string(REPLACE "-flto" "" NO_LTO_FLAGS ${CMAKE_C_FLAGS})
6 set(CMAKE_C_FLAGS ${NO_LTO_FLAGS})
7
8+# lttng-ust uses urcu headers which contain code blocks inside expressions
9+# this is a gnu extension.
10+string(REPLACE "-pedantic" "" NO_PEDANTIC_CHECK_FLAGS ${CMAKE_CXX_FLAGS})
11+if("${CMAKE_CXX_COMPILER}" MATCHES "clang")
12+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gnu-statement-expression")
13+else()
14+ set(CMAKE_CXX_FLAGS "${NO_PEDANTIC_CHECK_FLAGS}")
15+endif()
16+
17 add_library(mirclientlttng SHARED tracepoints.c)
18
19 # Don't treat missing-field-initializers as an error, since
20
21=== modified file 'src/server/report/lttng/CMakeLists.txt'
22--- src/server/report/lttng/CMakeLists.txt 2016-03-29 07:30:50 +0000
23+++ src/server/report/lttng/CMakeLists.txt 2016-05-23 13:07:06 +0000
24@@ -14,6 +14,15 @@
25 string(REPLACE "-flto" "" NO_LTO_FLAGS ${CMAKE_C_FLAGS})
26 set(CMAKE_C_FLAGS ${NO_LTO_FLAGS})
27
28+# lttng-ust uses urcu headers which contain code blocks inside expressions
29+# this is a gnu extension.
30+string(REPLACE "-pedantic" "" NO_PEDANTIC_CHECK_FLAGS ${CMAKE_CXX_FLAGS})
31+if("${CMAKE_CXX_COMPILER}" MATCHES "clang")
32+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-gnu-statement-expression")
33+else()
34+ set(CMAKE_CXX_FLAGS "${NO_PEDANTIC_CHECK_FLAGS}")
35+endif()
36+
37 set(
38 LTTNG_SOURCES
39

Subscribers

People subscribed via source and target branches