lp:~vorlon/mir/explicit-gcc-version-and-g++4.9-compatibility
- Get this branch:
- bzr branch lp:~vorlon/mir/explicit-gcc-version-and-g++4.9-compatibility
Branch merges
- Daniel van Vugt: Disapprove
- Cemil Azizoglu (community): Needs Resubmitting
- Chris Halse Rogers: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 67 lines (+14/-3)4 files modifieddebian/control (+4/-0)
debian/rules (+7/-0)
src/shared/graphics/android/syncfence.cpp (+1/-1)
tests/unit-tests/graphics/android/test_sync_fence.cpp (+2/-2)
- Mir development team: Pending requested
- Diff: 0 lines
Related bugs
Bug #1329089: g++-4.9 binary incompatibilities with libraries built with g++-4.8 | Medium | Fix Released |
Related blueprints
Branch information
Recent revisions
- 1730. By Alexandros Frantzis
-
android,tests: Fix g++ 4.9 build
It seems that g++ 4.9 has become more aggressive about constant folding of
expressions that use sizeof(), thus triggering warnings/errors related to
constant overflows that didn't occur with g++ 4.8.For example, g++-4.8 warns about overflowing i3, but not i4, whereas g++-4.9
warns about both i3 and i4:#define VALUE1 0x70000000UL
#define VALUE2 (VALUE1 >> sizeof(unsigned char))
#define VALUE3 0x80000000UL
#define VALUE4 (VALUE1 << sizeof(unsigned char))int main()
{
int i1 = VALUE1;
int i2 = VALUE2;
int i3 = VALUE3;
int i4 = VALUE4;
}This affects our ioctl() wrapper calls because we use 'int' for the request
parameter, whereas the request numbers produced by the kernel macros (using
sizeof() in the calculation) are 'unsigned long'. This MP fixes the problem by
casting the request numbers to 'int', which is a safe conversion since the
request numbers are constrained to 32 bits by design.Note that we don't have a problem with all ioctl request numbers, although they
are produced by the same set of macros, because almost all of them don't have
the high bit set (like VALUE2 above) and don't trigger the overflow error. The
one we have a problem with, SYNC_IOC_MERGE, has the high bit set (like VALUE4
above).Also note that the glibc ioctl() function signature uses 'unsigned long'
instead of 'int' for the request number. So, alternatively, we could fix the
problem by changing our wrappers to use 'unsigned long', too. However, the
glibc signature goes against POSIX and there have been discussions about
switching it back. See https://sourceware. org/bugzilla/ show_bug. cgi?id= 14362 . - 1728. By Thomas Voß
-
[ Daniel van Vugt ]
[ Thomas Voß ]
Explicitly select g++-4.9 to prevent from ABI breaks. - 1724. By Andreas Pokorny
-
Sending user input events through Surfaces
Adds input::
Surface: :consume to send MirEvent to clients. BasicSurface uses mir::input: :InputSender for that purpose. The default implementation of InputSender provided as mir::input: :android: :InputSender is based on the android input stack, i.e. using droidinput: :InputChannel and droidinput: :InputPublisher for that. - 1723. By Alexandros Frantzis
-
tests: Misc improvements and fixes to MirClientSurfac
eTest Clean up MirClientSurfac
eTest code and fix FD leaks. Fixes: https:/ /bugs.launchpad .net/bugs/ 1333673. Approved by Kevin DuBois, PS Jenkins bot, Alan Griffiths.
- 1722. By Andreas Pokorny
-
Unregister FD Handler from EventHandlerReg
ister Adds the ability to unregister FD callbacks from EventHandlerReg
ister and AsioMainLoop. The caller needs to identify the callback with a void const* during registration and removal. Approved by PS Jenkins bot, Kevin DuBois, Alan Griffiths, Alexandros Frantzis, Alberto Aguirre.
- 1721. By Robert Carr
-
Ensure the_cursor() is not null.
fixes: lp: #1334010. Fixes: https:/
/bugs.launchpad .net/bugs/ 1334010. Approved by PS Jenkins bot, Alberto Aguirre, Kevin DuBois.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:mir/ubuntu