Commit Graph

29574 Commits

Author SHA1 Message Date
Alex Blasche
e395e79145 Fix QtNative.checkSelfPermission()
Only return activity object when available and *not* when unavailable.

Task-number: QTBUG-55035
Task-number: QTBUG-50759
Change-Id: I60b1be528b2e4a3d630f4085b7642d74e18482bd
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-09-20 11:13:42 +00:00
Jake Petroules
04cb6e2754 Fix namespaced build on iOS
Change-Id: I682fabe8891e0325e6545b4499a59af4ad584c41
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-20 05:46:56 +00:00
Allan Sandfeld Jensen
8b2f91e328 Add AVX2 versions of the fast blending functions
This patch adds AVX2 versions of the fast blending functions that we
already have SSE2 versions of.

Change-Id: Ifd1a22f7891b6208cb74929ad26095d12c5a1efb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-18 19:36:30 +00:00
Tor Arne Vestbø
2d2d90781a macOS: Implement QCocoaBackingStore in terms of QRasterBackingStore
The previous detection of device pixel ratio changes in paintDevice()
is not needed, as QBackingStore::beginPaint() already does this check
and calls resize().

Change-Id: I9ee8410fa3a5404c5ec19d2cba4543a9e3359fe9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-09-18 14:33:04 +00:00
Morten Johan Sørvig
41ab34d9e8 Blacklist modalWindowModallity on macOS aka “osx”
Passes locally, unstable on CI.

Change-Id: I251ad9603d14fd6195f721135ac606a1fd6b5060
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-18 14:32:42 +00:00
Tor Arne Vestbø
dc3af6a164 iOS: Implement support for QScreen::grabWindow()
Only windows that are part of the application can be grabbed. This
excludes the system statusbar and other system overlays, as well
as windows of other applications. This is a limitation due to the
security model of iOS.

There exists APIs to grab a snapshot of the complete screen, but
these APIs return a view that can be used as a placeholder e.g.
during view transformations, and doesn't match our API that require
reading of pixels.

Task-number: QTBUG-49944
Change-Id: I8fd5b4c2777be1486f0ff22762d5e9b64c927e70
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:59 +00:00
Tor Arne Vestbø
5ad8b3aa32 macOS: Move QColor/QBrush conversion functions to QtGui
Change-Id: I971d1d69b491532fd0dc0bab72b274dec6591e6b
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:54 +00:00
Tor Arne Vestbø
49b3510bb9 macOS: Move image conversion functions to QtGui
Change-Id: I911f2648e506f27519e98be1bffe2c5ab0f388f1
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:47 +00:00
Tor Arne Vestbø
e419403ebf macOS: Remove unused function qt_mac_QRegionToHIMutableShape
Code using it was removed in a198ce8d.

Change-Id: I841f55768da080fbc87e0f2d9394cdc0a22e500e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:41 +00:00
Marc Mutz
d58d7a5376 Add QStringList::join(QLatin1String) overload
Costs only ~300B in text size in QtCore, which is roughly compensated by
savings in other QtBase libraries, even without specifically porting
users to QL1S.

Of course, the raison d'être for this overload is avoiding the expensive
QLatin1String -> QString conversion which, for small lists, can take up
to 50% of the total runtime (assuming memory allocations dominate over
scanning and copying the list).

[ChangeLog][QtCore][QStringList] Added join(QLatin1String) overload.

Change-Id: I91d7e1d4e2c76d6dc79f2b750cf8e256dd4e0ab6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-18 07:28:56 +00:00
Tor Arne Vestbø
c52bb03090 macOS: Move QMacCGContext helper into QtGui
The implementation was duplicated and spread out between QMacStyle,
QMacPaintEngine, and the Cocoa platform plugin.

Moving it into QtGui allows using it on other Apple platform.

Change-Id: Iadcbd71998204887e116271c575037789b6e2163
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-17 18:00:47 +00:00
Marc Mutz
542ba86e22 tests/auto/corelib/mimetypes: use local QThreadPool
Isolates the test from anything that might be going on on the globalInstance().
Enabled by the explicit thread-pool feature on QtConcurrent::run().

Add explicit timed wait (unit tests should contain as little indefinite waits
as possible).

Also avoids the use of QFutureSynchronizer, which makes my static QList
checker go nuts, with no way of fixing it until Qt 6.

Change-Id: I0829992642b2a49bb6a10ddd4b31eb3f88e3adeb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-17 06:47:05 +00:00
Marc Mutz
1b98ce1986 QSqlRelation: mark shared-come-qt6
... and plaster API with nothrow (well, one function).

Change-Id: I36fd64c6fda5390954c82bba307c720d3b3215df
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-17 06:47:01 +00:00
Thiago Macieira
18ed6f20ad Change some #elif to #endif / #if in qcompilerdetection.h
The conditions aren't exclusive, but complementary.

This change removes one check for defined(Q_CC_INTEL) because it was
disabled before and requires testing before we confirm it to be correct.

Change-Id: I33dc971f005a4848bb8ffffd14748cde4dd23333
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-09-16 21:25:47 +00:00
Thiago Macieira
a6bc0157eb Correct the C++ standard references in QMutex functions
Section 30.4.1.3 [thread.timedmutex.requirements] has 16 paragraphs and
2 subsections.

Change-Id: I9093948278414644a416fffd1473fec7fdd2716c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-16 15:33:46 +00:00
Lars Knoll
8d6f2e7e15 Add a QT_REQUIRE_CONFIG(feature) macro
This macro expands into a static_assert and can be used to
trigger a compile error if a certain feature is not available
when trying to compile some code.

This is especially useful to protect against accidental inclusion
of headers that implement functionality related to a feature.

Change-Id: I456c55b989ce5f35f3af0e13c1886a85c23dfe29
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-16 12:27:59 +00:00
BogDan Vatra
31a63b6903 Say hello to Android 6+ permissions model
This API was introduced by Android v23 and is used in connection with
the new permission request system. From Android v23 onwards, some
permissions such as Location permissions cannot only be granted via
Android's Manifest files. An additional runtime check/request system
was introduced which forces applications to prompt the user
the first time a privileged function is called. Such user prompt
responses
are returned to the current application via the
Activity.onRequestPermissionsResult(..) callback.
This change add Qt API to nicely check & request permissions. For now
this is private
API which can be used to fix permission problems in other Qt
compontents. Later Qt versions will introduce a public API to
QtAndroidExtras.

[ChangeLog][QtCore][Android] Introduced a mechanism to forward
permission related callbacks on Activity objects to interested parties.

Task-number: QTBUG-55035
Task-number: QTBUG-50759
Change-Id: I64ee748d741b39e35c4713ed9fdd15dd1d96dc56
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2016-09-16 12:13:29 +00:00
Edward Welbourne
fdca8cb09e HTTP/2 tests: Remove execute permissions from source files
Source (.cpp and .h) files should not be executable.

Change-Id: I021d8733185d73d071fcaf3df7e529862a490b63
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-09-06 18:33:26 +00:00
Maurice Kalinowski
ee17289dc9 Fix out of source builds on windows
Change-Id: If4d03e889dda3cf7557c3d41dda4ffad8790f2e0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-16 08:13:39 +00:00
Olivier Goffart
97710f429f moc: Fix asserts on moc on empty token preceding ## operator
Regression introduced in c32ef0a725
The expansion vector can be empty, in that case it is not allowed to
call constLast()

Task-number: QTBUG-55853
Change-Id: I47aa8eb7507ee91662215df42b4a66eebaa32bb5
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-09-16 07:47:29 +00:00
Eskil Abrahamsen Blomfeldt
001efe14f2 DirectWrite: Fix embedding fonts in PDF
If no filename is stored in the faceId() of the
font engine, then the PDF engine will bail out and embed
each glyph separately instead of embedding the font. This
would cause PDFs to be huge and unsearchable when high-dpi
was active, since we will automatically default to the
DirectWrite engine in this case.

[ChangeLog][QtGui][Windows] Fixed embedding fonts in PDF when
dpi scaling is active or when the hinting preference was
none or vertical hinting.

Task-number: QTBUG-54740
Change-Id: I20630595f51660109c5a12c52076738a04036520
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-09-16 07:23:26 +00:00
Friedemann Kleint
60e8714e58 Bring back QSysInfo enumeration values for Windows CE
Partially revert 7fc2864dc5.

Entries should be kept until Qt 6 for source compatibility.

Task-number: QTBUG-55973
Change-Id: I09346fcd9227224f878f5ee064152e85f075ae09
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-16 04:30:47 +00:00
Thiago Macieira
b630a4513c QtConcurrent: use QDeadlineTimer to get the clock tick
Instead of duplicating what QElapsedTimer & QDeadlineTimer already do.
Well, technically speaking, we aren't getting ticks, but nanoseconds
now, but the times are only used in comparisons with each other, to
measure the control overhead, so the unit in which they are measured
doesn't matter.

This also makes all OSes use the same type of timers. There's no
exception for per-thread timing.

Change-Id: I115db302eb114bed8cd1fffd14557b228284f2c0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-09-15 19:43:57 +00:00
Thiago Macieira
ec770a8530 Nitpick: fix style in QtCore code added since 5.7
Change-Id: I9093948278414644a416fffd147400f99fc9f844
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru>
2016-09-15 19:38:20 +00:00
Sune Vuorela
4ac150682a API Review: Don't reorder existing enum values
Inserting things into the middle of an enum breaks backwards
compatibility, so don't do that.

Change-Id: Ie8e2768e8681f0237e7f233f4461f884b4b1b4f9
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 17:30:59 +00:00
Anton Kudryavtsev
6aa935cd92 Use QString::fromLatin1() less to avoid string allocations
QString::fromLatin1 always allocates memory, but there are
cases where we can avoid/reduce allocations or/and reduce
text size, e.g.:

QStringBuilder expressions
Fix: replace QString::fromLatin1 with QL1S

QString::fromLatin1().arg(String) pattern
Fix: replace with QStringBuilder

Overloaded functions with QL1S arg
Fix: replace QString::fromLatin1 with QL1S

In rare cases if there is no overloaded function
with QL1S and we have deal with string literal,
replace QString::fromLatin1 with QStringLiteral.

Change-Id: Iabe1a3cc0830f40ef78a0548afa4368583c31def
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 15:55:57 +00:00
Ulf Hermann
251d6094ab Silence warning from syncqt
Apparently syncqt considers anything like "<blah.h>" to be an include
statement, even if it's in a comment. Yet, in fact, the comment was not
entirely correct here.

Change-Id: I7a661007ee86bb20242d54eb128c6b646cac15e7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-09-15 15:29:30 +00:00
Maurice Kalinowski
60da6313cf winrt: Fix initialization of input context
f104e43a72 moved QWinRTInputContext to the
gui thread. However, IInputPane needs to be queried from Xaml itself.
Otherwise it might cause unhandled exceptions.

Change-Id: I43848c796e7ff163e6befa7c58f0ad68445b9865
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 14:26:01 +00:00
Maurice Kalinowski
6320ca79e9 Fix test for sandboxed targets
Instead of creating files relative to the application binary, use a
temporary directory. This also cleans up the test data after execution.

Change-Id: I5d680fd01c60b0d33df06f9cb9aaef7c86279710
Reviewed-by: Jesus Fernandez <jesus.fernandez@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 14:25:50 +00:00
Anton Kudryavtsev
6b2071c697 Use QStringBuilder more to optimize memory allocations
Change-Id: I2939ffa10496fdc59e0402a9cb54458565ccd657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-15 09:08:45 +00:00
BogDan Vatra
bee70b24c1 Check the context of Q_ENUM[_NS] and Q_FLAG[_NS]
Change-Id: Ifc8cb50efe3b07a79c8afbb382fba12649b602b2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-09-15 08:55:32 +00:00
Allan Sandfeld Jensen
0a4d3a9218 Minimize register conversions in NEON optimization
Redoes the simple calculation of x coordinates in integer registers
rather than use the potentially expensive extract/move from NEON
register.

Change-Id: I914b463d6c20be2281710d626407196112d1615b
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2016-09-15 08:38:11 +00:00
Oswald Buddenhagen
e8091eb6c8 don't complain about missing QPA plugin on android
android is linux, but the QPA plugin is not enabled by configure, so
skip the warning here.

Change-Id: Ib136dd142b775a00686cdaa0cec5414d035c9516
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:24:20 +00:00
Oswald Buddenhagen
e4391bb403 make the style listing in the configure summary less weird
remove the redundant 'Style' suffix, and use CamelCased words (the list
uses space as a separator).

Change-Id: I169a741fdc293ac42ae6b97a5726477b53127506
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:24:16 +00:00
Lars Knoll
a668c6a6b6 Convert the old feature system
... to the new qmake based configuration system.

This removes the old qfeatures.txt (distributed over configure.json
files) and qfeatures.h (distributed over qconfig-<module>.h files).

qfeatures.prf is gone without replacement, as attempts to use it would
lead to followup errors anyway.

Change-Id: I1598de19db937082283a905b9592d3849d2199d0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-15 08:24:10 +00:00
Lars Knoll
b22471edf9 Make things compile with the printer feature disabled
Always include qtprintsupportglobal.h before checking the
ifdef, and add ifdef's where they where missing.

Change-Id: I535dce33b26955fb0196ea05d54be41fe93e9151
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-15 08:24:04 +00:00
Oswald Buddenhagen
b754b2815d rename description => label in configure.json
"description" suggests something slightly longer.

this may seem like a gratuitous change, but the upcoming replacement of
the old feature system clarifies makes it seem much less so.

Change-Id: Ibe702e01cb146b59127bf1f990b4acaef1c61d55
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:24:00 +00:00
Lars Knoll
2d3c73fcfe Modularize configure.json/.pri
Move the different parts of configure.json/.pri into the libraries where
they belong.

Gui is not yet fully modularized, and contains many things related to
the different QPA plugins.

Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:23:53 +00:00
Alexander Volkov
fc098de70a xcb: Remove unused NoFontHinting hint
It is unused since 0f7bc885aa
(Turn off font hinting when active highdpi scaling).

Change-Id: I901407bedf24ae301acbe6afa94bc0a4cadb0620
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-09-12 13:36:26 +00:00
Allan Sandfeld Jensen
8cedf59a68 Fix Linux build without XINPUT2
XcbConnection::TabletData only exist if XCB_USE_XINPUT2 is defined and
QT_NO_TABLETEVENT is not.

Change-Id: I94f4558714b105f2ce98b9b4a7462e7a8eb628e3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-12 06:33:55 +00:00
Maurice Kalinowski
13d20e4787 winrt: Report system languages for QLocale::uiLanguages
dc3e7e45eb introduced locales from a
packaging perspective, providing the information available from the
package manifest. However, developers are rather interested in the
available and preferred system languages to update user interfaces.

Task-number: QTBUG-55672
Change-Id: I740d4f9c9ca21a8cbd437d3b232470897c569d34
Reviewed-by: Jens Bache-Wiig <jensbw@gmail.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-11 17:15:14 +00:00
Maurice Kalinowski
e9b51781d0 winrt: Fix display of tooltips
This touches multiple areas. First adding a tooltip to the window list
should not automatically invoke focussing and hence
handleWindowActivated should not be invoked. This is the same approach
as on the windows qpa.

The winrt qpa supports multiple (non-fullscreen) windows since a while.
However, pointerUpdated still acted on the top level window, which
caused problems resolving the real target of a mouse event. In this case
the tooltip received all events, while the application window should get
them. Hence identify the target window via the system coordinates.

Task-number: QTBUG-50733
Change-Id: Iea1f4cd7406e6cde85ab3fc83f018b871fc30824
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-11 17:15:01 +00:00
Laszlo Agocs
7373929d68 Fix missing GL function protos with newer GLES headers
A recent ANGLE update added GL_GLEXT_PROTOTYPES for gl2.h. That was
a good first step, but we need this for gl3.h and gl31.h as well,
because once one upgrades to a newer EGL/GLES capable build of Mesa,
the same problem will surface.

Change-Id: I138ae32e3461dc87bf789aa641359ae46c0ec170
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-10 14:54:28 +00:00
Laszlo Agocs
103ffa117d Add a spec for NXP Colibri VF50/61
Change-Id: I12450a214d61ffa00270095df0c77e57647d7a2c
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-09-10 14:54:16 +00:00
Lars Knoll
60e5a1c8ef Modularize the new configure system (infrastructure part)
This change implements the required infrastructure to modularize the new
configuration system.

This requires a hierarchy of configuration files, both for handling
multiple repositories and for individual modules inside the same
repository.

When configuring, they all need to get loaded first, as command line
processing needs to know about all possible command line options.

When the command line has been processed, the individual configuration
files need to get processed one after the other and independently from
each other.

Configure is now automatically invoked when building the a project
tree's "root" project; this works with both modular and top-level builds
of Qt (the latter with an according change in the super repo). As an
immediate consequence, the -skip option moves to the super repo with a
different implementation, as configuration is now done after the repo
list is determined. The option belongs there anyway.

This commit also adds an optional testDir entry to the json file. Like
this, we can still have all configure tests in qtbase/config.tests and
the configuration file in, e.g., corelib can reference those.

The files section can now be left out as long as a 'module' entry is
present, specifying the module name. The names of the files to generate
can then be deduced from that name. We still need to be able to specify
names directly for the global configuration files.

qtConfig() now also queries features which are module-specific. As it is
sometimes necessary to query the configuration of modules which should
not be actually linked (and cannot in the case of subdirs projects), the
new variable QT_FOR_CONFIG which allows specifying configuration-only
dependencies is introduced.

Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: Id1b518a3aa34044748b87fb8fac14d79653f6b18
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-10 14:04:01 +00:00
Lars Knoll
137e690ac7 Turn the available sql drivers into public features
This is required to do the modularization of those
features properly.

Change-Id: I384aff20274e795aa70483980f0ef25309328800
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-10 14:03:50 +00:00
Oswald Buddenhagen
e776031281 minor optimization in stale file removal code
don't bother opening headers.pri files, as they won't match anyway.

Change-Id: I4d923266dabf1c9684fba4086f55bc24d76d23c5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-10 14:03:46 +00:00
Lars Knoll
b95b00c61a Be more robust when reading the library version number from pkg-config
Ignore everything that after the initial period separated numbers.

Change-Id: I376b154ff0ab6e3877223ec1383ed4708ecd2164
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-10 14:03:43 +00:00
Marc Mutz
a70faa8470 qmake: remove unused #include
Amends 5af12dae41.

Change-Id: I8dd35d21de882be2628f5dd75a5ddd9deef71a19
Reviewed-by: Jesus Fernandez <jesus.fernandez@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-09 18:16:45 +00:00
Marc Mutz
6549bd383d Optimize Q_FOREACH for rvalues
Add an rvalue overload of the QForeachContainer ctor to allow moving
rvalues into the internal container copy.

This does not change the semantics of Q_FOREACH. It is just an
optimization.

Port to NSDMI to minimize code duplication.

Costs ~1.3KiB across all libraries and plugins in a QtBase Linux
build (optimized GCC 6.1 AMD64).

Change-Id: I180e35ecab68aa1d37773b3546787481bb5515a2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-09-09 17:19:27 +00:00