commit 54f615ebbd7d276a0c218616583033afe5d48d17
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Feb 28 16:04:18 2017 -0500
fix issue with gcc7 compile in v8 (thanks to Ben Noordhuis)
chromium-56.0.2924.87-gcc7.patch | 71 ++++++++++++++++++++++++++++++++++++++++
chromium.spec | 9 ++++-
2 files changed, 79 insertions(+), 1 deletion(-)
---
diff --git a/chromium-56.0.2924.87-gcc7.patch b/chromium-56.0.2924.87-gcc7.patch
new file mode 100644
index 0000000..033b069
--- /dev/null
+++ b/chromium-56.0.2924.87-gcc7.patch
@@ -0,0 +1,71 @@
+diff -up chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7
chromium-56.0.2924.87/v8/src/objects-body-descriptors.h
+--- chromium-56.0.2924.87/v8/src/objects-body-descriptors.h.gcc7 2017-02-28
16:00:27.313172210 -0500
++++ chromium-56.0.2924.87/v8/src/objects-body-descriptors.h 2017-02-28 16:00:46.016804708
-0500
+@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
+
+ template <typename StaticVisitor>
+ static inline void IterateBody(HeapObject* obj, int object_size) {
+- IterateBody(obj);
++ IterateBody<StaticVisitor>(obj);
+ }
+ };
+
+diff -up chromium-56.0.2924.87/v8/src/objects.h.gcc7
chromium-56.0.2924.87/v8/src/objects.h
+--- chromium-56.0.2924.87/v8/src/objects.h.gcc7 2017-02-28 15:58:27.368527968 -0500
++++ chromium-56.0.2924.87/v8/src/objects.h 2017-02-28 15:59:25.868379455 -0500
+@@ -3531,22 +3531,10 @@ class HashTable : public HashTableBase {
+ public:
+ typedef Shape ShapeT;
+
+- // Wrapper methods
+- inline uint32_t Hash(Key key) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHash(key, GetHeap()->HashSeed());
+- } else {
+- return Shape::Hash(key);
+- }
+- }
+-
+- inline uint32_t HashForObject(Key key, Object* object) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+- } else {
+- return Shape::HashForObject(key, object);
+- }
+- }
++ // Wrapper methods. Defined in src/objects-inl.h
++ // to break a cycle with src/heap/heap.h.
++ inline uint32_t Hash(Key key);
++ inline uint32_t HashForObject(Key key, Object* object);
+
+ // Returns a new HashTable object.
+ MUST_USE_RESULT static Handle<Derived> New(
+diff -up chromium-56.0.2924.87/v8/src/objects-inl.h.gcc7
chromium-56.0.2924.87/v8/src/objects-inl.h
+--- chromium-56.0.2924.87/v8/src/objects-inl.h.gcc7 2017-02-28 15:59:44.293016928 -0500
++++ chromium-56.0.2924.87/v8/src/objects-inl.h 2017-02-28 16:00:18.187351116 -0500
+@@ -39,6 +39,25 @@
+ namespace v8 {
+ namespace internal {
+
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHash(key, GetHeap()->HashSeed());
++ } else {
++ return Shape::Hash(key);
++ }
++}
++
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
++ Object* object) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++ } else {
++ return Shape::HashForObject(key, object);
++ }
++}
++
+ PropertyDetails::PropertyDetails(Smi* smi) {
+ value_ = smi->value();
+ }
diff --git a/chromium.spec b/chromium.spec
index 2246369..41b8ad8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -97,7 +97,7 @@ BuildRequires: libicu-devel >= 5.4
Name: chromium%{chromium_channel}
Version: %{majorversion}.0.2924.87
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: A WebKit (Blink) powered web browser
Url:
http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and
(MPLv1.1 or GPLv2 or LGPLv2)
@@ -158,6 +158,9 @@ Patch30: chromium-56.0.2924.87-gcc-49.patch
Patch31: chromium-56.0.2924.87-fpermissive.patch
# Fix issue with unique_ptr move on return with older gcc
Patch32: chromium-56.0.2924.87-unique-ptr-fix.patch
+# Fix issue with compilation on gcc7
+# Thanks to Ben Noordhuis
+Patch33: chromium-56.0.2924.87-gcc7.patch
### Chromium Tests Patches ###
@@ -538,6 +541,7 @@ members of the Chromium and WebDriver teams.
%patch30 -p1 -b .gcc49
%patch31 -p1 -b .permissive
%patch32 -p1 -b .unique-ptr-fix
+%patch33 -p1 -b .gcc7
### Chromium Tests Patches ###
%patch100 -p1 -b .use_system_opus
@@ -1573,6 +1577,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r
chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Tue Feb 28 2017 Tom Callaway <spot(a)fedoraproject.org> 56.0.2924.87-6
+- fix issue with gcc7 compile in v8 (thanks to Ben Noordhuis)
+
* Fri Feb 24 2017 Tom Callaway <spot(a)fedoraproject.org> 56.0.2924.87-5
- versioning sync build on rawhide