summaryrefslogtreecommitdiff
path: root/extra/chromium/musl-tid-caching.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/chromium/musl-tid-caching.patch')
-rw-r--r--extra/chromium/musl-tid-caching.patch81
1 files changed, 0 insertions, 81 deletions
diff --git a/extra/chromium/musl-tid-caching.patch b/extra/chromium/musl-tid-caching.patch
deleted file mode 100644
index bb83038..0000000
--- a/extra/chromium/musl-tid-caching.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- ./sandbox/linux/services/namespace_sandbox.cc.orig
-+++ ./sandbox/linux/services/namespace_sandbox.cc
-@@ -209,6 +209,70 @@
- return base::LaunchProcess(argv, launch_options_copy);
- }
-
-+#if defined(__aarch64__)
-+#define TLS_ABOVE_TP
-+#endif
-+
-+struct musl_pthread
-+{
-+ /* Part 1 -- these fields may be external or
-+ * internal (accessed via asm) ABI. Do not change. */
-+ struct pthread *self;
-+#ifndef TLS_ABOVE_TP
-+ uintptr_t *dtv;
-+#endif
-+ struct pthread *prev, *next; /* non-ABI */
-+ uintptr_t sysinfo;
-+#ifndef TLS_ABOVE_TP
-+#ifdef CANARY_PAD
-+ uintptr_t canary_pad;
-+#endif
-+ uintptr_t canary;
-+#endif
-+
-+/* Part 2 -- implementation details, non-ABI. */
-+ int tid;
-+ int errno_val;
-+ volatile int detach_state;
-+ volatile int cancel;
-+ volatile unsigned char canceldisable, cancelasync;
-+ unsigned char tsd_used:1;
-+ unsigned char dlerror_flag:1;
-+ unsigned char *map_base;
-+ size_t map_size;
-+ void *stack;
-+ size_t stack_size;
-+ size_t guard_size;
-+ void *result;
-+ struct __ptcb *cancelbuf;
-+ void **tsd;
-+ struct {
-+ volatile void *volatile head;
-+ long off;
-+ volatile void *volatile pending;
-+ } robust_list;
-+ int h_errno_val;
-+ volatile int timer_id;
-+ locale_t locale;
-+ volatile int killlock[1];
-+ char *dlerror_buf;
-+ void *stdio_locks;
-+
-+ /* Part 3 -- the positions of these fields relative to
-+ * the end of the structure is external and internal ABI. */
-+#ifdef TLS_ABOVE_TP
-+ uintptr_t canary;
-+ uintptr_t *dtv;
-+#endif
-+};
-+
-+void MaybeUpdateMuslTidCache()
-+{
-+ pid_t real_tid = sys_gettid();
-+ pid_t* cached_tid_location = &reinterpret_cast<struct musl_pthread*>(pthread_self())->tid;
-+ *cached_tid_location = real_tid;
-+}
-+
- // static
- pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) {
- const pid_t pid =
-@@ -226,6 +290,7 @@
- #if defined(LIBC_GLIBC)
- MaybeUpdateGlibcTidCache();
- #endif
-+ MaybeUpdateMuslTidCache();
- return 0;
- }
-