Mir

Merge lp:~albaguirre/mir/fix-odr-issues-in-xenial-armhf into lp:mir

Proposed by Alberto Aguirre
Status: Merged
Approved by: Alberto Aguirre
Approved revision: no longer in the source branch.
Merged at revision: 3413
Proposed branch: lp:~albaguirre/mir/fix-odr-issues-in-xenial-armhf
Merge into: lp:mir
Diff against target: 160 lines (+17/-12)
11 files modified
include/test/mir_test_framework/placement_applying_shell.h (+1/-0)
src/platforms/common/client/mir/aging_buffer.cpp (+0/-5)
src/platforms/common/client/mir/aging_buffer.h (+1/-3)
tests/include/mir_test_framework/fake_input_server_configuration.h (+2/-1)
tests/include/mir_test_framework/stubbed_server_configuration.h (+1/-0)
tests/include/mir_test_framework/testing_server_configuration.h (+1/-0)
tests/mir_test_framework/CMakeLists.txt (+1/-0)
tests/mir_test_framework/fake_input_server_configuration.cpp (+4/-3)
tests/mir_test_framework/placement_applying_shell.cpp (+2/-0)
tests/mir_test_framework/stubbed_server_configuration.cpp (+2/-0)
tests/mir_test_framework/testing_server_options.cpp (+2/-0)
To merge this branch: bzr merge lp:~albaguirre/mir/fix-odr-issues-in-xenial-armhf
Reviewer Review Type Date Requested Status
Alan Griffiths Needs Information
Brandon Schaefer (community) Approve
Cemil Azizoglu (community) Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+289687@code.launchpad.net

Commit message

fix ODR related build issues in xenial-armhf

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

FAILED: Continuous integration, rev:3412
https://mir-jenkins.ubuntu.com/job/mir-ci/627/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/546/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/576
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/568
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/568
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/556
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/556/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/556
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/556/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/556/console
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/556/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/556
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/556/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/556
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/556/artifact/output/*zip*/output.zip

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

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

PASSED: Continuous integration, rev:3412
https://mir-jenkins.ubuntu.com/job/mir-ci/628/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/547
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/577
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/569
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/569
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/557
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/557/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/557
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/557/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/557
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/557/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/557
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/557/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/557
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/557/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

lgtm.

review: Approve
Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

LGTM

review: Approve
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

I don't see anything being fixed that *should* lead to an ODR failure - am I missing something?

The changes to AgingBuffer appear syntactic - the implicitly-defined default constructor may no longer be hand written, but does the same thing.

Multiple identical inline definitions are not an ODR violation. So taking the implicitly-defined destructors out of line could only make a difference if they were not identical. This /could/ happen if there were class members that could be destroyed differently in different circumstances (e.g. by "delete"ing a possibly incomplete type) - but I don't see that either.

Do we really understand the cause of the ODR error? Are we working around a tooling bug?

review: Needs Information

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'include/test/mir_test_framework/placement_applying_shell.h'
2--- include/test/mir_test_framework/placement_applying_shell.h 2016-03-17 03:38:36 +0000
3+++ include/test/mir_test_framework/placement_applying_shell.h 2016-03-21 17:53:43 +0000
4@@ -44,6 +44,7 @@
5 ClientInputRegions const& client_input_regions,
6 ClientPositions const& client_positions);
7
8+ ~PlacementApplyingShell();
9 mir::frontend::SurfaceId create_surface(
10 std::shared_ptr<mir::scene::Session> const& session,
11 mir::scene::SurfaceCreationParameters const& params,
12
13=== modified file 'src/platforms/common/client/mir/aging_buffer.cpp'
14--- src/platforms/common/client/mir/aging_buffer.cpp 2015-02-22 07:46:25 +0000
15+++ src/platforms/common/client/mir/aging_buffer.cpp 2016-03-21 17:53:43 +0000
16@@ -20,11 +20,6 @@
17
18 namespace mcl = mir::client;
19
20-mcl::AgingBuffer::AgingBuffer()
21- : buffer_age(0)
22-{
23-}
24-
25 uint32_t mcl::AgingBuffer::age() const
26 {
27 return buffer_age;
28
29=== modified file 'src/platforms/common/client/mir/aging_buffer.h'
30--- src/platforms/common/client/mir/aging_buffer.h 2016-03-17 03:38:36 +0000
31+++ src/platforms/common/client/mir/aging_buffer.h 2016-03-21 17:53:43 +0000
32@@ -29,14 +29,12 @@
33 class AgingBuffer : public ClientBuffer
34 {
35 public:
36- AgingBuffer();
37-
38 uint32_t age() const override;
39 void increment_age() override;
40 void mark_as_submitted() override;
41
42 private:
43- uint32_t buffer_age;
44+ uint32_t buffer_age{0};
45 };
46
47 }
48
49=== modified file 'tests/include/mir_test_framework/fake_input_server_configuration.h'
50--- tests/include/mir_test_framework/fake_input_server_configuration.h 2016-01-29 08:18:22 +0000
51+++ tests/include/mir_test_framework/fake_input_server_configuration.h 2016-03-21 17:53:43 +0000
52@@ -31,7 +31,8 @@
53 {
54 public:
55 FakeInputServerConfiguration();
56- FakeInputServerConfiguration(std::vector<mir::geometry::Rectangle> const& display_rects);
57+ explicit FakeInputServerConfiguration(std::vector<mir::geometry::Rectangle> const& display_rects);
58+ ~FakeInputServerConfiguration();
59
60 std::shared_ptr<mir::input::InputManager> the_input_manager() override;
61 std::shared_ptr<mir::input::InputDispatcher> the_input_dispatcher() override;
62
63=== modified file 'tests/include/mir_test_framework/stubbed_server_configuration.h'
64--- tests/include/mir_test_framework/stubbed_server_configuration.h 2016-01-29 08:18:22 +0000
65+++ tests/include/mir_test_framework/stubbed_server_configuration.h 2016-03-21 17:53:43 +0000
66@@ -37,6 +37,7 @@
67 public:
68 StubbedServerConfiguration();
69 explicit StubbedServerConfiguration(std::vector<geometry::Rectangle> const& display_rects);
70+ ~StubbedServerConfiguration();
71
72 std::shared_ptr<graphics::Platform> the_graphics_platform() override;
73 std::shared_ptr<compositor::RendererFactory> the_renderer_factory() override;
74
75=== modified file 'tests/include/mir_test_framework/testing_server_configuration.h'
76--- tests/include/mir_test_framework/testing_server_configuration.h 2015-06-25 03:00:08 +0000
77+++ tests/include/mir_test_framework/testing_server_configuration.h 2016-03-21 17:53:43 +0000
78@@ -32,6 +32,7 @@
79 public:
80 TestingServerConfiguration();
81 explicit TestingServerConfiguration(std::vector<geometry::Rectangle> const& display_rects);
82+ ~TestingServerConfiguration();
83
84 // Code to run in server process
85 virtual void exec();
86
87=== modified file 'tests/mir_test_framework/CMakeLists.txt'
88--- tests/mir_test_framework/CMakeLists.txt 2016-03-17 03:38:36 +0000
89+++ tests/mir_test_framework/CMakeLists.txt 2016-03-21 17:53:43 +0000
90@@ -68,6 +68,7 @@
91 add_library(mir-test-framework-static STATIC
92 $<TARGET_OBJECTS:mir-public-test-framework>
93 $<TARGET_OBJECTS:mir-protected-test-framework>
94+ $<TARGET_OBJECTS:mir-public-test>
95 )
96
97 add_dependencies(mir-test-framework-static GMock)
98
99=== modified file 'tests/mir_test_framework/fake_input_server_configuration.cpp'
100--- tests/mir_test_framework/fake_input_server_configuration.cpp 2016-01-29 08:18:22 +0000
101+++ tests/mir_test_framework/fake_input_server_configuration.cpp 2016-03-21 17:53:43 +0000
102@@ -24,15 +24,16 @@
103 namespace ms = mir::scene;
104 namespace msh = mir::shell;
105
106-mtf::FakeInputServerConfiguration::FakeInputServerConfiguration()
107-{
108-}
109+mtf::FakeInputServerConfiguration::FakeInputServerConfiguration() = default;
110
111 mtf::FakeInputServerConfiguration::FakeInputServerConfiguration(std::vector<mir::geometry::Rectangle> const& display_rects)
112 : TestingServerConfiguration(display_rects)
113 {
114 }
115
116+mtf::FakeInputServerConfiguration::~FakeInputServerConfiguration() = default;
117+
118+
119 std::shared_ptr<mi::InputManager> mtf::FakeInputServerConfiguration::the_input_manager()
120 {
121 return DefaultServerConfiguration::the_input_manager();
122
123=== modified file 'tests/mir_test_framework/placement_applying_shell.cpp'
124--- tests/mir_test_framework/placement_applying_shell.cpp 2016-03-17 03:38:36 +0000
125+++ tests/mir_test_framework/placement_applying_shell.cpp 2016-03-21 17:53:43 +0000
126@@ -30,6 +30,8 @@
127 {
128 }
129
130+mtf::PlacementApplyingShell::~PlacementApplyingShell() = default;
131+
132 mir::frontend::SurfaceId mtf::PlacementApplyingShell::create_surface(
133 std::shared_ptr<mir::scene::Session> const& session,
134 mir::scene::SurfaceCreationParameters const& params,
135
136=== modified file 'tests/mir_test_framework/stubbed_server_configuration.cpp'
137--- tests/mir_test_framework/stubbed_server_configuration.cpp 2016-01-29 08:18:22 +0000
138+++ tests/mir_test_framework/stubbed_server_configuration.cpp 2016-03-21 17:53:43 +0000
139@@ -81,6 +81,8 @@
140 {
141 }
142
143+mtf::StubbedServerConfiguration::~StubbedServerConfiguration() = default;
144+
145 std::shared_ptr<mg::Platform> mtf::StubbedServerConfiguration::the_graphics_platform()
146 {
147 if (!graphics_platform)
148
149=== modified file 'tests/mir_test_framework/testing_server_options.cpp'
150--- tests/mir_test_framework/testing_server_options.cpp 2016-01-29 08:18:22 +0000
151+++ tests/mir_test_framework/testing_server_options.cpp 2016-03-21 17:53:43 +0000
152@@ -81,6 +81,8 @@
153 {
154 }
155
156+mtf::TestingServerConfiguration::~TestingServerConfiguration() = default;
157+
158 void mtf::TestingServerConfiguration::exec()
159 {
160 }

Subscribers

People subscribed via source and target branches