Add more fixes

This commit is contained in:
Tomas Popela 2019-08-13 15:39:15 +02:00
parent 38e8f689d5
commit 44822a9bb7
6 changed files with 302 additions and 5 deletions

View File

@ -0,0 +1,105 @@
From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 07 Jun 2019 09:50:11 +0000
Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
As LayerTreeHostImpl::UIResourceData move constructor is declared
noexcept with default implementation, the move constructor of its
members should also be noexcept. GCC will fail to build otherwise
for mismatching noexcept declaration.
We also set the move assignment operator.
Bug: 819294
Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#667064}
---
diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
index 2be2570..8426fa8 100644
--- a/base/memory/shared_memory_mapping.cc
+++ b/base/memory/shared_memory_mapping.cc
@@ -33,7 +33,7 @@
SharedMemoryMapping::SharedMemoryMapping() = default;
-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
: memory_(mapping.memory_),
size_(mapping.size_),
mapped_size_(mapping.mapped_size_),
@@ -42,7 +42,7 @@
}
SharedMemoryMapping& SharedMemoryMapping::operator=(
- SharedMemoryMapping&& mapping) {
+ SharedMemoryMapping&& mapping) noexcept {
Unmap();
memory_ = mapping.memory_;
size_ = mapping.size_;
@@ -90,9 +90,9 @@
ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- ReadOnlySharedMemoryMapping&&) = default;
+ ReadOnlySharedMemoryMapping&&) noexcept = default;
ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
- ReadOnlySharedMemoryMapping&&) = default;
+ ReadOnlySharedMemoryMapping&&) noexcept = default;
ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
void* address,
size_t size,
@@ -102,9 +102,9 @@
WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- WritableSharedMemoryMapping&&) = default;
+ WritableSharedMemoryMapping&&) noexcept = default;
WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
- WritableSharedMemoryMapping&&) = default;
+ WritableSharedMemoryMapping&&) noexcept = default;
WritableSharedMemoryMapping::WritableSharedMemoryMapping(
void* address,
size_t size,
diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
index d9569af..2b8858e 100644
--- a/base/memory/shared_memory_mapping.h
+++ b/base/memory/shared_memory_mapping.h
@@ -32,8 +32,8 @@
SharedMemoryMapping();
// Move operations are allowed.
- SharedMemoryMapping(SharedMemoryMapping&& mapping);
- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
// Unmaps the region if the mapping is valid.
virtual ~SharedMemoryMapping();
@@ -93,8 +93,9 @@
ReadOnlySharedMemoryMapping();
// Move operations are allowed.
- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
+ ReadOnlySharedMemoryMapping& operator=(
+ ReadOnlySharedMemoryMapping&&) noexcept;
// Returns the base address of the mapping. This is read-only memory. This is
// page-aligned. This is nullptr for invalid instances.
@@ -171,8 +172,9 @@
WritableSharedMemoryMapping();
// Move operations are allowed.
- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
+ WritableSharedMemoryMapping& operator=(
+ WritableSharedMemoryMapping&&) noexcept;
// Returns the base address of the mapping. This is writable memory. This is
// page-aligned. This is nullptr for invalid instances.

View File

@ -0,0 +1,63 @@
From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue, 11 Jun 2019 16:56:27 +0000
Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
GCC does not allow friendship declaration to anonymous namespace as done with Job
object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
makes RemoveJob method public, that was the only reason to make Job a friend.
Error was:
./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
delete_this = parent_->RemoveJob(this);
^
../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
std::unique_ptr<Job> RemoveJob(Job* job);
^~~~~~~~~
../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
^
../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
std::unique_ptr<Job> RemoveJob(Job* job);
^~~~~~~~~
Bug: 819294
Change-Id: I3609f4558e570741395366de6a4cd40577d91450
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
Commit-Queue: Eric Roman <eroman@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#668015}
---
diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
index 11a1166..349c656 100644
--- a/net/cert_net/cert_net_fetcher_impl.cc
+++ b/net/cert_net/cert_net_fetcher_impl.cc
@@ -135,21 +135,19 @@
void Fetch(std::unique_ptr<RequestParams> request_params,
scoped_refptr<RequestCore> request);
+ // Removes |job| from the in progress jobs and transfers ownership to the
+ // caller.
+ std::unique_ptr<Job> RemoveJob(Job* job);
+
// Cancels outstanding jobs, which stops network requests and signals the
// corresponding RequestCores that the requests have completed.
void Shutdown();
private:
- friend class Job;
-
// Finds a job with a matching RequestPararms or returns nullptr if there was
// no match.
Job* FindJob(const RequestParams& params);
- // Removes |job| from the in progress jobs and transfers ownership to the
- // caller.
- std::unique_ptr<Job> RemoveJob(Job* job);
-
// The in-progress jobs. This set does not contain the job which is actively
// invoking callbacks (OnJobCompleted).
JobSet jobs_;

View File

@ -0,0 +1,115 @@
From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue, 11 Jun 2019 17:39:38 +0000
Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
The notation for initialization of structs referring to its properties
is invalid in C++. This is not accepted in GCC. It was making build
fail in VulkanCommandBuffer.
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
.subresourceRange.baseMipLevel = 0,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
.subresourceRange.levelCount = 1,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
.subresourceRange.baseArrayLayer = 0,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
.subresourceRange.layerCount = 1,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
.imageSubresource.mipLevel = 0,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
.imageSubresource.baseArrayLayer = 0,
^
./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
.imageSubresource.layerCount = 1,
^
Bug: 819294
Change-Id: I999abece0c727e77964789183642ba62009c2c22
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#668033}
---
diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
index ba776e4..4f14c85 100644
--- a/gpu/vulkan/vulkan_command_buffer.cc
+++ b/gpu/vulkan/vulkan_command_buffer.cc
@@ -207,21 +207,20 @@
void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
VkImageLayout old_layout,
VkImageLayout new_layout) {
- VkImageMemoryBarrier barrier = {
- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
- .srcAccessMask = GetAccessMask(old_layout),
- .dstAccessMask = GetAccessMask(new_layout),
- .oldLayout = old_layout,
- .newLayout = new_layout,
- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
- .image = image,
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- .subresourceRange.baseMipLevel = 0,
- .subresourceRange.levelCount = 1,
- .subresourceRange.baseArrayLayer = 0,
- .subresourceRange.layerCount = 1,
- };
+ VkImageMemoryBarrier barrier = {};
+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
+ barrier.srcAccessMask = GetAccessMask(old_layout);
+ barrier.dstAccessMask = GetAccessMask(new_layout);
+ barrier.oldLayout = old_layout;
+ barrier.newLayout = new_layout;
+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
+ barrier.image = image;
+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+ barrier.subresourceRange.baseMipLevel = 0;
+ barrier.subresourceRange.levelCount = 1;
+ barrier.subresourceRange.baseArrayLayer = 0;
+ barrier.subresourceRange.layerCount = 1;
vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
nullptr, 1, &barrier);
@@ -233,17 +232,16 @@
uint32_t buffer_height,
uint32_t width,
uint32_t height) {
- VkBufferImageCopy region = {
- .bufferOffset = 0,
- .bufferRowLength = buffer_width,
- .bufferImageHeight = buffer_height,
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- .imageSubresource.mipLevel = 0,
- .imageSubresource.baseArrayLayer = 0,
- .imageSubresource.layerCount = 1,
- .imageOffset = {0, 0, 0},
- .imageExtent = {width, height, 1},
- };
+ VkBufferImageCopy region = {};
+ region.bufferOffset = 0;
+ region.bufferRowLength = buffer_width;
+ region.bufferImageHeight = buffer_height;
+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+ region.imageSubresource.mipLevel = 0;
+ region.imageSubresource.baseArrayLayer = 0;
+ region.imageSubresource.layerCount = 1;
+ region.imageOffset = {0, 0, 0};
+ region.imageExtent = {width, height, 1};
vkCmdCopyBufferToImage(command_buffer_, buffer, image,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &region);
}

View File

@ -261,6 +261,13 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550537d6ac3f%5E%21/#F1
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
# Fix Vulkan compilation with gcc
# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3
Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c8236c8649b031fe9915eb5b
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@ -818,6 +825,9 @@ udev.
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
# EPEL specific patches
%if 0%{?rhel} == 7
@ -1064,6 +1074,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Remove most of the bundled libraries. Libraries specified below (taken from
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
'base/third_party/cityhash' \
'base/third_party/dmg_fp' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
@ -1104,6 +1115,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
@ -1229,6 +1242,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sinonjs' \
'third_party/skia' \
'third_party/skia/include/third_party/vulkan' \
'third_party/skia/include/third_party/skcms' \
'third_party/skia/third_party/gif' \
'third_party/skia/third_party/skcms' \
'third_party/skia/third_party/vulkan' \

View File

@ -41,9 +41,9 @@ def parse_sources(input_sources, output_sources, arch_not_arm):
append_sources (block[1], output_sources)
def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
with open(gyni_path, "r") as input_file:
with open(gni_path, "r") as input_file:
content = input_file.read().replace('\n', '')
output_sources = []
@ -62,7 +62,7 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"']
if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations):
if (arch_not_arm):
if ('x64' in condition) or ('x86' in condition):
if ('x64' in condition) or ('x86' in condition) or ('use_linux_config' in condition):
parse_sources (block[1], output_sources, arch_not_arm)
inserted = True
else:
@ -79,4 +79,4 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
if __name__ == "__main__":
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True)
parse_ffmpeg_gni_file (path, False if sys.argv[2] == "0" else True)

View File

@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5