Mir

Merge lp:~andreas-pokorny/mir/0.14-fix-abi-problems into lp:mir/0.14

Proposed by Andreas Pokorny
Status: Merged
Approved by: Andreas Pokorny
Approved revision: no longer in the source branch.
Merged at revision: 2709
Proposed branch: lp:~andreas-pokorny/mir/0.14-fix-abi-problems
Merge into: lp:mir/0.14
Diff against target: 114 lines (+12/-12)
8 files modified
debian/control (+5/-5)
debian/mir-platform-graphics-android3.install (+1/-1)
debian/mir-platform-graphics-mesa-kms3.install (+1/-1)
src/platform/symbols.map (+1/-1)
src/platforms/CMakeLists.txt (+1/-1)
src/platforms/android/server/symbols.map (+1/-1)
src/platforms/mesa/server/kms/symbols.map (+1/-1)
tests/mir_test_framework/symbols-server.map (+1/-1)
To merge this branch: bzr merge lp:~andreas-pokorny/mir/0.14-fix-abi-problems
Reviewer Review Type Date Requested Status
Chris Halse Rogers Approve
Daniel van Vugt Approve
Review via email: mp+265328@code.launchpad.net

Commit message

Bump the server graphics platform ABI and fix the symbols in libmirplatform.so.8 (LP: #1474773)

Description of the change

This change bumps the server graphics platform ABI, since even with proper symbol naming inside libmirplatform.so.8 we run into stack smashing problems as soon as mirserver31 (0.13.3) tries to draw with android-graphics.so.2 (0.14.0).

To post a comment you must log in.
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Is it necessary to bump both ABIs to fix the problem?

Is the stack smashing just due to the mixup of symbols from bug 1474773?

review: Needs Information
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Sorry, just read the description again. It sounds like we broke the ABI of android-graphics.so.2 in the past but failed to notice and bump it.

Reminder: If these ABIs are higher in 0.14 then we'll need to bump them higher yet again in 0.15 where we've broken them differently.

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

Seems reasonable. Do we know how we broke the graphics platform ABI?

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

I could not figure out what change in particular caused this. But it corrupts the stack when we attempt to draw. Client connecting creating buffers and some initial redraws seem to work fine, but as soon as we try to draw to screen the process is killed.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

ABI bumps are free. If it works, land it.

Still remember to try and automate ABI checking ASAP... :P

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/control'
2--- debian/control 2015-07-20 20:38:44 +0000
3+++ debian/control 2015-07-20 21:59:30 +0000
4@@ -268,7 +268,7 @@
5 Contains the shared libraries required for the Mir server and client.
6
7 # Longer-term these drivers should move out-of-tree
8-Package: mir-platform-graphics-mesa-kms2
9+Package: mir-platform-graphics-mesa-kms3
10 Section: libs
11 Architecture: linux-any
12 Multi-Arch: same
13@@ -287,14 +287,14 @@
14 Package: mir-platform-graphics-mesa2
15 Section: oldlibs
16 Architecture: linux-any
17-Depends: mir-platform-graphics-mesa-kms2,
18+Depends: mir-platform-graphics-mesa-kms3,
19 ${misc:Depends},
20 ${shlibs:Depends},
21 Description: transitional dummy package
22 This is a transitional dummy package created due to package renaming.
23 It can safely be removed.
24
25-Package: mir-platform-graphics-android2
26+Package: mir-platform-graphics-android3
27 Section: libs
28 Architecture: i386 amd64 armhf
29 Multi-Arch: same
30@@ -356,7 +356,7 @@
31 Multi-Arch: same
32 Pre-Depends: ${misc:Pre-Depends}
33 Depends: ${misc:Depends},
34- mir-platform-graphics-mesa-kms2,
35+ mir-platform-graphics-mesa-kms3,
36 mir-client-platform-mesa2,
37 Description: Display server for Ubuntu - desktop driver metapackage
38 Mir is a display server running on linux systems, with a focus on efficiency,
39@@ -371,7 +371,7 @@
40 Multi-Arch: same
41 Pre-Depends: ${misc:Pre-Depends}
42 Depends: ${misc:Depends},
43- mir-platform-graphics-android2,
44+ mir-platform-graphics-android3,
45 mir-client-platform-android2,
46 Description: Display server for Ubuntu - android driver metapackage
47 Mir is a display server running on linux systems, with a focus on efficiency,
48
49=== renamed file 'debian/mir-platform-graphics-android2.install' => 'debian/mir-platform-graphics-android3.install'
50--- debian/mir-platform-graphics-android2.install 2015-06-17 05:20:42 +0000
51+++ debian/mir-platform-graphics-android3.install 2015-07-20 21:59:30 +0000
52@@ -1,1 +1,1 @@
53-usr/lib/*/mir/server-platform/graphics-android.so.2
54+usr/lib/*/mir/server-platform/graphics-android.so.3
55
56=== renamed file 'debian/mir-platform-graphics-mesa-kms2.install' => 'debian/mir-platform-graphics-mesa-kms3.install'
57--- debian/mir-platform-graphics-mesa-kms2.install 2015-06-17 05:20:42 +0000
58+++ debian/mir-platform-graphics-mesa-kms3.install 2015-07-20 21:59:30 +0000
59@@ -1,1 +1,1 @@
60-usr/lib/*/mir/server-platform/graphics-mesa-kms.so.2
61+usr/lib/*/mir/server-platform/graphics-mesa-kms.so.3
62
63=== modified file 'src/platform/symbols.map'
64--- src/platform/symbols.map 2015-06-17 05:20:42 +0000
65+++ src/platform/symbols.map 2015-07-20 21:59:30 +0000
66@@ -1,4 +1,4 @@
67-MIRPLATFORM_7 {
68+MIRPLATFORM_8 {
69 global:
70 extern "C++" {
71 # The following symbols come from running a script over the generated docs. Vis:
72
73=== modified file 'src/platforms/CMakeLists.txt'
74--- src/platforms/CMakeLists.txt 2015-06-17 05:20:42 +0000
75+++ src/platforms/CMakeLists.txt 2015-07-20 21:59:30 +0000
76@@ -7,7 +7,7 @@
77 set(MIR_SERVER_INPUT_PLATFORM_ABI ${MIR_SERVER_INPUT_PLATFORM_ABI} PARENT_SCOPE)
78 set(MIR_SERVER_INPUT_PLATFORM_VERSION "MIR_INPUT_PLATFORM_${MIR_SERVER_INPUT_PLATFORM_ABI}")
79 set(MIR_SERVER_INPUT_PLATFORM_VERSION ${MIR_SERVER_INPUT_PLATFORM_VERSION} PARENT_SCOPE)
80-set(MIR_SERVER_GRAPHICS_PLATFORM_ABI 2)
81+set(MIR_SERVER_GRAPHICS_PLATFORM_ABI 3)
82 set(MIR_SERVER_GRAPHICS_PLATFORM_ABI ${MIR_SERVER_GRAPHICS_PLATFORM_ABI} PARENT_SCOPE)
83 set(MIR_SERVER_GRAPHICS_PLATFORM_VERSION "MIR_GRAPHICS_PLATFORM_${MIR_SERVER_GRAPHICS_PLATFORM_ABI}")
84 set(MIR_SERVER_GRAPHICS_PLATFORM_VERSION ${MIR_SERVER_GRAPHICS_PLATFORM_VERSION} PARENT_SCOPE)
85
86=== modified file 'src/platforms/android/server/symbols.map'
87--- src/platforms/android/server/symbols.map 2015-04-28 07:54:10 +0000
88+++ src/platforms/android/server/symbols.map 2015-07-20 21:59:30 +0000
89@@ -1,4 +1,4 @@
90-MIR_GRAPHICS_PLATFORM_2 {
91+MIR_GRAPHICS_PLATFORM_3 {
92 global:
93 add_graphics_platform_options;
94 create_host_platform;
95
96=== modified file 'src/platforms/mesa/server/kms/symbols.map'
97--- src/platforms/mesa/server/kms/symbols.map 2015-06-17 05:20:42 +0000
98+++ src/platforms/mesa/server/kms/symbols.map 2015-07-20 21:59:30 +0000
99@@ -1,4 +1,4 @@
100-MIR_GRAPHICS_PLATFORM_2 {
101+MIR_GRAPHICS_PLATFORM_3 {
102 global:
103 add_graphics_platform_options;
104 create_host_platform;
105
106=== modified file 'tests/mir_test_framework/symbols-server.map'
107--- tests/mir_test_framework/symbols-server.map 2015-04-28 07:54:10 +0000
108+++ tests/mir_test_framework/symbols-server.map 2015-07-20 21:59:30 +0000
109@@ -1,4 +1,4 @@
110-MIR_GRAPHICS_PLATFORM_2 {
111+MIR_GRAPHICS_PLATFORM_3 {
112 global:
113 add_graphics_platform_options;
114 create_host_platform;

Subscribers

People subscribed via source and target branches