fix issue with gcc7 compile in v8 (thanks to Ben Noordhuis)

This commit is contained in:
Tom Callaway 2017-02-28 16:04:18 -05:00
parent 26fbfad209
commit 54f615ebbd
2 changed files with 79 additions and 1 deletions

View File

@ -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();
}

View File

@ -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@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@fedoraproject.org> 56.0.2924.87-5
- versioning sync build on rawhide