From c9553a5d2b5fd113dd5c165f2bd47618908528a9 Mon Sep 17 00:00:00 2001 From: Andrej Valek Date: Fri, 17 Apr 2020 10:01:04 +0200 Subject: icu: use system library only targets - use bundled one for native/v8 internal builds Complete system ICU library using requires ICU dev package be installed on host. Enabling dependency on native package is not enough due to V8 hosttools toolchain. V8 toolchain is not using native sysroot, only a host packages. On the other hand webenegine does not produce external native artifacts. So external system ICU linking is not needed. Signed-off-by: Andrej Valek --- .../0005-icu-use-system-library-only-targets.patch | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100755 recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch (limited to 'recipes-qt/qt5/qtwebengine') diff --git a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch new file mode 100755 index 00000000..8ca1dace --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch @@ -0,0 +1,90 @@ +From fe811323fbe787264b15b83d027947926477f0c2 Mon Sep 17 00:00:00 2001 +From: Andrej Valek +Date: Fri, 17 Apr 2020 09:43:32 +0200 +Subject: [PATCH] icu: use system library only targets + + - use bundled one for native/v8 internal builds + +Complete system ICU library using requires ICU dev package +be installed on host. Enabling dependency on native package +is not enough due to V8 hosttools toolchain. V8 toolchain +is not using native sysroot, only a host packages. +On the other hand webenegine does not produce external +native artifacts. So external system ICU linking is not +needed. + +Signed-off-by: Andrej Valek +--- + src/3rdparty/chromium/third_party/icu/BUILD.gn | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/3rdparty/chromium/third_party/icu/BUILD.gn b/src/3rdparty/chromium/third_party/icu/BUILD.gn +index 97073f09787..5d293ca628d 100644 +--- a/src/3rdparty/chromium/third_party/icu/BUILD.gn ++++ b/src/3rdparty/chromium/third_party/icu/BUILD.gn +@@ -7,9 +7,13 @@ import("//build/config/host_byteorder.gni") + import("//build/config/linux/pkg_config.gni") + import("//build/shim_headers.gni") + import("//third_party/icu/config.gni") ++import("//v8/snapshot_toolchain.gni") + + declare_args() { + use_system_icu = false ++ ++ # Use only target icu library, when system using is enabled ++ use_system_icu_target_only = false + } + + if (is_android) { +@@ -20,6 +24,12 @@ if (is_mac) { + import("//build/config/sanitizers/sanitizers.gni") + } + ++if (use_system_icu) { ++ # Use system library only for target, otherwise use bundled ++ if ((current_toolchain != host_toolchain) && (current_toolchain != v8_snapshot_toolchain)) { ++ use_system_icu_target_only = true ++ } ++} + # Meta target that includes both icuuc and icui18n. Most targets want both. + # You can depend on the individually if you need to. + group("icu") { +@@ -1137,7 +1147,7 @@ config("system_icu_config") { + ] + } + +-if (use_system_icu) { ++if (use_system_icu_target_only) { + pkg_config("system_icui18n") { + packages = [ "icu-i18n" ] + } +@@ -1346,7 +1356,7 @@ shim_headers("icuuc_shim") { + } + + config("icu_config") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + configs = [ ":system_icu_config"] + } else { + configs = [ ":bundled_icu_config"] +@@ -1354,7 +1364,7 @@ config("icu_config") { + } + + group("icuuc") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icuuc_shim" ] + public_configs = [ + ":system_icu_config", +@@ -1366,7 +1376,7 @@ group("icuuc") { + } + + group("icui18n") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icui18n_shim" ] + public_configs = [ + ":system_icu_config", +-- +2.20.1 + -- cgit v1.2.3-54-g00ecf From 5352180eda5c0eb1a010974b79b9f045959f4c9b Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Wed, 26 Aug 2020 16:15:42 +0200 Subject: qtwebengine: fix build with bison-3.7 Signed-off-by: Martin Jansa --- .../chromium/0013-chromium-Fix-bison-3.7.patch | 52 ++++++++++++++++++++++ recipes-qt/qt5/qtwebengine_git.bb | 1 + 2 files changed, 53 insertions(+) create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0013-chromium-Fix-bison-3.7.patch (limited to 'recipes-qt/qt5/qtwebengine') diff --git a/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-Fix-bison-3.7.patch b/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-Fix-bison-3.7.patch new file mode 100644 index 00000000..3272b727 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-Fix-bison-3.7.patch @@ -0,0 +1,52 @@ +From 3ccc10f378ca26c35104e39e08771c053ae5b19e Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Fri, 14 Aug 2020 16:38:48 +0200 +Subject: [PATCH] chromium: Fix bison 3.7 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Do a replace run inspired by newer versions of the script. + +Fixes: QTBUG-86018 +Change-Id: Ib1dc771e22a662aff0fae842d135ad58fad08bc1 +Reviewed-by: Michael Brüning +Signed-off-by: Martin Jansa +--- + .../renderer/build/scripts/rule_bison.py | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/chromium/third_party/blink/renderer/build/scripts/rule_bison.py b/chromium/third_party/blink/renderer/build/scripts/rule_bison.py +index f75e25fd23f..7e0767e951a 100755 +--- a/chromium/third_party/blink/renderer/build/scripts/rule_bison.py ++++ b/chromium/third_party/blink/renderer/build/scripts/rule_bison.py +@@ -45,6 +45,19 @@ from utilities import abs + + from blinkbuild.name_style_converter import NameStyleConverter + ++def modify_file(path, prefix_lines, suffix_lines, replace_list=[]): ++ prefix_lines = map(lambda s: s + '\n', prefix_lines) ++ suffix_lines = map(lambda s: s + '\n', suffix_lines) ++ with open(path, 'r') as f: ++ old_lines = f.readlines() ++ for i in range(len(old_lines)): ++ for src, dest in replace_list: ++ old_lines[i] = old_lines[i].replace(src, dest) ++ new_lines = prefix_lines + old_lines + suffix_lines ++ with open(path, 'w') as f: ++ f.writelines(new_lines) ++ ++ + assert len(sys.argv) == 4 or len(sys.argv) == 5 + + inputFile = abs(sys.argv[1]) +@@ -115,3 +128,9 @@ print >>outputHFile, '#define %s' % headerGuard + print >>outputHFile, outputHContents + print >>outputHFile, '#endif // %s' % headerGuard + outputHFile.close() ++ ++common_replace_list = [(inputRoot + '.hh', ++ inputRoot + '.h')] ++modify_file( ++ outputCpp, [], [], ++ replace_list=common_replace_list) diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb index 9b7aa514..9281aeb7 100644 --- a/recipes-qt/qt5/qtwebengine_git.bb +++ b/recipes-qt/qt5/qtwebengine_git.bb @@ -172,6 +172,7 @@ SRC_URI += " \ file://chromium/0010-chromium-Move-CharAllocator-definition-to-a-header-f.patch;patchdir=src/3rdparty \ file://chromium/0011-chromium-Include-cstddef-and-cstdint.patch;patchdir=src/3rdparty \ file://chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch;patchdir=src/3rdparty \ + file://chromium/0013-chromium-Fix-bison-3.7.patch;patchdir=src/3rdparty \ " SRC_URI_append_libc-musl = "\ -- cgit v1.2.3-54-g00ecf From 8c980e70375194822ac7e3c5f8f59d06d4e88c49 Mon Sep 17 00:00:00 2001 From: Andreas Müller Date: Sun, 6 Sep 2020 20:53:22 +0200 Subject: qtwebengine: Fix build by setting correct import path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixes: | ERROR at //third_party/icu/BUILD.gn:10:1: Unable to load "<...>/qtwebengine/5.15.0+gitAUTOINC+f526855509_7b2f027ea8-r0/git/src/3rdparty/chromium/v8/snapshot_toolchain.gni". | import("//v8/snapshot_toolchain.gni") | ^----------------------------------- | See //url/BUILD.gn:97:15: which caused the file to be included. | deps += [ "//third_party/icu" ] | ^------------------ | Project ERROR: GN run error! * Discussion found at [1] * Build tested with/without icu in PACKAGECONFIG [1] https://github.com/meta-qt5/meta-qt5/pull/351 Signed-off-by: Andreas Müller --- .../qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'recipes-qt/qt5/qtwebengine') diff --git a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch index 8ca1dace..08ce22dd 100755 --- a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch +++ b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch @@ -26,7 +26,7 @@ index 97073f09787..5d293ca628d 100644 import("//build/config/linux/pkg_config.gni") import("//build/shim_headers.gni") import("//third_party/icu/config.gni") -+import("//v8/snapshot_toolchain.gni") ++import("//v8/gni/snapshot_toolchain.gni") declare_args() { use_system_icu = false -- cgit v1.2.3-54-g00ecf From 761949d22ca5b280447a9e6796a2dd070c8479d8 Mon Sep 17 00:00:00 2001 From: Andreas Müller Date: Sun, 6 Sep 2020 21:22:23 +0200 Subject: qtwebengine: Fix patch fuzz MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: | ERROR: qtwebengine-5.15.0+gitAUTOINC+f526855509_7b2f027ea8-r0 do_patch: Fuzz detected: | | Applying patch 0005-icu-use-system-library-only-targets.patch | patching file src/3rdparty/chromium/third_party/icu/BUILD.gn | Hunk #3 succeeded at 1217 with fuzz 1 (offset 70 lines). | Hunk #4 succeeded at 1430 (offset 74 lines). | Hunk #5 succeeded at 1438 (offset 74 lines). | Hunk #6 succeeded at 1450 (offset 74 lines). Signed-off-by: Andreas Müller --- .../qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'recipes-qt/qt5/qtwebengine') diff --git a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch index 08ce22dd..066ee516 100755 --- a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch +++ b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch @@ -50,7 +50,7 @@ index 97073f09787..5d293ca628d 100644 # You can depend on the individually if you need to. group("icu") { @@ -1137,7 +1147,7 @@ config("system_icu_config") { - ] + } } -if (use_system_icu) { -- cgit v1.2.3-54-g00ecf From afcde8567252191820ed07abcc241f3794b75988 Mon Sep 17 00:00:00 2001 From: Andreas Müller Date: Mon, 7 Sep 2020 00:06:32 +0200 Subject: qtwebengine: Fix sandbox freeze for glibc >= 2.31 on 32 bit systems MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * patch was taken from meta-browser. The only modification done was adding the error seen Signed-off-by: Andreas Müller Signed-off-by: Martin Jansa --- ...-sandbox-Aw-snap-for-syscalls-403-and-407.patch | 141 +++++++++++++++++++++ recipes-qt/qt5/qtwebengine_git.bb | 1 + 2 files changed, 142 insertions(+) create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch (limited to 'recipes-qt/qt5/qtwebengine') diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch new file mode 100644 index 00000000..1f4cb36c --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch @@ -0,0 +1,141 @@ +From 18d864774916865ec44ccd011a4caf730943f0e9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 20 Apr 2020 23:56:48 +0200 +Subject: [PATCH] Fix sandbox 'Aw, snap' for syscalls 403 and 407 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken as is from meta-browser. Saw my application freeze for syscall 0407 +trouble: + +| ../../../../git/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 + +Original commit message: + +* syscall 403: reported by ArchLinux users [1-2] +* syscall 407: reported by me [3] + +Looking at [4-5] it seems that glibc (>=2.31?) introduced extra syscalls for +32Bit systems to handle time64: + +* __NR_clock_gettime -> __NR_clock_gettime64 +* __NR_clock_nanosleep -> __NR_clock_nanosleep_time64 + +To fix +| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0403 +| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 + +we handle new systemcalls in the same way as 64bit systems do and 32bit systems +did before glibc 2.31. + +[1] https://bugs.archlinux32.org/index.php?do=details&task_id=105 +[2] https://bbs.archlinux32.org/viewtopic.php?id=2897 +[3] https://github.com/OSSystems/meta-browser/issues/357 +[4] https://sourceware.org/git/?p=glibc.git;a=commit;h=2e44b10b42d68d9887ccab17b76db5d7bbae4fb6 +[5] https://github.com/bminor/glibc/blob/019d828669df966dc4ef2684fce0b1c17bef9aae/sysdeps/unix/sysv/linux/clock_gettime.c#L30 + +Upstream Status: Pending [Have no idea where to send this] + +Signed-off-by: Andreas Müller +--- + sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc | 9 ++++++++- + .../syscall_parameters_restrictions_unittests.cc | 6 ++++++ + sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc | 6 ++++++ + sandbox/linux/system_headers/arm_linux_syscalls.h | 8 ++++++++ + sandbox/linux/system_headers/mips_linux_syscalls.h | 8 ++++++++ + 5 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +index 768025ce1..87025d917 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +@@ -148,7 +148,14 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, + return Allow(); + #endif + +- if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) { ++ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep ++#if defined(__NR_clock_gettime64) ++ || sysno == __NR_clock_gettime64 ++#endif ++#if defined(__NR_clock_nanosleep_time64) ++ || sysno == __NR_clock_nanosleep_time64 ++#endif ++ ) { + return RestrictClockID(); + } + +diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +index b6c8c6377..245bc7131 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +@@ -60,6 +60,12 @@ class RestrictClockIdPolicy : public bpf_dsl::Policy { + case __NR_clock_gettime: + case __NR_clock_getres: + case __NR_clock_nanosleep: ++#if defined(__NR_clock_nanosleep_time64) ++ case __NR_clock_nanosleep_time64: ++#endif ++#if defined(__NR_clock_gettime64) ++ case __NR_clock_gettime64: ++#endif + return RestrictClockID(); + default: + return Allow(); +diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +index d9d18822f..8bc262235 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +@@ -39,6 +39,12 @@ bool SyscallSets::IsAllowedGettime(int sysno) { + // filtered by RestrictClokID(). + case __NR_clock_gettime: // Parameters filtered by RestrictClockID(). + case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID(). ++#if defined(__NR_clock_gettime64) ++ case __NR_clock_gettime64: // Parameters filtered by RestrictClockID(). ++#endif ++#if defined(__NR_clock_nanosleep_time64) ++ case __NR_clock_nanosleep_time64: // Parameters filtered by RestrictClockID(). ++#endif + case __NR_clock_settime: // Privileged. + #if defined(__i386__) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) +diff --git a/sandbox/linux/system_headers/arm_linux_syscalls.h b/sandbox/linux/system_headers/arm_linux_syscalls.h +index 1addd5384..5de2162f9 100644 +--- a/sandbox/linux/system_headers/arm_linux_syscalls.h ++++ b/sandbox/linux/system_headers/arm_linux_syscalls.h +@@ -1385,6 +1385,14 @@ + #define __NR_memfd_create (__NR_SYSCALL_BASE+385) + #endif + ++#if !defined(__NR_clock_gettime64) ++#define __NR_clock_gettime64 (__NR_SYSCALL_BASE+403) ++#endif ++ ++#if !defined(__NR_clock_nanosleep_time64) ++#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE+407) ++#endif ++ + // ARM private syscalls. + #if !defined(__ARM_NR_BASE) + #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) +diff --git a/sandbox/linux/system_headers/mips_linux_syscalls.h b/sandbox/linux/system_headers/mips_linux_syscalls.h +index ddbf97f3d..fa01b3bbc 100644 +--- a/sandbox/linux/system_headers/mips_linux_syscalls.h ++++ b/sandbox/linux/system_headers/mips_linux_syscalls.h +@@ -1433,4 +1433,12 @@ + #define __NR_memfd_create (__NR_Linux + 354) + #endif + ++#if !defined(__NR_clock_gettime64) ++#define __NR_clock_gettime64 (__NR_Linux + 403) ++#endif ++ ++#if !defined(__NR_clock_nanosleep_time64) ++#define __NR_clock_nanosleep_time64 (__NR_Linux + 407) ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_ +-- +2.21.1 + diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb index 9281aeb7..d333ac08 100644 --- a/recipes-qt/qt5/qtwebengine_git.bb +++ b/recipes-qt/qt5/qtwebengine_git.bb @@ -173,6 +173,7 @@ SRC_URI += " \ file://chromium/0011-chromium-Include-cstddef-and-cstdint.patch;patchdir=src/3rdparty \ file://chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch;patchdir=src/3rdparty \ file://chromium/0013-chromium-Fix-bison-3.7.patch;patchdir=src/3rdparty \ + file://chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch;patchdir=src/3rdparty/chromium \ " SRC_URI_append_libc-musl = "\ -- cgit v1.2.3-54-g00ecf From faa5163a269b429c1d6bfd4387ced0aaff4eba69 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Tue, 8 Sep 2020 09:41:36 +0200 Subject: qtwebengine: refresh the patches * update to match https://github.com/meta-qt5/qtwebengine/commits/b5.15-glibc 5.15-glibc.meta-qt5.8 https://github.com/meta-qt5/qtwebengine/commits/b5.15 5.15-glibc.meta-qt5.8 https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based-glibc 80-based-glibc.meta-qt5.4 https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based 80-based.meta-qt5.4 * 0002-icu-use-system-library-only-targets.patch is only for chromium, so it was updated and moved to right place in SRC_URI * 0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch prefix was moved to src/3rdparty not src/3rdparty/chromium so that it can apply with "git am" together with other chromium patches Signed-off-by: Martin Jansa --- .../0005-icu-use-system-library-only-targets.patch | 90 ------------- ...sl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch | 33 ----- ...-sandbox-Aw-snap-for-syscalls-403-and-407.patch | 141 --------------------- ...omium-icu-use-system-library-only-targets.patch | 88 +++++++++++++ ...sl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch | 52 -------- ...x-sandbox-Aw-snap-for-syscalls-403-and-40.patch | 139 ++++++++++++++++++++ ...-chromium-musl-include-fcntl.h-for-loff_t.patch | 22 ---- ...sl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch | 33 +++++ ...sl-use-off64_t-instead-of-the-internal-__.patch | 62 --------- ...sl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch | 52 ++++++++ ...ium-musl-linux-glibc-make-the-distinction.patch | 23 ---- ...sl-allocator-Do-not-include-glibc_weak_sy.patch | 24 ---- ...-chromium-musl-include-fcntl.h-for-loff_t.patch | 22 ++++ ...sl-Use-correct-member-name-__si_fields-fr.patch | 24 ---- ...sl-use-off64_t-instead-of-the-internal-__.patch | 62 +++++++++ ...sl-Define-res_ninit-and-res_nclose-for-no.patch | 79 ------------ ...ium-musl-linux-glibc-make-the-distinction.patch | 23 ++++ ...hromium-musl-Do-not-define-__sbrk-on-musl.patch | 26 ---- ...sl-allocator-Do-not-include-glibc_weak_sy.patch | 24 ++++ ...um-musl-Adjust-default-pthread-stack-size.patch | 47 ------- ...sl-Use-correct-member-name-__si_fields-fr.patch | 24 ++++ ...sl-Define-res_ninit-and-res_nclose-for-no.patch | 79 ++++++++++++ ...sl-Use-_fpstate-instead-of-_libc_fpstate-.patch | 63 --------- ...hromium-musl-Do-not-define-__sbrk-on-musl.patch | 26 ++++ ...sl-elf_reader.cc-include-sys-reg.h-to-get.patch | 56 -------- ...um-musl-Adjust-default-pthread-stack-size.patch | 47 +++++++ .../chromium/0025-chromium-musl-pread-pwrite.patch | 31 ----- ...sl-Use-_fpstate-instead-of-_libc_fpstate-.patch | 63 +++++++++ ...sl-initialize-msghdr-in-a-compatible-mann.patch | 45 ------- ...sl-elf_reader.cc-include-sys-reg.h-to-get.patch | 56 ++++++++ .../chromium/0028-chromium-musl-pread-pwrite.patch | 31 +++++ ...sl-initialize-msghdr-in-a-compatible-mann.patch | 45 +++++++ recipes-qt/qt5/qtwebengine_git.bb | 44 ++++--- 33 files changed, 838 insertions(+), 838 deletions(-) delete mode 100755 recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Use-correct-member-name-__si_fields-fr.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Use-correct-member-name-__si_fields-fr.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-pread-pwrite.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch delete mode 100644 recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0028-chromium-musl-pread-pwrite.patch create mode 100644 recipes-qt/qt5/qtwebengine/chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch (limited to 'recipes-qt/qt5/qtwebengine') diff --git a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch deleted file mode 100755 index 066ee516..00000000 --- a/recipes-qt/qt5/qtwebengine/0005-icu-use-system-library-only-targets.patch +++ /dev/null @@ -1,90 +0,0 @@ -From fe811323fbe787264b15b83d027947926477f0c2 Mon Sep 17 00:00:00 2001 -From: Andrej Valek -Date: Fri, 17 Apr 2020 09:43:32 +0200 -Subject: [PATCH] icu: use system library only targets - - - use bundled one for native/v8 internal builds - -Complete system ICU library using requires ICU dev package -be installed on host. Enabling dependency on native package -is not enough due to V8 hosttools toolchain. V8 toolchain -is not using native sysroot, only a host packages. -On the other hand webenegine does not produce external -native artifacts. So external system ICU linking is not -needed. - -Signed-off-by: Andrej Valek ---- - src/3rdparty/chromium/third_party/icu/BUILD.gn | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -diff --git a/src/3rdparty/chromium/third_party/icu/BUILD.gn b/src/3rdparty/chromium/third_party/icu/BUILD.gn -index 97073f09787..5d293ca628d 100644 ---- a/src/3rdparty/chromium/third_party/icu/BUILD.gn -+++ b/src/3rdparty/chromium/third_party/icu/BUILD.gn -@@ -7,9 +7,13 @@ import("//build/config/host_byteorder.gni") - import("//build/config/linux/pkg_config.gni") - import("//build/shim_headers.gni") - import("//third_party/icu/config.gni") -+import("//v8/gni/snapshot_toolchain.gni") - - declare_args() { - use_system_icu = false -+ -+ # Use only target icu library, when system using is enabled -+ use_system_icu_target_only = false - } - - if (is_android) { -@@ -20,6 +24,12 @@ if (is_mac) { - import("//build/config/sanitizers/sanitizers.gni") - } - -+if (use_system_icu) { -+ # Use system library only for target, otherwise use bundled -+ if ((current_toolchain != host_toolchain) && (current_toolchain != v8_snapshot_toolchain)) { -+ use_system_icu_target_only = true -+ } -+} - # Meta target that includes both icuuc and icui18n. Most targets want both. - # You can depend on the individually if you need to. - group("icu") { -@@ -1137,7 +1147,7 @@ config("system_icu_config") { - } - } - --if (use_system_icu) { -+if (use_system_icu_target_only) { - pkg_config("system_icui18n") { - packages = [ "icu-i18n" ] - } -@@ -1346,7 +1356,7 @@ shim_headers("icuuc_shim") { - } - - config("icu_config") { -- if (use_system_icu) { -+ if (use_system_icu_target_only) { - configs = [ ":system_icu_config"] - } else { - configs = [ ":bundled_icu_config"] -@@ -1354,7 +1364,7 @@ config("icu_config") { - } - - group("icuuc") { -- if (use_system_icu) { -+ if (use_system_icu_target_only) { - deps = [ ":icuuc_shim" ] - public_configs = [ - ":system_icu_config", -@@ -1366,7 +1376,7 @@ group("icuuc") { - } - - group("icui18n") { -- if (use_system_icu) { -+ if (use_system_icu_target_only) { - deps = [ ":icui18n_shim" ] - public_configs = [ - ":system_icu_config", --- -2.20.1 - diff --git a/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch b/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch deleted file mode 100644 index f654424e..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 69570c2f3c88c31cca71f87996ed4ab7ab2bc66c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 14:01:12 -0700 -Subject: [PATCH] chromium: musl: sandbox: Define TEMP_FAILURE_RETRY if not - defined - -Musl does not define this Macro - -Signed-off-by: Khem Raj ---- - chromium/sandbox/linux/suid/sandbox.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/chromium/sandbox/linux/suid/sandbox.c b/chromium/sandbox/linux/suid/sandbox.c -index 854819bfbb4..a99d32741d0 100644 ---- a/chromium/sandbox/linux/suid/sandbox.c -+++ b/chromium/sandbox/linux/suid/sandbox.c -@@ -46,6 +46,15 @@ static bool DropRoot(); - - #define HANDLE_EINTR(x) TEMP_FAILURE_RETRY(x) - -+#ifndef TEMP_FAILURE_RETRY -+# define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ - static void FatalError(const char* msg, ...) - __attribute__((noreturn, format(printf, 1, 2))); - diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch deleted file mode 100644 index 1f4cb36c..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 18d864774916865ec44ccd011a4caf730943f0e9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= -Date: Mon, 20 Apr 2020 23:56:48 +0200 -Subject: [PATCH] Fix sandbox 'Aw, snap' for syscalls 403 and 407 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Taken as is from meta-browser. Saw my application freeze for syscall 0407 -trouble: - -| ../../../../git/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 - -Original commit message: - -* syscall 403: reported by ArchLinux users [1-2] -* syscall 407: reported by me [3] - -Looking at [4-5] it seems that glibc (>=2.31?) introduced extra syscalls for -32Bit systems to handle time64: - -* __NR_clock_gettime -> __NR_clock_gettime64 -* __NR_clock_nanosleep -> __NR_clock_nanosleep_time64 - -To fix -| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0403 -| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 - -we handle new systemcalls in the same way as 64bit systems do and 32bit systems -did before glibc 2.31. - -[1] https://bugs.archlinux32.org/index.php?do=details&task_id=105 -[2] https://bbs.archlinux32.org/viewtopic.php?id=2897 -[3] https://github.com/OSSystems/meta-browser/issues/357 -[4] https://sourceware.org/git/?p=glibc.git;a=commit;h=2e44b10b42d68d9887ccab17b76db5d7bbae4fb6 -[5] https://github.com/bminor/glibc/blob/019d828669df966dc4ef2684fce0b1c17bef9aae/sysdeps/unix/sysv/linux/clock_gettime.c#L30 - -Upstream Status: Pending [Have no idea where to send this] - -Signed-off-by: Andreas Müller ---- - sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc | 9 ++++++++- - .../syscall_parameters_restrictions_unittests.cc | 6 ++++++ - sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc | 6 ++++++ - sandbox/linux/system_headers/arm_linux_syscalls.h | 8 ++++++++ - sandbox/linux/system_headers/mips_linux_syscalls.h | 8 ++++++++ - 5 files changed, 36 insertions(+), 1 deletion(-) - -diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -index 768025ce1..87025d917 100644 ---- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -+++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -@@ -148,7 +148,14 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, - return Allow(); - #endif - -- if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) { -+ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep -+#if defined(__NR_clock_gettime64) -+ || sysno == __NR_clock_gettime64 -+#endif -+#if defined(__NR_clock_nanosleep_time64) -+ || sysno == __NR_clock_nanosleep_time64 -+#endif -+ ) { - return RestrictClockID(); - } - -diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc -index b6c8c6377..245bc7131 100644 ---- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc -+++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc -@@ -60,6 +60,12 @@ class RestrictClockIdPolicy : public bpf_dsl::Policy { - case __NR_clock_gettime: - case __NR_clock_getres: - case __NR_clock_nanosleep: -+#if defined(__NR_clock_nanosleep_time64) -+ case __NR_clock_nanosleep_time64: -+#endif -+#if defined(__NR_clock_gettime64) -+ case __NR_clock_gettime64: -+#endif - return RestrictClockID(); - default: - return Allow(); -diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc -index d9d18822f..8bc262235 100644 ---- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc -+++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc -@@ -39,6 +39,12 @@ bool SyscallSets::IsAllowedGettime(int sysno) { - // filtered by RestrictClokID(). - case __NR_clock_gettime: // Parameters filtered by RestrictClockID(). - case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID(). -+#if defined(__NR_clock_gettime64) -+ case __NR_clock_gettime64: // Parameters filtered by RestrictClockID(). -+#endif -+#if defined(__NR_clock_nanosleep_time64) -+ case __NR_clock_nanosleep_time64: // Parameters filtered by RestrictClockID(). -+#endif - case __NR_clock_settime: // Privileged. - #if defined(__i386__) || \ - (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) -diff --git a/sandbox/linux/system_headers/arm_linux_syscalls.h b/sandbox/linux/system_headers/arm_linux_syscalls.h -index 1addd5384..5de2162f9 100644 ---- a/sandbox/linux/system_headers/arm_linux_syscalls.h -+++ b/sandbox/linux/system_headers/arm_linux_syscalls.h -@@ -1385,6 +1385,14 @@ - #define __NR_memfd_create (__NR_SYSCALL_BASE+385) - #endif - -+#if !defined(__NR_clock_gettime64) -+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE+403) -+#endif -+ -+#if !defined(__NR_clock_nanosleep_time64) -+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE+407) -+#endif -+ - // ARM private syscalls. - #if !defined(__ARM_NR_BASE) - #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) -diff --git a/sandbox/linux/system_headers/mips_linux_syscalls.h b/sandbox/linux/system_headers/mips_linux_syscalls.h -index ddbf97f3d..fa01b3bbc 100644 ---- a/sandbox/linux/system_headers/mips_linux_syscalls.h -+++ b/sandbox/linux/system_headers/mips_linux_syscalls.h -@@ -1433,4 +1433,12 @@ - #define __NR_memfd_create (__NR_Linux + 354) - #endif - -+#if !defined(__NR_clock_gettime64) -+#define __NR_clock_gettime64 (__NR_Linux + 403) -+#endif -+ -+#if !defined(__NR_clock_nanosleep_time64) -+#define __NR_clock_nanosleep_time64 (__NR_Linux + 407) -+#endif -+ - #endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_ --- -2.21.1 - diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch new file mode 100644 index 00000000..52607983 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-icu-use-system-library-only-targets.patch @@ -0,0 +1,88 @@ +From 8c9a4027426b0a2c56cc834da0dbad5b8378c2c6 Mon Sep 17 00:00:00 2001 +From: Andrej Valek +Date: Fri, 17 Apr 2020 09:43:32 +0200 +Subject: [PATCH] chromium: icu: use system library only targets + + - use bundled one for native/v8 internal builds + +Complete system ICU library using requires ICU dev package +be installed on host. Enabling dependency on native package +is not enough due to V8 hosttools toolchain. V8 toolchain +is not using native sysroot, only a host packages. +On the other hand webenegine does not produce external +native artifacts. So external system ICU linking is not +needed. + +Signed-off-by: Andrej Valek +Signed-off-by: Martin Jansa +--- + chromium/third_party/icu/BUILD.gn | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/chromium/third_party/icu/BUILD.gn b/chromium/third_party/icu/BUILD.gn +index 023d6e13a2c..312f34d6186 100644 +--- a/chromium/third_party/icu/BUILD.gn ++++ b/chromium/third_party/icu/BUILD.gn +@@ -7,9 +7,13 @@ import("//build/config/host_byteorder.gni") + import("//build/config/linux/pkg_config.gni") + import("//build/shim_headers.gni") + import("//third_party/icu/config.gni") ++import("//v8/gni/snapshot_toolchain.gni") + + declare_args() { + use_system_icu = false ++ ++ # Use only target icu library, when system using is enabled ++ use_system_icu_target_only = false + } + + if (is_android) { +@@ -20,6 +24,12 @@ if (is_mac) { + import("//build/config/sanitizers/sanitizers.gni") + } + ++if (use_system_icu) { ++ # Use system library only for target, otherwise use bundled ++ if ((current_toolchain != host_toolchain) && (current_toolchain != v8_snapshot_toolchain)) { ++ use_system_icu_target_only = true ++ } ++} + # Meta target that includes both icuuc and icui18n. Most targets want both. + # You can depend on the individually if you need to. + group("icu") { +@@ -1207,7 +1217,7 @@ config("system_icu_config") { + } + } + +-if (use_system_icu) { ++if (use_system_icu_target_only) { + pkg_config("system_icui18n") { + packages = [ "icu-i18n" ] + } +@@ -1420,7 +1430,7 @@ shim_headers("icuuc_shim") { + } + + config("icu_config") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + configs = [ ":system_icu_config"] + } else { + configs = [ ":bundled_icu_config"] +@@ -1428,7 +1438,7 @@ config("icu_config") { + } + + group("icuuc") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icuuc_shim" ] + public_configs = [ + ":system_icu_config", +@@ -1440,7 +1450,7 @@ group("icuuc") { + } + + group("icui18n") { +- if (use_system_icu) { ++ if (use_system_icu_target_only) { + deps = [ ":icui18n_shim" ] + public_configs = [ + ":system_icu_config", diff --git a/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch deleted file mode 100644 index 19fbca5d..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 5b501d5335008e32bd5a62e48a675c8fc61194a9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 14:09:06 -0700 -Subject: [PATCH] chromium: musl: Avoid mallinfo() APIs on non-glibc/linux - -Signed-off-by: Khem Raj ---- - chromium/base/process/process_metrics_posix.cc | 4 ++-- - chromium/base/trace_event/malloc_dump_provider.cc | 2 ++ - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/chromium/base/process/process_metrics_posix.cc b/chromium/base/process/process_metrics_posix.cc -index 044bd8d244f..cec43e1d59b 100644 ---- a/chromium/base/process/process_metrics_posix.cc -+++ b/chromium/base/process/process_metrics_posix.cc -@@ -110,14 +110,14 @@ size_t ProcessMetrics::GetMallocUsage() { - malloc_statistics_t stats = {0}; - malloc_zone_statistics(nullptr, &stats); - return stats.size_in_use; --#elif defined(OS_LINUX) || defined(OS_ANDROID) -+#elif defined(__GLIBC__) || defined(OS_ANDROID) - struct mallinfo minfo = mallinfo(); - #if BUILDFLAG(USE_TCMALLOC) - return minfo.uordblks; - #else - return minfo.hblkhd + minfo.arena; - #endif --#elif defined(OS_FUCHSIA) -+#else - // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. - return 0; - #endif -diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc -index 7e42cfc20bb..4e24fc711ad 100644 ---- a/chromium/base/trace_event/malloc_dump_provider.cc -+++ b/chromium/base/trace_event/malloc_dump_provider.cc -@@ -77,6 +77,7 @@ MallocDumpProvider::~MallocDumpProvider() = default; - // the current process. - bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, - ProcessMemoryDump* pmd) { -+#if defined(__GLIBC__) - { - base::AutoLock auto_lock(emit_metrics_on_memory_dump_lock_); - if (!emit_metrics_on_memory_dump_) -@@ -175,6 +176,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, - MemoryAllocatorDump::kUnitsBytes, - resident_size - allocated_objects_size); - } -+#endif // __GLIBC__ - return true; - } - diff --git a/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch new file mode 100644 index 00000000..1b43fcbb --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch @@ -0,0 +1,139 @@ +From 5aa69767be0fbbc7a3a5075c6c94366a535c99a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Mon, 20 Apr 2020 23:56:48 +0200 +Subject: [PATCH] chromium: Fix sandbox 'Aw, snap' for syscalls 403 and 407 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken as is from meta-browser. Saw my application freeze for syscall 0407 +trouble: + +| ../../../../git/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 + +Original commit message: + +* syscall 403: reported by ArchLinux users [1-2] +* syscall 407: reported by me [3] + +Looking at [4-5] it seems that glibc (>=2.31?) introduced extra syscalls for +32Bit systems to handle time64: + +* __NR_clock_gettime -> __NR_clock_gettime64 +* __NR_clock_nanosleep -> __NR_clock_nanosleep_time64 + +To fix +| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0403 +| ../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0407 + +we handle new systemcalls in the same way as 64bit systems do and 32bit systems +did before glibc 2.31. + +[1] https://bugs.archlinux32.org/index.php?do=details&task_id=105 +[2] https://bbs.archlinux32.org/viewtopic.php?id=2897 +[3] https://github.com/OSSystems/meta-browser/issues/357 +[4] https://sourceware.org/git/?p=glibc.git;a=commit;h=2e44b10b42d68d9887ccab17b76db5d7bbae4fb6 +[5] https://github.com/bminor/glibc/blob/019d828669df966dc4ef2684fce0b1c17bef9aae/sysdeps/unix/sysv/linux/clock_gettime.c#L30 + +Upstream Status: Pending [Have no idea where to send this] + +Signed-off-by: Andreas Müller +Signed-off-by: Martin Jansa +--- + .../sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc | 9 ++++++++- + .../syscall_parameters_restrictions_unittests.cc | 6 ++++++ + .../sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc | 6 ++++++ + .../sandbox/linux/system_headers/arm_linux_syscalls.h | 8 ++++++++ + .../sandbox/linux/system_headers/mips_linux_syscalls.h | 8 ++++++++ + 5 files changed, 36 insertions(+), 1 deletion(-) + +diff --git a/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +index 768025ce192..87025d91785 100644 +--- a/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ++++ b/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +@@ -148,7 +148,14 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, + return Allow(); + #endif + +- if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep) { ++ if (sysno == __NR_clock_gettime || sysno == __NR_clock_nanosleep ++#if defined(__NR_clock_gettime64) ++ || sysno == __NR_clock_gettime64 ++#endif ++#if defined(__NR_clock_nanosleep_time64) ++ || sysno == __NR_clock_nanosleep_time64 ++#endif ++ ) { + return RestrictClockID(); + } + +diff --git a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +index 76193b62c9f..7731c697002 100644 +--- a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc ++++ b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +@@ -60,6 +60,12 @@ class RestrictClockIdPolicy : public bpf_dsl::Policy { + case __NR_clock_gettime: + case __NR_clock_getres: + case __NR_clock_nanosleep: ++#if defined(__NR_clock_nanosleep_time64) ++ case __NR_clock_nanosleep_time64: ++#endif ++#if defined(__NR_clock_gettime64) ++ case __NR_clock_gettime64: ++#endif + return RestrictClockID(); + default: + return Allow(); +diff --git a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +index d9d18822f67..0db8745cb57 100644 +--- a/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ++++ b/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +@@ -39,6 +39,12 @@ bool SyscallSets::IsAllowedGettime(int sysno) { + // filtered by RestrictClokID(). + case __NR_clock_gettime: // Parameters filtered by RestrictClockID(). + case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID(). ++#if defined(__NR_clock_gettime64) ++ case __NR_clock_gettime64: // Parameters filtered by RestrictClockID(). ++#endif ++#if defined(__NR_clock_nanosleep_time64) ++ case __NR_clock_nanosleep_time64: // Parameters filtered by RestrictClockID(). ++#endif + case __NR_clock_settime: // Privileged. + #if defined(__i386__) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) +diff --git a/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h b/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +index 1addd53843c..5de2162f981 100644 +--- a/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h ++++ b/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +@@ -1385,6 +1385,14 @@ + #define __NR_memfd_create (__NR_SYSCALL_BASE+385) + #endif + ++#if !defined(__NR_clock_gettime64) ++#define __NR_clock_gettime64 (__NR_SYSCALL_BASE+403) ++#endif ++ ++#if !defined(__NR_clock_nanosleep_time64) ++#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE+407) ++#endif ++ + // ARM private syscalls. + #if !defined(__ARM_NR_BASE) + #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) +diff --git a/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h b/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h +index ddbf97f3d8b..fa01b3bbc66 100644 +--- a/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h ++++ b/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h +@@ -1433,4 +1433,12 @@ + #define __NR_memfd_create (__NR_Linux + 354) + #endif + ++#if !defined(__NR_clock_gettime64) ++#define __NR_clock_gettime64 (__NR_Linux + 403) ++#endif ++ ++#if !defined(__NR_clock_nanosleep_time64) ++#define __NR_clock_nanosleep_time64 (__NR_Linux + 407) ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_ diff --git a/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch b/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch deleted file mode 100644 index 91bd4057..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1180600c21260188fd2d3def0f536b4243175fc0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 14:37:49 -0700 -Subject: [PATCH] chromium: musl: include fcntl.h for loff_t - -Signed-off-by: Khem Raj ---- - .../tcmalloc/chromium/src/base/linux_syscall_support.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -index ca5936d6e63..5484dbadfbd 100644 ---- a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -+++ b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h -@@ -154,6 +154,7 @@ extern "C" { - #include - #include - #include -+#include - #include - #include - #include diff --git a/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch new file mode 100644 index 00000000..01c46c05 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch @@ -0,0 +1,33 @@ +From 0dbcdee3ccc23d3a6c9e66b5abc3fb3d1ccbc297 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 14:01:12 -0700 +Subject: [PATCH] chromium: musl: sandbox: Define TEMP_FAILURE_RETRY if not + defined + +Musl does not define this Macro + +Signed-off-by: Khem Raj +--- + chromium/sandbox/linux/suid/sandbox.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/chromium/sandbox/linux/suid/sandbox.c b/chromium/sandbox/linux/suid/sandbox.c +index 854819bfbb4..a99d32741d0 100644 +--- a/chromium/sandbox/linux/suid/sandbox.c ++++ b/chromium/sandbox/linux/suid/sandbox.c +@@ -46,6 +46,15 @@ static bool DropRoot(); + + #define HANDLE_EINTR(x) TEMP_FAILURE_RETRY(x) + ++#ifndef TEMP_FAILURE_RETRY ++# define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ + static void FatalError(const char* msg, ...) + __attribute__((noreturn, format(printf, 1, 2))); + diff --git a/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch b/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch deleted file mode 100644 index c6c3571c..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch +++ /dev/null @@ -1,62 +0,0 @@ -From f2ff87552f0f2f576bda05f7ccf5855c005ed7b0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 14:38:37 -0700 -Subject: [PATCH] chromium: musl: use off64_t instead of the internal __off64_t - -- only do the glibc 32-bit ABI check for mmap/mmap64 on gnu libc. musl - does not support the 32-bit ABI. - -Signed-off-by: Khem Raj ---- - .../tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -index 17415aaf538..59c1b6fb5f6 100644 ---- a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -+++ b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -@@ -60,7 +60,7 @@ - - static inline void* do_mmap64(void *start, size_t length, - int prot, int flags, -- int fd, __off64_t offset) __THROW { -+ int fd, off64_t offset) __THROW { - // The original gperftools uses sys_mmap() here. But, it is not allowed by - // Chromium's sandbox. - return (void*)syscall(SYS_mmap, start, length, prot, flags, fd, offset); -@@ -73,7 +73,7 @@ static inline void* do_mmap64(void *start, size_t length, - - static inline void* do_mmap64(void *start, size_t length, - int prot, int flags, -- int fd, __off64_t offset) __THROW { -+ int fd, off64_t offset) __THROW { - void *result; - - // Try mmap2() unless it's not supported -@@ -144,7 +144,7 @@ static inline void* do_mmap64(void *start, size_t length, - - extern "C" { - void* mmap64(void *start, size_t length, int prot, int flags, -- int fd, __off64_t offset ) __THROW -+ int fd, off64_t offset ) __THROW - ATTRIBUTE_SECTION(malloc_hook); - void* mmap(void *start, size_t length,int prot, int flags, - int fd, off_t offset) __THROW -@@ -159,7 +159,7 @@ extern "C" { - } - - extern "C" void* mmap64(void *start, size_t length, int prot, int flags, -- int fd, __off64_t offset) __THROW { -+ int fd, off64_t offset) __THROW { - MallocHook::InvokePreMmapHook(start, length, prot, flags, fd, offset); - void *result; - if (!MallocHook::InvokeMmapReplacement( -@@ -170,7 +170,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags, - return result; - } - --# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH) -+# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)) - - extern "C" void* mmap(void *start, size_t length, int prot, int flags, - int fd, off_t offset) __THROW { diff --git a/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch new file mode 100644 index 00000000..03226154 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch @@ -0,0 +1,52 @@ +From bbb23eb876e1f4500e7c8fd716a73351ad660725 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 14:09:06 -0700 +Subject: [PATCH] chromium: musl: Avoid mallinfo() APIs on non-glibc/linux + +Signed-off-by: Khem Raj +--- + chromium/base/process/process_metrics_posix.cc | 4 ++-- + chromium/base/trace_event/malloc_dump_provider.cc | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/chromium/base/process/process_metrics_posix.cc b/chromium/base/process/process_metrics_posix.cc +index 044bd8d244f..cec43e1d59b 100644 +--- a/chromium/base/process/process_metrics_posix.cc ++++ b/chromium/base/process/process_metrics_posix.cc +@@ -110,14 +110,14 @@ size_t ProcessMetrics::GetMallocUsage() { + malloc_statistics_t stats = {0}; + malloc_zone_statistics(nullptr, &stats); + return stats.size_in_use; +-#elif defined(OS_LINUX) || defined(OS_ANDROID) ++#elif defined(__GLIBC__) || defined(OS_ANDROID) + struct mallinfo minfo = mallinfo(); + #if BUILDFLAG(USE_TCMALLOC) + return minfo.uordblks; + #else + return minfo.hblkhd + minfo.arena; + #endif +-#elif defined(OS_FUCHSIA) ++#else + // TODO(fuchsia): Not currently exposed. https://crbug.com/735087. + return 0; + #endif +diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc +index 7e42cfc20bb..4e24fc711ad 100644 +--- a/chromium/base/trace_event/malloc_dump_provider.cc ++++ b/chromium/base/trace_event/malloc_dump_provider.cc +@@ -77,6 +77,7 @@ MallocDumpProvider::~MallocDumpProvider() = default; + // the current process. + bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, + ProcessMemoryDump* pmd) { ++#if defined(__GLIBC__) + { + base::AutoLock auto_lock(emit_metrics_on_memory_dump_lock_); + if (!emit_metrics_on_memory_dump_) +@@ -175,6 +176,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args, + MemoryAllocatorDump::kUnitsBytes, + resident_size - allocated_objects_size); + } ++#endif // __GLIBC__ + return true; + } + diff --git a/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch b/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch deleted file mode 100644 index 9cc6744d..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch +++ /dev/null @@ -1,23 +0,0 @@ -From efa10960aa9ec6b573a9c34cabab90ad2c31c5a3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 14:54:38 -0700 -Subject: [PATCH] chromium: musl: linux != glibc, make the distinction - -Signed-off-by: Khem Raj ---- - chromium/base/allocator/allocator_check.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/base/allocator/allocator_check.cc b/chromium/base/allocator/allocator_check.cc -index 5ea77ef2d27..85343a13905 100644 ---- a/chromium/base/allocator/allocator_check.cc -+++ b/chromium/base/allocator/allocator_check.cc -@@ -27,7 +27,7 @@ bool IsAllocatorInitialized() { - // Set by allocator_shim_override_ucrt_symbols_win.h when the - // shimmed _set_new_mode() is called. - return g_is_win_shim_layer_initialized; --#elif defined(OS_LINUX) && BUILDFLAG(USE_TCMALLOC) && \ -+#elif defined(__GLIBC__) && BUILDFLAG(USE_TCMALLOC) && \ - !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) - // From third_party/tcmalloc/chromium/src/gperftools/tcmalloc.h. - // TODO(primiano): replace with an include once base can depend on allocator. diff --git a/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch deleted file mode 100644 index 15e38eb0..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch +++ /dev/null @@ -1,24 +0,0 @@ -From c799e56ed6c073782c9215aa7d9302003b61a395 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 15:09:02 -0700 -Subject: [PATCH] chromium: musl: allocator: Do not include glibc_weak_symbols - for musl - -Signed-off-by: Khem Raj ---- - chromium/base/allocator/allocator_shim.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/base/allocator/allocator_shim.cc b/chromium/base/allocator/allocator_shim.cc -index ef42d5ad67f..626e4c996a5 100644 ---- a/chromium/base/allocator/allocator_shim.cc -+++ b/chromium/base/allocator/allocator_shim.cc -@@ -352,7 +352,7 @@ ALWAYS_INLINE void ShimAlignedFree(void* address, void* context) { - // In the case of tcmalloc we also want to plumb into the glibc hooks - // to avoid that allocations made in glibc itself (e.g., strdup()) get - // accidentally performed on the glibc heap instead of the tcmalloc one. --#if BUILDFLAG(USE_TCMALLOC) -+#if BUILDFLAG(USE_TCMALLOC) && defined(__GLIBC__) - #include "base/allocator/allocator_shim_override_glibc_weak_symbols.h" - #endif - diff --git a/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch new file mode 100644 index 00000000..869ac113 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch @@ -0,0 +1,22 @@ +From d1d6bd4260eb847c1493a8ce4a974bb8d8ee0218 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 14:37:49 -0700 +Subject: [PATCH] chromium: musl: include fcntl.h for loff_t + +Signed-off-by: Khem Raj +--- + .../tcmalloc/chromium/src/base/linux_syscall_support.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h +index ca5936d6e63..5484dbadfbd 100644 +--- a/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h ++++ b/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h +@@ -154,6 +154,7 @@ extern "C" { + #include + #include + #include ++#include + #include + #include + #include diff --git a/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Use-correct-member-name-__si_fields-fr.patch b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Use-correct-member-name-__si_fields-fr.patch deleted file mode 100644 index b13532d3..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-Use-correct-member-name-__si_fields-fr.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 06dcf80d09523fc075edc157231b33da63b3f37e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 15:12:39 -0700 -Subject: [PATCH] chromium: musl: Use correct member name __si_fields from - LinuxSigInfo - -Signed-off-by: Khem Raj ---- - chromium/sandbox/linux/seccomp-bpf/trap.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/sandbox/linux/seccomp-bpf/trap.cc b/chromium/sandbox/linux/seccomp-bpf/trap.cc -index 003708d2c89..0fef3148f9d 100644 ---- a/chromium/sandbox/linux/seccomp-bpf/trap.cc -+++ b/chromium/sandbox/linux/seccomp-bpf/trap.cc -@@ -168,7 +168,7 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) { - // most versions of glibc don't include this information in siginfo_t. So, - // we need to explicitly copy it into a arch_sigsys structure. - struct arch_sigsys sigsys; -- memcpy(&sigsys, &info->_sifields, sizeof(sigsys)); -+ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys)); - - #if defined(__mips__) - // When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the diff --git a/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch new file mode 100644 index 00000000..638c7312 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch @@ -0,0 +1,62 @@ +From 7cf2404330f7888f3cc8a25becfe944cc2fc421e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 14:38:37 -0700 +Subject: [PATCH] chromium: musl: use off64_t instead of the internal __off64_t + +- only do the glibc 32-bit ABI check for mmap/mmap64 on gnu libc. musl + does not support the 32-bit ABI. + +Signed-off-by: Khem Raj +--- + .../tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h +index 17415aaf538..59c1b6fb5f6 100644 +--- a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h ++++ b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h +@@ -60,7 +60,7 @@ + + static inline void* do_mmap64(void *start, size_t length, + int prot, int flags, +- int fd, __off64_t offset) __THROW { ++ int fd, off64_t offset) __THROW { + // The original gperftools uses sys_mmap() here. But, it is not allowed by + // Chromium's sandbox. + return (void*)syscall(SYS_mmap, start, length, prot, flags, fd, offset); +@@ -73,7 +73,7 @@ static inline void* do_mmap64(void *start, size_t length, + + static inline void* do_mmap64(void *start, size_t length, + int prot, int flags, +- int fd, __off64_t offset) __THROW { ++ int fd, off64_t offset) __THROW { + void *result; + + // Try mmap2() unless it's not supported +@@ -144,7 +144,7 @@ static inline void* do_mmap64(void *start, size_t length, + + extern "C" { + void* mmap64(void *start, size_t length, int prot, int flags, +- int fd, __off64_t offset ) __THROW ++ int fd, off64_t offset ) __THROW + ATTRIBUTE_SECTION(malloc_hook); + void* mmap(void *start, size_t length,int prot, int flags, + int fd, off_t offset) __THROW +@@ -159,7 +159,7 @@ extern "C" { + } + + extern "C" void* mmap64(void *start, size_t length, int prot, int flags, +- int fd, __off64_t offset) __THROW { ++ int fd, off64_t offset) __THROW { + MallocHook::InvokePreMmapHook(start, length, prot, flags, fd, offset); + void *result; + if (!MallocHook::InvokeMmapReplacement( +@@ -170,7 +170,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags, + return result; + } + +-# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH) ++# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)) + + extern "C" void* mmap(void *start, size_t length, int prot, int flags, + int fd, off_t offset) __THROW { diff --git a/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch deleted file mode 100644 index ea2acd56..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 991b9f17d0743c80340685181095dc8903a57b53 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 15:27:50 -0700 -Subject: [PATCH] chromium: musl: Define res_ninit and res_nclose for non-glibc - platforms - -Signed-off-by: Khem Raj ---- - chromium/net/dns/dns_config_service_posix.cc | 4 +++ - chromium/net/dns/dns_reloader.cc | 4 +++ - chromium/net/dns/resolv_compat.h | 29 ++++++++++++++++++++ - 3 files changed, 37 insertions(+) - create mode 100644 chromium/net/dns/resolv_compat.h - -diff --git a/chromium/net/dns/dns_config_service_posix.cc b/chromium/net/dns/dns_config_service_posix.cc -index 2e0f06b0c1e..aaafef77d79 100644 ---- a/chromium/net/dns/dns_config_service_posix.cc -+++ b/chromium/net/dns/dns_config_service_posix.cc -@@ -29,6 +29,10 @@ - #include "net/dns/public/dns_protocol.h" - #include "net/dns/serial_worker.h" - -+#if defined(OS_LINUX) && !defined(__GLIBC__) -+#include "net/dns/resolv_compat.h" -+#endif -+ - #if defined(OS_MACOSX) && !defined(OS_IOS) - #include "net/dns/dns_config_watcher_mac.h" - #endif -diff --git a/chromium/net/dns/dns_reloader.cc b/chromium/net/dns/dns_reloader.cc -index 1c014a65019..2670a827aa5 100644 ---- a/chromium/net/dns/dns_reloader.cc -+++ b/chromium/net/dns/dns_reloader.cc -@@ -9,6 +9,10 @@ - - #include - -+#if defined(OS_LINUX) && !defined(__GLIBC__) -+#include "net/dns/resolv_compat.h" -+#endif -+ - #include "base/lazy_instance.h" - #include "base/logging.h" - #include "base/macros.h" -diff --git a/chromium/net/dns/resolv_compat.h b/chromium/net/dns/resolv_compat.h -new file mode 100644 -index 00000000000..4f0e852a19d ---- /dev/null -+++ b/chromium/net/dns/resolv_compat.h -@@ -0,0 +1,29 @@ -+#if !defined(__GLIBC__) -+/*************************************************************************** -+ * resolv_compat.h -+ * -+ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc -+ * Note: res_init() is actually deprecated according to -+ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html -+ **************************************************************************/ -+#include -+ -+static inline int res_ninit(res_state statp) -+{ -+ int rc = res_init(); -+ if (statp != &_res) { -+ memcpy(statp, &_res, sizeof(*statp)); -+ } -+ return rc; -+} -+ -+static inline int res_nclose(res_state statp) -+{ -+ if (!statp) -+ return -1; -+ if (statp != &_res) { -+ memset(statp, 0, sizeof(*statp)); -+ } -+ return 0; -+} -+#endif diff --git a/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch new file mode 100644 index 00000000..55939ddd --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch @@ -0,0 +1,23 @@ +From 350b57a5cad7c655ccb68a8b4b91e7d32021a1d7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 14:54:38 -0700 +Subject: [PATCH] chromium: musl: linux != glibc, make the distinction + +Signed-off-by: Khem Raj +--- + chromium/base/allocator/allocator_check.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chromium/base/allocator/allocator_check.cc b/chromium/base/allocator/allocator_check.cc +index 5ea77ef2d27..85343a13905 100644 +--- a/chromium/base/allocator/allocator_check.cc ++++ b/chromium/base/allocator/allocator_check.cc +@@ -27,7 +27,7 @@ bool IsAllocatorInitialized() { + // Set by allocator_shim_override_ucrt_symbols_win.h when the + // shimmed _set_new_mode() is called. + return g_is_win_shim_layer_initialized; +-#elif defined(OS_LINUX) && BUILDFLAG(USE_TCMALLOC) && \ ++#elif defined(__GLIBC__) && BUILDFLAG(USE_TCMALLOC) && \ + !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) + // From third_party/tcmalloc/chromium/src/gperftools/tcmalloc.h. + // TODO(primiano): replace with an include once base can depend on allocator. diff --git a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch deleted file mode 100644 index 91b87490..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 19969b1ef03bce06fbc8518b4db999a243855c32 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 15:39:57 -0700 -Subject: [PATCH] chromium: musl: Do not define __sbrk on musl - -musl libc does not have sbrk. on musl libc will only work when called with 0 as -argument, so we just let it out for now - -Signed-off-by: Khem Raj ---- - .../third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -index 59c1b6fb5f6..10f0786d829 100644 ---- a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -+++ b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h -@@ -213,7 +213,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size, - return result; - } - --#ifndef __UCLIBC__ -+#if !defined(__UCLIBC__) && defined(__GLIBC__) - // libc's version: - extern "C" void* __sbrk(intptr_t increment); - diff --git a/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch new file mode 100644 index 00000000..37276844 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch @@ -0,0 +1,24 @@ +From 68decc5d87b4eb013f1455fc4f81f67f926fa3b2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 15:09:02 -0700 +Subject: [PATCH] chromium: musl: allocator: Do not include glibc_weak_symbols + for musl + +Signed-off-by: Khem Raj +--- + chromium/base/allocator/allocator_shim.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chromium/base/allocator/allocator_shim.cc b/chromium/base/allocator/allocator_shim.cc +index ef42d5ad67f..626e4c996a5 100644 +--- a/chromium/base/allocator/allocator_shim.cc ++++ b/chromium/base/allocator/allocator_shim.cc +@@ -352,7 +352,7 @@ ALWAYS_INLINE void ShimAlignedFree(void* address, void* context) { + // In the case of tcmalloc we also want to plumb into the glibc hooks + // to avoid that allocations made in glibc itself (e.g., strdup()) get + // accidentally performed on the glibc heap instead of the tcmalloc one. +-#if BUILDFLAG(USE_TCMALLOC) ++#if BUILDFLAG(USE_TCMALLOC) && defined(__GLIBC__) + #include "base/allocator/allocator_shim_override_glibc_weak_symbols.h" + #endif + diff --git a/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch b/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch deleted file mode 100644 index b0833018..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch +++ /dev/null @@ -1,47 +0,0 @@ -From dd7561980e6669aebae6c1fab1c4653139b6740f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 7 Jul 2017 16:41:23 -0700 -Subject: [PATCH] chromium: musl: Adjust default pthread stack size - -Signed-off-by: Khem Raj ---- - chromium/base/threading/platform_thread_linux.cc | 3 ++- - .../third_party/blink/renderer/platform/wtf/stack_util.cc | 4 ++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/chromium/base/threading/platform_thread_linux.cc b/chromium/base/threading/platform_thread_linux.cc -index 095c49b8dc0..d1479b54d48 100644 ---- a/chromium/base/threading/platform_thread_linux.cc -+++ b/chromium/base/threading/platform_thread_linux.cc -@@ -186,7 +186,8 @@ void TerminateOnThread() {} - - size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { - #if !defined(THREAD_SANITIZER) -- return 0; -+ // use 8mb like glibc to avoid running out of space -+ return (1 << 23); - #else - // ThreadSanitizer bloats the stack heavily. Evidence has been that the - // default stack size isn't enough for some browser tests. -diff --git a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc -index b2421649ff3..a31b96e90e6 100644 ---- a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc -+++ b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc -@@ -29,7 +29,7 @@ size_t GetUnderestimatedStackSize() { - // FIXME: On Mac OSX and Linux, this method cannot estimate stack size - // correctly for the main thread. - --#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ - defined(OS_FUCHSIA) - // pthread_getattr_np() can fail if the thread is not invoked by - // pthread_create() (e.g., the main thread of blink_unittests). -@@ -97,7 +97,7 @@ return Threading::ThreadStackSize(); - } - - void* GetStackStart() { --#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ - defined(OS_FUCHSIA) - pthread_attr_t attr; - int error; diff --git a/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Use-correct-member-name-__si_fields-fr.patch b/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Use-correct-member-name-__si_fields-fr.patch new file mode 100644 index 00000000..2da3e09d --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0022-chromium-musl-Use-correct-member-name-__si_fields-fr.patch @@ -0,0 +1,24 @@ +From 1902fc967d6f900a4e918e56f21bc856a0462e4c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 15:12:39 -0700 +Subject: [PATCH] chromium: musl: Use correct member name __si_fields from + LinuxSigInfo + +Signed-off-by: Khem Raj +--- + chromium/sandbox/linux/seccomp-bpf/trap.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chromium/sandbox/linux/seccomp-bpf/trap.cc b/chromium/sandbox/linux/seccomp-bpf/trap.cc +index 003708d2c89..0fef3148f9d 100644 +--- a/chromium/sandbox/linux/seccomp-bpf/trap.cc ++++ b/chromium/sandbox/linux/seccomp-bpf/trap.cc +@@ -168,7 +168,7 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) { + // most versions of glibc don't include this information in siginfo_t. So, + // we need to explicitly copy it into a arch_sigsys structure. + struct arch_sigsys sigsys; +- memcpy(&sigsys, &info->_sifields, sizeof(sigsys)); ++ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys)); + + #if defined(__mips__) + // When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the diff --git a/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch new file mode 100644 index 00000000..aea690d9 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch @@ -0,0 +1,79 @@ +From fea443adcea6e081cfee94a19c75e7b0516e1bce Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 15:27:50 -0700 +Subject: [PATCH] chromium: musl: Define res_ninit and res_nclose for non-glibc + platforms + +Signed-off-by: Khem Raj +--- + chromium/net/dns/dns_config_service_posix.cc | 4 +++ + chromium/net/dns/dns_reloader.cc | 4 +++ + chromium/net/dns/resolv_compat.h | 29 ++++++++++++++++++++ + 3 files changed, 37 insertions(+) + create mode 100644 chromium/net/dns/resolv_compat.h + +diff --git a/chromium/net/dns/dns_config_service_posix.cc b/chromium/net/dns/dns_config_service_posix.cc +index 2e0f06b0c1e..aaafef77d79 100644 +--- a/chromium/net/dns/dns_config_service_posix.cc ++++ b/chromium/net/dns/dns_config_service_posix.cc +@@ -29,6 +29,10 @@ + #include "net/dns/public/dns_protocol.h" + #include "net/dns/serial_worker.h" + ++#if defined(OS_LINUX) && !defined(__GLIBC__) ++#include "net/dns/resolv_compat.h" ++#endif ++ + #if defined(OS_MACOSX) && !defined(OS_IOS) + #include "net/dns/dns_config_watcher_mac.h" + #endif +diff --git a/chromium/net/dns/dns_reloader.cc b/chromium/net/dns/dns_reloader.cc +index 1c014a65019..2670a827aa5 100644 +--- a/chromium/net/dns/dns_reloader.cc ++++ b/chromium/net/dns/dns_reloader.cc +@@ -9,6 +9,10 @@ + + #include + ++#if defined(OS_LINUX) && !defined(__GLIBC__) ++#include "net/dns/resolv_compat.h" ++#endif ++ + #include "base/lazy_instance.h" + #include "base/logging.h" + #include "base/macros.h" +diff --git a/chromium/net/dns/resolv_compat.h b/chromium/net/dns/resolv_compat.h +new file mode 100644 +index 00000000000..4f0e852a19d +--- /dev/null ++++ b/chromium/net/dns/resolv_compat.h +@@ -0,0 +1,29 @@ ++#if !defined(__GLIBC__) ++/*************************************************************************** ++ * resolv_compat.h ++ * ++ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc ++ * Note: res_init() is actually deprecated according to ++ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html ++ **************************************************************************/ ++#include ++ ++static inline int res_ninit(res_state statp) ++{ ++ int rc = res_init(); ++ if (statp != &_res) { ++ memcpy(statp, &_res, sizeof(*statp)); ++ } ++ return rc; ++} ++ ++static inline int res_nclose(res_state statp) ++{ ++ if (!statp) ++ return -1; ++ if (statp != &_res) { ++ memset(statp, 0, sizeof(*statp)); ++ } ++ return 0; ++} ++#endif diff --git a/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch b/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch deleted file mode 100644 index d71a0926..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 2150bb364442a2a352fff1f915c387f4dc37bdef Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 25 Sep 2018 12:35:07 -0700 -Subject: [PATCH] chromium: musl: Use _fpstate instead of _libc_fpstate on - linux - -glibc defines both. musl libc only the former. - -Signed-off-by: Khem Raj ---- - .../src/client/linux/dump_writer_common/ucontext_reader.cc | 4 ++-- - .../src/client/linux/dump_writer_common/ucontext_reader.h | 2 +- - .../src/client/linux/minidump_writer/minidump_writer.h | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -index 6ee6cc1e4cd..a8f9ccc72ac 100644 ---- a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -+++ b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - } - - void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, -- const struct _libc_fpstate* fp) { -+ const struct _fpstate* fp) { - const greg_t* regs = uc->uc_mcontext.gregs; - - out->context_flags = MD_CONTEXT_X86_FULL | -@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - } - - void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, -- const struct _libc_fpstate* fpregs) { -+ const struct _fpstate* fpregs) { - const greg_t* regs = uc->uc_mcontext.gregs; - - out->context_flags = MD_CONTEXT_AMD64_FULL; -diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -index f830618f240..f3dde1f4dff 100644 ---- a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -+++ b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -@@ -50,7 +50,7 @@ struct UContextReader { - // info: the collection of register structures. - #if defined(__i386__) || defined(__x86_64) - static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, -- const struct _libc_fpstate* fp); -+ const struct _fpstate* fp); - #elif defined(__aarch64__) - static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct fpsimd_context* fpregs); -diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h b/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h -index d1dc331215a..d1cc5624cd4 100644 ---- a/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h -+++ b/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h -@@ -48,7 +48,7 @@ class ExceptionHandler; - #if defined(__aarch64__) - typedef struct fpsimd_context fpstate_t; - #elif !defined(__ARM_EABI__) && !defined(__mips__) --typedef struct _libc_fpstate fpstate_t; -+typedef struct _fpstate fpstate_t; - #endif - - // These entries store a list of memory regions that the client wants included diff --git a/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch b/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch new file mode 100644 index 00000000..cd1059e3 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch @@ -0,0 +1,26 @@ +From 64e79d346a2038b976f5bafe2b0b2032b1628229 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 15:39:57 -0700 +Subject: [PATCH] chromium: musl: Do not define __sbrk on musl + +musl libc does not have sbrk. on musl libc will only work when called with 0 as +argument, so we just let it out for now + +Signed-off-by: Khem Raj +--- + .../third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h +index 59c1b6fb5f6..10f0786d829 100644 +--- a/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h ++++ b/chromium/third_party/tcmalloc/chromium/src/malloc_hook_mmap_linux.h +@@ -213,7 +213,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size, + return result; + } + +-#ifndef __UCLIBC__ ++#if !defined(__UCLIBC__) && defined(__GLIBC__) + // libc's version: + extern "C" void* __sbrk(intptr_t increment); + diff --git a/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch b/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch deleted file mode 100644 index b829057e..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch +++ /dev/null @@ -1,56 +0,0 @@ -From f3f26710c365425453d7f8577fc6437f03b89a5c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 25 Sep 2018 12:59:05 -0700 -Subject: [PATCH] chromium: musl: elf_reader.cc: include to get - __WORDSIZE on musl libc - -Signed-off-by: Khem Raj -Signed-off-by: Martin Jansa ---- - chromium/third_party/breakpad/breakpad/configure.ac | 2 +- - .../breakpad/breakpad/src/common/dwarf/elf_reader.cc | 3 ++- - .../breakpad/breakpad/src/common/linux/elf_core_dump.h | 1 + - 3 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/chromium/third_party/breakpad/breakpad/configure.ac b/chromium/third_party/breakpad/breakpad/configure.ac -index 492d09038f9..a6403ed8c3c 100644 ---- a/chromium/third_party/breakpad/breakpad/configure.ac -+++ b/chromium/third_party/breakpad/breakpad/configure.ac -@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32, - AC_HEADER_STDC - AC_SYS_LARGEFILE - AX_PTHREAD --AC_CHECK_HEADERS([a.out.h sys/random.h]) -+AC_CHECK_HEADERS([a.out.h sys/random.h sys/reg.h]) - AC_CHECK_FUNCS([arc4random getrandom]) - - AX_CXX_COMPILE_STDCXX(11, noext, mandatory) -diff --git a/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc b/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc -index 4135a51a980..be92b792d3c 100644 ---- a/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc -+++ b/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc -@@ -29,10 +29,11 @@ - #ifndef _GNU_SOURCE - #define _GNU_SOURCE // needed for pread() - #endif -- -+#include - #include - #include - #include -+#include - #include - #include - #include -diff --git a/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h b/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h -index d03c7a88d38..28b55ab6300 100644 ---- a/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h -+++ b/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h -@@ -33,6 +33,7 @@ - #ifndef COMMON_LINUX_ELF_CORE_DUMP_H_ - #define COMMON_LINUX_ELF_CORE_DUMP_H_ - -+#include - #include - #include - #include diff --git a/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch b/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch new file mode 100644 index 00000000..04bf89e4 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch @@ -0,0 +1,47 @@ +From cecdf34d89110115948cfde44c04a43c9925b24a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Jul 2017 16:41:23 -0700 +Subject: [PATCH] chromium: musl: Adjust default pthread stack size + +Signed-off-by: Khem Raj +--- + chromium/base/threading/platform_thread_linux.cc | 3 ++- + .../third_party/blink/renderer/platform/wtf/stack_util.cc | 4 ++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/chromium/base/threading/platform_thread_linux.cc b/chromium/base/threading/platform_thread_linux.cc +index 095c49b8dc0..d1479b54d48 100644 +--- a/chromium/base/threading/platform_thread_linux.cc ++++ b/chromium/base/threading/platform_thread_linux.cc +@@ -186,7 +186,8 @@ void TerminateOnThread() {} + + size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) { + #if !defined(THREAD_SANITIZER) +- return 0; ++ // use 8mb like glibc to avoid running out of space ++ return (1 << 23); + #else + // ThreadSanitizer bloats the stack heavily. Evidence has been that the + // default stack size isn't enough for some browser tests. +diff --git a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc +index b2421649ff3..a31b96e90e6 100644 +--- a/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc ++++ b/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc +@@ -29,7 +29,7 @@ size_t GetUnderestimatedStackSize() { + // FIXME: On Mac OSX and Linux, this method cannot estimate stack size + // correctly for the main thread. + +-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ + defined(OS_FUCHSIA) + // pthread_getattr_np() can fail if the thread is not invoked by + // pthread_create() (e.g., the main thread of blink_unittests). +@@ -97,7 +97,7 @@ return Threading::ThreadStackSize(); + } + + void* GetStackStart() { +-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \ + defined(OS_FUCHSIA) + pthread_attr_t attr; + int error; diff --git a/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-pread-pwrite.patch b/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-pread-pwrite.patch deleted file mode 100644 index e7ba75f0..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0025-chromium-musl-pread-pwrite.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3c26038e4588bd73d92d5fbd4bd8c2c9a520ea8d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 23 Dec 2018 16:58:04 -0800 -Subject: [PATCH] chromium: musl: pread pwrite - -Redefine pread/pwrite in terms of 64bit variants on musl -since 32bit variants don't exist and aliases are not defined in -libc either - -Upstream-Status: Submitted [https://codereview.chromium.org/1743093002/] -Signed-off-by: Khem Raj ---- - chromium/third_party/lss/linux_syscall_support.h | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h -index d2bd9df4d40..88ea7f508aa 100644 ---- a/chromium/third_party/lss/linux_syscall_support.h -+++ b/chromium/third_party/lss/linux_syscall_support.h -@@ -1239,6 +1239,11 @@ struct kernel_statfs { - #ifndef __NR_fallocate - #define __NR_fallocate 285 - #endif -+#undef __NR_pread -+#define __NR_pread __NR_pread64 -+#undef __NR_pwrite -+#define __NR_pwrite __NR_pwrite64 -+ - /* End of x86-64 definitions */ - #elif defined(__mips__) - #if _MIPS_SIM == _MIPS_SIM_ABI32 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch b/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch new file mode 100644 index 00000000..07a1e3d6 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch @@ -0,0 +1,63 @@ +From ae4187267b4d0d2ff13a6593b69ca06cee321eea Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Sep 2018 12:35:07 -0700 +Subject: [PATCH] chromium: musl: Use _fpstate instead of _libc_fpstate on + linux + +glibc defines both. musl libc only the former. + +Signed-off-by: Khem Raj +--- + .../src/client/linux/dump_writer_common/ucontext_reader.cc | 4 ++-- + .../src/client/linux/dump_writer_common/ucontext_reader.h | 2 +- + .../src/client/linux/minidump_writer/minidump_writer.h | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +index 6ee6cc1e4cd..a8f9ccc72ac 100644 +--- a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc ++++ b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + } + + void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, +- const struct _libc_fpstate* fp) { ++ const struct _fpstate* fp) { + const greg_t* regs = uc->uc_mcontext.gregs; + + out->context_flags = MD_CONTEXT_X86_FULL | +@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + } + + void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, +- const struct _libc_fpstate* fpregs) { ++ const struct _fpstate* fpregs) { + const greg_t* regs = uc->uc_mcontext.gregs; + + out->context_flags = MD_CONTEXT_AMD64_FULL; +diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +index f830618f240..f3dde1f4dff 100644 +--- a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h ++++ b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +@@ -50,7 +50,7 @@ struct UContextReader { + // info: the collection of register structures. + #if defined(__i386__) || defined(__x86_64) + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, +- const struct _libc_fpstate* fp); ++ const struct _fpstate* fp); + #elif defined(__aarch64__) + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs); +diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h b/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h +index d1dc331215a..d1cc5624cd4 100644 +--- a/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h ++++ b/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h +@@ -48,7 +48,7 @@ class ExceptionHandler; + #if defined(__aarch64__) + typedef struct fpsimd_context fpstate_t; + #elif !defined(__ARM_EABI__) && !defined(__mips__) +-typedef struct _libc_fpstate fpstate_t; ++typedef struct _fpstate fpstate_t; + #endif + + // These entries store a list of memory regions that the client wants included diff --git a/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch b/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch deleted file mode 100644 index d316929c..00000000 --- a/recipes-qt/qt5/qtwebengine/chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch +++ /dev/null @@ -1,45 +0,0 @@ -From f0cb2c411e58217b694f9bdf9d34cbc56bd0d785 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 10 May 2020 08:16:01 -0700 -Subject: [PATCH] chromium: musl: initialize msghdr in a compatible manner - -initialize msghdr in a compatible manner - -msghdr stuct from socket.h is not same between musl and glibc -where musl claims to be more posix compliant where as glibc seems -to fill whats needed for linux sizewise and chooses long enough types -which maybe questionable, therefore constructing a structure with explicit -constructor is not going to work correctly for musl and glibc at same time - -see -https://git.musl-libc.org/cgit/musl/commit/arch/x86_64/bits/socket.h?id=7168790763cdeb794df52be6e3b39fbb021c5a64 - -This fix initialized the struct to 0 first and then sets the struct elements -by name, so we dont have to hard code the positions of elements when initializing -structure - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - chromium/net/socket/udp_socket_posix.cc | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/chromium/net/socket/udp_socket_posix.cc b/chromium/net/socket/udp_socket_posix.cc -index 572472a6993..504fdb5d5c6 100644 ---- a/chromium/net/socket/udp_socket_posix.cc -+++ b/chromium/net/socket/udp_socket_posix.cc -@@ -1190,8 +1190,12 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers( - for (auto& buffer : buffers) - msg_iov->push_back({const_cast(buffer->data()), buffer->length()}); - msgvec->reserve(buffers.size()); -- for (size_t j = 0; j < buffers.size(); j++) -- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0}); -+ for (size_t j = 0; j < buffers.size(); j++) { -+ struct msghdr m = {0}; -+ m.msg_iov = &msg_iov[j]; -+ m.msg_iovlen = 1; -+ msgvec->push_back({m, 0}); -+ } - int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0)); - SendResult send_result(0, 0, std::move(buffers)); - if (result < 0) { diff --git a/recipes-qt/qt5/qtwebengine/chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch b/recipes-qt/qt5/qtwebengine/chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch new file mode 100644 index 00000000..63f93873 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch @@ -0,0 +1,56 @@ +From f12f5d2dc91548ca77b296a0be3705aacc9fca33 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Sep 2018 12:59:05 -0700 +Subject: [PATCH] chromium: musl: elf_reader.cc: include to get + __WORDSIZE on musl libc + +Signed-off-by: Khem Raj +Signed-off-by: Martin Jansa +--- + chromium/third_party/breakpad/breakpad/configure.ac | 2 +- + .../breakpad/breakpad/src/common/dwarf/elf_reader.cc | 3 ++- + .../breakpad/breakpad/src/common/linux/elf_core_dump.h | 1 + + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/chromium/third_party/breakpad/breakpad/configure.ac b/chromium/third_party/breakpad/breakpad/configure.ac +index 492d09038f9..a6403ed8c3c 100644 +--- a/chromium/third_party/breakpad/breakpad/configure.ac ++++ b/chromium/third_party/breakpad/breakpad/configure.ac +@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32, + AC_HEADER_STDC + AC_SYS_LARGEFILE + AX_PTHREAD +-AC_CHECK_HEADERS([a.out.h sys/random.h]) ++AC_CHECK_HEADERS([a.out.h sys/random.h sys/reg.h]) + AC_CHECK_FUNCS([arc4random getrandom]) + + AX_CXX_COMPILE_STDCXX(11, noext, mandatory) +diff --git a/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc b/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc +index 4135a51a980..be92b792d3c 100644 +--- a/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc ++++ b/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc +@@ -29,10 +29,11 @@ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE // needed for pread() + #endif +- ++#include + #include + #include + #include ++#include + #include + #include + #include +diff --git a/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h b/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h +index d03c7a88d38..28b55ab6300 100644 +--- a/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h ++++ b/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h +@@ -33,6 +33,7 @@ + #ifndef COMMON_LINUX_ELF_CORE_DUMP_H_ + #define COMMON_LINUX_ELF_CORE_DUMP_H_ + ++#include + #include + #include + #include diff --git a/recipes-qt/qt5/qtwebengine/chromium/0028-chromium-musl-pread-pwrite.patch b/recipes-qt/qt5/qtwebengine/chromium/0028-chromium-musl-pread-pwrite.patch new file mode 100644 index 00000000..e6fa0887 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0028-chromium-musl-pread-pwrite.patch @@ -0,0 +1,31 @@ +From 3269ffba733ed7eeb7c2c36912dd19ca1ef35f8b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 23 Dec 2018 16:58:04 -0800 +Subject: [PATCH] chromium: musl: pread pwrite + +Redefine pread/pwrite in terms of 64bit variants on musl +since 32bit variants don't exist and aliases are not defined in +libc either + +Upstream-Status: Submitted [https://codereview.chromium.org/1743093002/] +Signed-off-by: Khem Raj +--- + chromium/third_party/lss/linux_syscall_support.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h +index d2bd9df4d40..88ea7f508aa 100644 +--- a/chromium/third_party/lss/linux_syscall_support.h ++++ b/chromium/third_party/lss/linux_syscall_support.h +@@ -1239,6 +1239,11 @@ struct kernel_statfs { + #ifndef __NR_fallocate + #define __NR_fallocate 285 + #endif ++#undef __NR_pread ++#define __NR_pread __NR_pread64 ++#undef __NR_pwrite ++#define __NR_pwrite __NR_pwrite64 ++ + /* End of x86-64 definitions */ + #elif defined(__mips__) + #if _MIPS_SIM == _MIPS_SIM_ABI32 diff --git a/recipes-qt/qt5/qtwebengine/chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch b/recipes-qt/qt5/qtwebengine/chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch new file mode 100644 index 00000000..8db39395 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch @@ -0,0 +1,45 @@ +From 0b04cbd5b93908bad4dfc6d829048fe90a09b868 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 10 May 2020 08:16:01 -0700 +Subject: [PATCH] chromium: musl: initialize msghdr in a compatible manner + +initialize msghdr in a compatible manner + +msghdr stuct from socket.h is not same between musl and glibc +where musl claims to be more posix compliant where as glibc seems +to fill whats needed for linux sizewise and chooses long enough types +which maybe questionable, therefore constructing a structure with explicit +constructor is not going to work correctly for musl and glibc at same time + +see +https://git.musl-libc.org/cgit/musl/commit/arch/x86_64/bits/socket.h?id=7168790763cdeb794df52be6e3b39fbb021c5a64 + +This fix initialized the struct to 0 first and then sets the struct elements +by name, so we dont have to hard code the positions of elements when initializing +structure + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + chromium/net/socket/udp_socket_posix.cc | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/chromium/net/socket/udp_socket_posix.cc b/chromium/net/socket/udp_socket_posix.cc +index 572472a6993..504fdb5d5c6 100644 +--- a/chromium/net/socket/udp_socket_posix.cc ++++ b/chromium/net/socket/udp_socket_posix.cc +@@ -1190,8 +1190,12 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers( + for (auto& buffer : buffers) + msg_iov->push_back({const_cast(buffer->data()), buffer->length()}); + msgvec->reserve(buffers.size()); +- for (size_t j = 0; j < buffers.size(); j++) +- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0}); ++ for (size_t j = 0; j < buffers.size(); j++) { ++ struct msghdr m = {0}; ++ m.msg_iov = &msg_iov[j]; ++ m.msg_iovlen = 1; ++ msgvec->push_back({m, 0}); ++ } + int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0)); + SendResult send_result(0, 0, std::move(buffers)); + if (result < 0) { diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb index d333ac08..6d6318b0 100644 --- a/recipes-qt/qt5/qtwebengine_git.bb +++ b/recipes-qt/qt5/qtwebengine_git.bb @@ -144,21 +144,22 @@ RDEPENDS_${PN}-examples += " \ QT_MODULE_BRANCH_CHROMIUM = "80-based" -# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15 -# 5.15.meta-qt5.7 +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15-glibc +# 5.15-glibc.meta-qt5.8 SRC_URI += " \ ${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \ file://0001-Force-host-toolchain-configuration.patch \ - file://0005-icu-use-system-library-only-targets.patch \ " +# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.15 +# 5.15-glibc.meta-qt5.8 SRC_URI_append_libc-musl = "\ file://0002-musl-don-t-use-pvalloc-as-it-s-not-available-on-musl.patch \ file://0003-musl-link-against-libexecinfo.patch \ file://0004-mkspecs-Allow-builds-with-libc-glibc.patch \ " -# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based -# 80-based.meta-qt5.3 +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based-glibc +# 80-based-glibc.meta-qt5.4 SRC_URI += " \ file://chromium/0001-chromium-workaround-for-too-long-.rps-file-name.patch;patchdir=src/3rdparty \ file://chromium/0002-chromium-stack-pointer-clobber.patch;patchdir=src/3rdparty \ @@ -173,24 +174,27 @@ SRC_URI += " \ file://chromium/0011-chromium-Include-cstddef-and-cstdint.patch;patchdir=src/3rdparty \ file://chromium/0012-chromium-Link-v8-with-libatomic-on-x86.patch;patchdir=src/3rdparty \ file://chromium/0013-chromium-Fix-bison-3.7.patch;patchdir=src/3rdparty \ - file://chromium/0014-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch;patchdir=src/3rdparty/chromium \ + file://chromium/0014-chromium-icu-use-system-library-only-targets.patch;patchdir=src/3rdparty \ + file://chromium/0015-chromium-Fix-sandbox-Aw-snap-for-syscalls-403-and-40.patch;patchdir=src/3rdparty \ " +# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/80-based +# 80-based.meta-qt5.4 SRC_URI_append_libc-musl = "\ - file://chromium/0013-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \ - file://chromium/0014-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \ - file://chromium/0015-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \ - file://chromium/0016-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \ - file://chromium/0017-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \ - file://chromium/0018-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \ - file://chromium/0019-chromium-musl-Use-correct-member-name-__si_fields-fr.patch;patchdir=src/3rdparty \ - file://chromium/0020-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \ - file://chromium/0021-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \ - file://chromium/0022-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \ - file://chromium/0023-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \ - file://chromium/0024-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \ - file://chromium/0025-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \ - file://chromium/0026-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch;patchdir=src/3rdparty \ + file://chromium/0016-chromium-musl-sandbox-Define-TEMP_FAILURE_RETRY-if-n.patch;patchdir=src/3rdparty \ + file://chromium/0017-chromium-musl-Avoid-mallinfo-APIs-on-non-glibc-linux.patch;patchdir=src/3rdparty \ + file://chromium/0018-chromium-musl-include-fcntl.h-for-loff_t.patch;patchdir=src/3rdparty \ + file://chromium/0019-chromium-musl-use-off64_t-instead-of-the-internal-__.patch;patchdir=src/3rdparty \ + file://chromium/0020-chromium-musl-linux-glibc-make-the-distinction.patch;patchdir=src/3rdparty \ + file://chromium/0021-chromium-musl-allocator-Do-not-include-glibc_weak_sy.patch;patchdir=src/3rdparty \ + file://chromium/0022-chromium-musl-Use-correct-member-name-__si_fields-fr.patch;patchdir=src/3rdparty \ + file://chromium/0023-chromium-musl-Define-res_ninit-and-res_nclose-for-no.patch;patchdir=src/3rdparty \ + file://chromium/0024-chromium-musl-Do-not-define-__sbrk-on-musl.patch;patchdir=src/3rdparty \ + file://chromium/0025-chromium-musl-Adjust-default-pthread-stack-size.patch;patchdir=src/3rdparty \ + file://chromium/0026-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch;patchdir=src/3rdparty \ + file://chromium/0027-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch;patchdir=src/3rdparty \ + file://chromium/0028-chromium-musl-pread-pwrite.patch;patchdir=src/3rdparty \ + file://chromium/0029-chromium-musl-initialize-msghdr-in-a-compatible-mann.patch;patchdir=src/3rdparty \ " SRCREV_qtwebengine = "f5268555099a1a96f8730035a40f04a473dd396e" -- cgit v1.2.3-54-g00ecf