diff --git a/chromium-56.0.2924.87-gcc7.patch b/chromium-56.0.2924.87-gcc7.patch new file mode 100644 index 00000000..033b0696 --- /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 + static inline void IterateBody(HeapObject* obj, int object_size) { +- IterateBody(obj); ++ IterateBody(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 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 ++uint32_t HashTable::Hash(Key key) { ++ if (Shape::UsesSeed) { ++ return Shape::SeededHash(key, GetHeap()->HashSeed()); ++ } else { ++ return Shape::Hash(key); ++ } ++} ++ ++template ++uint32_t HashTable::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 2246369e..41b8ad8d 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 56.0.2924.87-6 +- fix issue with gcc7 compile in v8 (thanks to Ben Noordhuis) + * Fri Feb 24 2017 Tom Callaway 56.0.2924.87-5 - versioning sync build on rawhide