Mir

lp:~vorlon/mir/explicit-gcc-version-and-g++4.9-compatibility

Created by Steve Langasek and last modified
Get this branch:
bzr branch lp:~vorlon/mir/explicit-gcc-version-and-g++4.9-compatibility
Only Steve Langasek can upload to this branch. If you are Steve Langasek please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Steve Langasek
Project:
Mir
Status:
Development

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 .

1729. By Thomas Voß

Revert changes to debian/changelog.

1728. By Thomas Voß

[ Daniel van Vugt ]
[ Thomas Voß ]
Explicitly select g++-4.9 to prevent from ABI breaks.

1727. By Kevin DuBois

android: overdue mop up for HwcDevice test

no production code changes.

1726. By Andreas Pokorny

Move InputChannelFactory into DefaultServerConfiguration

1725. By Alan Griffiths

server: Avoid race condition in AlarmImpl

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 MirClientSurfaceTest

Clean up MirClientSurfaceTest 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 EventHandlerRegister

Adds the ability to unregister FD callbacks from EventHandlerRegister 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
This branch contains Public information 
Everyone can see this information.

Subscribers