[oe] [meta-browser][PATCH] chromium: fix gcc5 compile issues

Martin Jansa martin.jansa at gmail.com
Fri Nov 6 17:17:38 UTC 2015


On Thu, Nov 05, 2015 at 02:14:37PM +0100, Max Krummenacher wrote:
> Hi Zoltan, Khem
> 
> 2015-11-05 7:31 GMT+01:00 Zoltan Kuscsik <zoltan.kuscsik at linaro.org>:
> > Why not using pragma in both cases?
> 
> Because I started bignum.cc and found a quick fix without the pragma.
> And in the second case I did not.
> 
> I will rework the patch to silence the warning with a pragma in both
> cases without touching the code.
> 
> > See the discussion on the issue in Chromium upstream:
> >
> > https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/3uwBwunIa7g
> 
> I looked at the upstream git repo and googled but did not find the
> discussion already going on.
> 
> I'll will rework the upstream status to point to this URL also.

After long time first successful chromium build in bitbake world..
Thanks!

Can you apply the same fix for cef3 recipes?
http://errors.yoctoproject.org/Errors/Details/21442/

cef3 for qemux86-64 doesn't even configure:
http://errors.yoctoproject.org/Errors/Details/21501/

> > On 5 November 2015 at 02:10, Khem Raj <raj.khem at gmail.com> wrote:
> >
> >>
> >> > On Nov 4, 2015, at 1:50 PM, Max Krummenacher <max.oss.09 at gmail.com>
> >> wrote:
> >> >
> >> > A chromium build with gcc5 fails with warnings treated as errors.
> >> >
> >> > bignum.cc, image_util.cc: strict-overflow warning
> >> >
> >> > Compiles and runs on qemux86-64 with gcc 5.2.0 and still compiles on
> >> > armv7a with gcc linaro-4.9.4.
> >> >
> >>
> >> this is ok
> 
> Thanks.
> 
> >>
> >> > Signed-off-by: Max Krummenacher <max.oss.09 at gmail.com>
> >> > ---
> >> > .../0001-bignum.cc-fix-warning-from-gcc-5.patch    | 56
> >> ++++++++++++++++++++++
> >> > ...-image_util.cc-disable-warning-from-gcc-5.patch | 37 ++++++++++++++
> >> > recipes-browser/chromium/chromium_40.0.2214.91.bb  |  3 ++
> >> > 3 files changed, 96 insertions(+)
> >> > create mode 100644
> >> recipes-browser/chromium/chromium/chromium-40/0001-bignum.cc-fix-warning-from-gcc-5.patch
> >> > create mode 100644
> >> recipes-browser/chromium/chromium/chromium-40/0002-image_util.cc-disable-warning-from-gcc-5.patch
> >> >
> >> > diff --git
> >> a/recipes-browser/chromium/chromium/chromium-40/0001-bignum.cc-fix-warning-from-gcc-5.patch
> >> b/recipes-browser/chromium/chromium/chromium-40/0001-bignum.cc-fix-warning-from-gcc-5.patch
> >> > new file mode 100644
> >> > index 0000000..f3d7f77
> >> > --- /dev/null
> >> > +++
> >> b/recipes-browser/chromium/chromium/chromium-40/0001-bignum.cc-fix-warning-from-gcc-5.patch
> >> > @@ -0,0 +1,56 @@
> >> > +From 689576b2f5c6398f6ef5203fe52edcf86b452790 Mon Sep 17 00:00:00 2001
> >> > +From: Max Krummenacher <max.oss.09 at gmail.com>
> >> > +Date: Tue, 3 Nov 2015 20:51:04 +0100
> >> > +Subject: [PATCH 1/2] bignum.cc: fix warning from gcc 5
> >> > +
> >> > +Refactoring the source seems to workaround the compiler warning.
> >> > +
> >> > +addresses:
> >> > +  ../../third_party/WebKit/Source/wtf/dtoa/bignum.cc:105:10: error:
> >> assuming
> >> > +  signed overflow does not occur when assuming that (X + c) < X is
> >> always
> >> > +  false [-Werror=strict-overflow]
> >> > +      void Bignum::AssignDecimalString(Vector<const char> value) {
> >> > +           ^
> >> > +
> >> > +Signed-off-by: Max Krummenacher <max.oss.09 at gmail.com>
> >> > +Upstream-Status: Pending
> >> > +
> >> > +---
> >> > + third_party/WebKit/Source/wtf/dtoa/bignum.cc | 15 +++++++--------
> >> > + 1 file changed, 7 insertions(+), 8 deletions(-)
> >> > +
> >> > +diff --git a/third_party/WebKit/Source/wtf/dtoa/bignum.cc
> >> b/third_party/WebKit/Source/wtf/dtoa/bignum.cc
> >> > +index a000b46..e5426dd 100644
> >> > +--- a/third_party/WebKit/Source/wtf/dtoa/bignum.cc
> >> > ++++ b/third_party/WebKit/Source/wtf/dtoa/bignum.cc
> >> > +@@ -105,20 +105,19 @@ namespace double_conversion {
> >> > +     void Bignum::AssignDecimalString(Vector<const char> value) {
> >> > +         // 2^64 = 18446744073709551616 > 10^19
> >> > +         const int kMaxUint64DecimalDigits = 19;
> >> > ++        int currentLen;
> >> > +         Zero();
> >> > +         int length = value.length();
> >> > +         int pos = 0;
> >> > +         // Let's just say that each digit needs 4 bits.
> >> > +-        while (length >= kMaxUint64DecimalDigits) {
> >> > +-            uint64_t digits = ReadUInt64(value, pos,
> >> kMaxUint64DecimalDigits);
> >> > +-            pos += kMaxUint64DecimalDigits;
> >> > +-            length -= kMaxUint64DecimalDigits;
> >> > +-            MultiplyByPowerOfTen(kMaxUint64DecimalDigits);
> >> > ++        while (length > 0) {
> >> > ++            currentLen = length > kMaxUint64DecimalDigits ?
> >> kMaxUint64DecimalDigits : length;
> >> > ++            uint64_t digits = ReadUInt64(value, pos, currentLen);
> >> > ++            MultiplyByPowerOfTen(currentLen);
> >> > +             AddUInt64(digits);
> >> > ++            pos += currentLen;
> >> > ++            length -= currentLen;
> >> > +         }
> >> > +-        uint64_t digits = ReadUInt64(value, pos, length);
> >> > +-        MultiplyByPowerOfTen(length);
> >> > +-        AddUInt64(digits);
> >> > +         Clamp();
> >> > +     }
> >> > +
> >> > +--
> >> > +1.8.4.5
> >> > +
> >> > diff --git
> >> a/recipes-browser/chromium/chromium/chromium-40/0002-image_util.cc-disable-warning-from-gcc-5.patch
> >> b/recipes-browser/chromium/chromium/chromium-40/0002-image_util.cc-disable-warning-from-gcc-5.patch
> >> > new file mode 100644
> >> > index 0000000..d62645b
> >> > --- /dev/null
> >> > +++
> >> b/recipes-browser/chromium/chromium/chromium-40/0002-image_util.cc-disable-warning-from-gcc-5.patch
> >> > @@ -0,0 +1,37 @@
> >> > +From 2f674d980a116075dc7123a3e243b1451e4a732d Mon Sep 17 00:00:00 2001
> >> > +From: Max Krummenacher <max.oss.09 at gmail.com>
> >> > +Date: Tue, 3 Nov 2015 22:13:40 +0100
> >> > +Subject: [PATCH 2/2] image_util.cc: disable warning from gcc 5
> >> > +
> >> > +addresses:
> >> > +  ../../ui/gfx/image/image_util.cc:50:6: error: assuming signed
> >> overflow does
> >> > +  not occur when assuming that (X - c) <= X is always true
> >> > +  [-Werror=strict-overflow]
> >> > +  bool VisibleMargins(const ImageSkia& image, int* leading, int*
> >> trailing) {
> >> > +       ^
> >> > +
> >> > +Signed-off-by: Max Krummenacher <max.oss.09 at gmail.com>
> >> > +Upstream-Status: Pending
> >> > +
> >> > +---
> >> > + ui/gfx/image/image_util.cc | 3 +++
> >> > + 1 file changed, 3 insertions(+)
> >> > +
> >> > +diff --git a/ui/gfx/image/image_util.cc b/ui/gfx/image/image_util.cc
> >> > +index 89a3f8c..d595da3 100644
> >> > +--- a/ui/gfx/image/image_util.cc
> >> > ++++ b/ui/gfx/image/image_util.cc
> >> > +@@ -68,7 +68,10 @@ bool VisibleMargins(const ImageSkia& image, int*
> >> leading, int* trailing) {
> >> > +   int inner_min = bitmap.width();
> >> > +   for (int x = 0; x < bitmap.width(); ++x) {
> >> > +     for (int y = 0; y < bitmap.height(); ++y) {
> >> > ++#pragma GCC diagnostic push
> >> > ++#pragma GCC diagnostic warning "-Wstrict-overflow"
> >> > +       if (SkColorGetA(bitmap.getColor(x, y)) > kMinimumVisibleOpacity)
> >> {
> >> > ++#pragma GCC diagnostic pop
> >> > +         inner_min = x;
> >> > +         break;
> >> > +       }
> >> > +--
> >> > +1.8.4.5
> >> > +
> >> > diff --git a/recipes-browser/chromium/chromium_40.0.2214.91.bb
> >> b/recipes-browser/chromium/chromium_40.0.2214.91.bb
> >> > index 8bc05ee..3e00b8d 100644
> >> > --- a/recipes-browser/chromium/chromium_40.0.2214.91.bb
> >> > +++ b/recipes-browser/chromium/chromium_40.0.2214.91.bb
> >> > @@ -28,7 +28,10 @@ SRC_URI = "\
> >> >         file://google-chrome.desktop \
> >> >         file://chromium-40/fix-build-error-with-GCC-in-Debug-mode.patch \
> >> >         file://chromium-40/add_missing_stat_h_include.patch \
> >> > +        file://chromium-40/0001-bignum.cc-fix-warning-from-gcc-5.patch \
> >> > +
> >> file://chromium-40/0002-image_util.cc-disable-warning-from-gcc-5.patch \
> >> > "
> >> > +
> >> > #
> >> > # * use-egl : Without this packageconfig, the Chromium build will use
> >> GLX for creating an OpenGL context in X11,
> >> > #             and regular OpenGL for painting operations. Neither are
> >> desirable on embedded platforms. With this
> >> > --
> >> > 1.8.4.5
> >> >
> >> > --
> >> > _______________________________________________
> >> > Openembedded-devel mailing list
> >> > Openembedded-devel at lists.openembedded.org
> >> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >>
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-devel mailing list
> >> Openembedded-devel at lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >>
> >>
> >
> >
> > --
> > Zoltan Kuscsik
> >
> > Senior Software Developer, Linaro Digital Home Group
> > email: zoltan.kuscsik at linaro.org
> > IRC: zoli_ on irc.linaro.org
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> Regards
> Max
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20151106/a1da9172/attachment-0002.sig>


More information about the Openembedded-devel mailing list