aboutsummaryrefslogtreecommitdiffstats
path: root/community/chromium/musl-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/chromium/musl-fixes.patch')
-rw-r--r--community/chromium/musl-fixes.patch219
1 files changed, 219 insertions, 0 deletions
diff --git a/community/chromium/musl-fixes.patch b/community/chromium/musl-fixes.patch
new file mode 100644
index 0000000000..144a008557
--- /dev/null
+++ b/community/chromium/musl-fixes.patch
@@ -0,0 +1,219 @@
+--- ./third_party/lss/linux_syscall_support.h.orig
++++ ./third_party/lss/linux_syscall_support.h
+@@ -1127,6 +1127,12 @@
+ #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
+--- ./breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.orig
++++ ./breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -49,7 +49,7 @@
+ }
+
+ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *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 @@
+ }
+
+ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *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;
+--- ./breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.orig
++++ ./breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -50,7 +50,7 @@
+ // info: the collection of register structures.
+ #if defined(__i386__) || defined(__x86_64)
+ static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
+- const struct _libc_fpstate* fp);
++ const struct _fpstate* fp);
+ #elif defined(__aarch64__)
+ static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
+ const struct fpsimd_context* fpregs);
+--- ./breakpad/src/client/linux/minidump_writer/minidump_writer.h.orig
++++ ./breakpad/src/client/linux/minidump_writer/minidump_writer.h
+@@ -48,7 +48,7 @@
+ #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
+--- ./breakpad/src/common/linux/elf_core_dump.h.orig
++++ ./breakpad/src/common/linux/elf_core_dump.h
+@@ -36,6 +36,7 @@
+ #include <elf.h>
+ #include <link.h>
+ #include <stddef.h>
++#include <limits.h>
+
+ #include "common/memory_range.h"
+
+@@ -51,9 +52,9 @@
+ typedef ElfW(Phdr) Phdr;
+ typedef ElfW(Word) Word;
+ typedef ElfW(Addr) Addr;
+-#if __WORDSIZE == 32
++#if ULONG_MAX == 0xffffffff
+ static const int kClass = ELFCLASS32;
+-#elif __WORDSIZE == 64
++#elif ULONG_MAX == 0xffffffffffffffff
+ static const int kClass = ELFCLASS64;
+ #else
+ #error "Unsupported __WORDSIZE for ElfCoreDump."
+--- ./sandbox/linux/suid/process_util.h.orig
++++ ./sandbox/linux/suid/process_util.h
+@@ -11,6 +11,14 @@
+ #include <stdbool.h>
+ #include <sys/types.h>
+
++// Some additional functions
++# define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++
+ // This adjusts /proc/process/oom_score_adj so the Linux OOM killer
+ // will prefer certain process types over others. The range for the
+ // adjustment is [-1000, 1000], with [0, 1000] being user accessible.
+--- ./sandbox/linux/seccomp-bpf/trap.cc.orig
++++ ./sandbox/linux/seccomp-bpf/trap.cc
+@@ -156,7 +156,7 @@
+ // 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
+--- ./net/base/dns_reloader.cc.orig
++++ ./net/base/dns_reloader.cc
+@@ -5,7 +5,7 @@
+ #include "net/base/dns_reloader.h"
+
+ #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
+- !defined(OS_ANDROID)
++ !defined(OS_ANDROID) && !defined(_GNU_SOURCE)
+
+ #include <resolv.h>
+
+--- ./net/dns/dns_config_service_posix.cc.orig
++++ ./net/dns/dns_config_service_posix.cc
+@@ -116,7 +116,7 @@
+ ConfigParsePosixResult ReadDnsConfig(DnsConfig* config) {
+ ConfigParsePosixResult result;
+ config->unhandled_options = false;
+-#if defined(OS_OPENBSD)
++#if defined(OS_OPENBSD) || defined(_GNU_SOURCE)
+ // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
+ // res_init behaves the same way.
+ memset(&_res, 0, sizeof(_res));
+--- ./third_party/ffmpeg/libavutil/cpu.c.orig
++++ ./third_party/ffmpeg/libavutil/cpu.c
+@@ -38,7 +38,6 @@
+ #include <sys/param.h>
+ #endif
+ #include <sys/types.h>
+-#include <sys/sysctl.h>
+ #endif
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+--- ./third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp.orig
++++ ./third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp
+@@ -58,7 +58,7 @@
+ // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+ // correctly for the main thread.
+
+-#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD)
++#if OS(LINUX) || OS(ANDROID) || OS(FREEBSD)
+ // pthread_getattr_np() can fail if the thread is not invoked by
+ // pthread_create() (e.g., the main thread of webkit_unit_tests).
+ // In this case, this method returns 0 and the caller must handle it.
+@@ -105,7 +105,7 @@
+
+ void* StackFrameDepth::getStackStart()
+ {
+-#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD)
++#if OS(LINUX) || OS(ANDROID) || OS(FREEBSD)
+ pthread_attr_t attr;
+ int error;
+ #if OS(FREEBSD)
+--- ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig
++++ ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+@@ -26,7 +26,7 @@
+ #include "ui/events/event_switches.h"
+ #include "ui/gfx/screen.h"
+
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(__GLIBC__) && !defined(OS_CHROMEOS)
+ #include <gnu/libc-version.h>
+
+ #include "base/version.h"
+--- ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig
++++ ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+@@ -116,7 +116,7 @@
+ }
+
+ void RecordLinuxGlibcVersion() {
+-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
++#if defined(__GLIBC__) && !defined(OS_CHROMEOS)
+ Version version(gnu_get_libc_version());
+
+ UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
+@@ -140,7 +140,7 @@
+ #endif
+ }
+
+-#if defined(USE_X11) && !defined(OS_CHROMEOS)
++#if defined(__GLIBC__) && defined(USE_X11) && !defined(OS_CHROMEOS)
+ UMALinuxWindowManager GetLinuxWindowManager() {
+ switch (ui::GuessWindowManager()) {
+ case ui::WM_UNKNOWN:
+@@ -239,7 +239,7 @@
+
+ void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() {
+ RecordLinuxGlibcVersion();
+-#if defined(USE_X11) && !defined(OS_CHROMEOS)
++#if defined(__GLIBC__) && defined(USE_X11) && !defined(OS_CHROMEOS)
+ UMA_HISTOGRAM_ENUMERATION("Linux.WindowManager",
+ GetLinuxWindowManager(),
+ UMA_LINUX_WINDOW_MANAGER_COUNT);
+--- ./third_party/ffmpeg/libavutil/autorename_libavutil_cpu.c.orig
++++ ./third_party/ffmpeg/libavutil/autorename_libavutil_cpu.c
+@@ -38,7 +38,6 @@
+ #include <sys/param.h>
+ #endif
+ #include <sys/types.h>
+-#include <sys/sysctl.h>
+ #endif
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+--- ./device/serial/serial_io_handler_posix.cc.orig
++++ ./device/serial/serial_io_handler_posix.cc
+@@ -6,6 +6,7 @@
+
+ #include <sys/ioctl.h>
+ #include <termios.h>
++#include <asm-generic/ioctls.h>
+
+ #include "base/posix/eintr_wrapper.h"
+