Hi Zoltan, Khem 2015-11-05 7:31 GMT+01:00 Zoltan Kuscsik <[email protected]>: > 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. > > Z > > On 5 November 2015 at 02:10, Khem Raj <[email protected]> wrote: > >> >> > On Nov 4, 2015, at 1:50 PM, Max Krummenacher <[email protected]> >> 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 <[email protected]> >> > --- >> > .../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 <[email protected]> >> > +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 <[email protected]> >> > +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 <[email protected]> >> > +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 <[email protected]> >> > +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 >> > [email protected] >> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel >> >> >> -- >> _______________________________________________ >> Openembedded-devel mailing list >> [email protected] >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >> >> > > > -- > Zoltan Kuscsik > > Senior Software Developer, Linaro Digital Home Group > email: [email protected] > IRC: zoli_ on irc.linaro.org > -- > _______________________________________________ > Openembedded-devel mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-devel Regards Max -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
