diff --git a/PATCHES b/PATCHES
index 9fecb83..963c8b1 100644
--- a/PATCHES
+++ b/PATCHES
@@ -312,3 +312,23 @@
 [787dd92] APPLIED rdar://30568673
 [ba4cac5] APPLIED rdar://30568673
 [7974138] APPLIED rdar://30568673
+[cd12dcb] APPLIED rdar://32283666
+[ff05109] APPLIED rdar://32283666
+[73315ee] APPLIED rdar://32283666
+[fcc1924] APPLIED rdar://32283666
+[272e818] APPLIED rdar://32283666
+[b6f8908] APPLIED rdar://32283666
+[a6c16d0] APPLIED rdar://32283666
+[1cc64e1] APPLIED rdar://32283666
+[d137aa4] APPLIED rdar://32283666
+[a69853f] APPLIED rdar://32283666
+[eea0667] APPLIED rdar://32283666
+[f84d21d] APPLIED rdar://32283666
+[3da8398] APPLIED rdar://32283666
+[2df80a3] APPLIED rdar://32283666
+[97a2f06] APPLIED rdar://32283666
+[f76b8f5] APPLIED rdar://32283666
+[3828fbb] APPLIED rdar://32283666
+[5e8789e] APPLIED rdar://32283666
+[3fba60a] APPLIED rdar://32283666
+[d6eb245] APPLIED rdar://32283666
diff --git a/dispatch/dispatch.h b/dispatch/dispatch.h
index a0622e6..6f8b31b 100644
--- a/dispatch/dispatch.h
+++ b/dispatch/dispatch.h
@@ -24,30 +24,17 @@
 #ifdef __APPLE__
 #include <Availability.h>
 #include <TargetConditionals.h>
-#else
-#ifndef API_AVAILABLE
-#define API_AVAILABLE(...)
+#include <os/base.h>
+#elif defined(__linux__)
+#include <os/linux_base.h>
 #endif
-#ifndef API_DEPRECATED
-#define API_DEPRECATED(...)
-#endif
-#ifndef API_UNAVAILABLE
-#define API_UNAVAILABLE(...)
-#endif
-#ifndef API_DEPRECATED_WITH_REPLACEMENT
-#define API_DEPRECATED_WITH_REPLACEMENT(...)
-#endif
-#endif // __APPLE__
 
-#if HAVE_SYS_CDEFS_H
-#include <sys/cdefs.h>
-#endif
 #include <sys/types.h>
 #include <stddef.h>
 #include <stdint.h>
 #include <stdbool.h>
 #include <stdarg.h>
-#if HAVE_UNISTD_H
+#if !defined(HAVE_UNISTD_H) || HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <fcntl.h>
diff --git a/os/linux_base.h b/os/linux_base.h
index d0048d6..c8b9cad 100644
--- a/os/linux_base.h
+++ b/os/linux_base.h
@@ -15,6 +15,23 @@
 
 #include <sys/param.h>
 
+#if HAVE_SYS_CDEFS_H
+#include <sys/cdefs.h>
+#endif
+
+#ifndef API_AVAILABLE
+#define API_AVAILABLE(...)
+#endif
+#ifndef API_DEPRECATED
+#define API_DEPRECATED(...)
+#endif
+#ifndef API_UNAVAILABLE
+#define API_UNAVAILABLE(...)
+#endif
+#ifndef API_DEPRECATED_WITH_REPLACEMENT
+#define API_DEPRECATED_WITH_REPLACEMENT(...)
+#endif
+
 #if __GNUC__
 #define OS_EXPECT(x, v) __builtin_expect((x), (v))
 #define OS_UNUSED __attribute__((__unused__))
diff --git a/os/object.h b/os/object.h
index b98a93e..100721f 100644
--- a/os/object.h
+++ b/os/object.h
@@ -23,13 +23,11 @@
 
 #ifdef __APPLE__
 #include <Availability.h>
-#include <TargetConditionals.h>
 #include <os/availability.h>
-#endif
-#ifdef __linux__
-#include <os/linux_base.h>
-#else
+#include <TargetConditionals.h>
 #include <os/base.h>
+#elif defined(__linux__)
+#include <os/linux_base.h>
 #endif
 
 /*!
diff --git a/os/object_private.h b/os/object_private.h
index ebaf854..2f8cdf4 100644
--- a/os/object_private.h
+++ b/os/object_private.h
@@ -27,15 +27,9 @@
 #ifndef __OS_OBJECT_PRIVATE__
 #define __OS_OBJECT_PRIVATE__
 
-#if HAVE_SYS_CDEFS_H
-#include <sys/cdefs.h>
-#endif
-#include <stddef.h>
 #include <os/object.h>
-
-#ifndef API_AVAILABLE
-#define API_AVAILABLE(...)
-#endif
+#include <stddef.h>
+#include <stdint.h>
 
 #if __GNUC__
 #define OS_OBJECT_NOTHROW __attribute__((__nothrow__))
diff --git a/src/apply.c b/src/apply.c
index 0f1d85d..40e6f32 100644
--- a/src/apply.c
+++ b/src/apply.c
@@ -234,20 +234,21 @@
 	if (slowpath(iterations == 0)) {
 		return;
 	}
-	int32_t thr_cnt = dispatch_hw_config(active_cpus);
-	dispatch_thread_context_t dtctxt = _dispatch_thread_context_find(_dispatch_apply_key);
+	int32_t thr_cnt = (int32_t)dispatch_hw_config(active_cpus);
+	dispatch_thread_context_t dtctxt =
+			_dispatch_thread_context_find(_dispatch_apply_key);
 	size_t nested = dtctxt ? dtctxt->dtc_apply_nesting : 0;
 	dispatch_queue_t old_dq = _dispatch_queue_get_current();
 
 	if (!slowpath(nested)) {
 		nested = iterations;
 	} else {
-		thr_cnt = nested < thr_cnt ? thr_cnt / nested : 1;
+		thr_cnt = nested < (size_t)thr_cnt ? thr_cnt / (int32_t)nested : 1;
 		nested = nested < DISPATCH_APPLY_MAX && iterations < DISPATCH_APPLY_MAX
 				? nested * iterations : DISPATCH_APPLY_MAX;
 	}
-	if (iterations < thr_cnt) {
-		thr_cnt = iterations;
+	if (iterations < (size_t)thr_cnt) {
+		thr_cnt = (int32_t)iterations;
 	}
 	if (slowpath(dq == DISPATCH_APPLY_CURRENT_ROOT_QUEUE)) {
 		dq = old_dq ? old_dq : _dispatch_get_root_queue(
diff --git a/src/init.c b/src/init.c
index 4ccb1f2..22a61e3 100644
--- a/src/init.c
+++ b/src/init.c
@@ -92,7 +92,7 @@
 	r |= sigdelset(&mask, SIGPIPE);
 	r |= sigdelset(&mask, SIGPROF);
 	r |= pthread_sigmask(SIG_BLOCK, &mask, NULL);
-	(void)dispatch_assume_zero(r);
+	return dispatch_assume_zero(r);
 }
 
 #pragma mark -
diff --git a/src/inline_internal.h b/src/inline_internal.h
index d76b77a..53548ed 100644
--- a/src/inline_internal.h
+++ b/src/inline_internal.h
@@ -592,18 +592,18 @@
 }
 
 DISPATCH_ALWAYS_INLINE
-static inline uint32_t
+static inline int32_t
 _dq_state_extract_width_bits(uint64_t dq_state)
 {
 	dq_state &= DISPATCH_QUEUE_WIDTH_MASK;
-	return (uint32_t)(dq_state >> DISPATCH_QUEUE_WIDTH_SHIFT);
+	return (int32_t)(dq_state >> DISPATCH_QUEUE_WIDTH_SHIFT);
 }
 
 DISPATCH_ALWAYS_INLINE
-static inline uint32_t
+static inline int32_t
 _dq_state_available_width(uint64_t dq_state)
 {
-	uint32_t full = DISPATCH_QUEUE_WIDTH_FULL;
+	int32_t full = DISPATCH_QUEUE_WIDTH_FULL;
 	if (likely(!(dq_state & DISPATCH_QUEUE_WIDTH_FULL_BIT))) {
 		return full - _dq_state_extract_width_bits(dq_state);
 	}
@@ -611,11 +611,11 @@
 }
 
 DISPATCH_ALWAYS_INLINE
-static inline uint32_t
+static inline int32_t
 _dq_state_used_width(uint64_t dq_state, uint16_t dq_width)
 {
-	uint32_t full = DISPATCH_QUEUE_WIDTH_FULL;
-	uint32_t width = _dq_state_extract_width_bits(dq_state);
+	int32_t full = DISPATCH_QUEUE_WIDTH_FULL;
+	int32_t width = _dq_state_extract_width_bits(dq_state);
 
 	if (dq_state & DISPATCH_QUEUE_PENDING_BARRIER) {
 		// DISPATCH_QUEUE_PENDING_BARRIER means (dq_width - 1) of the used width
@@ -1030,21 +1030,21 @@
  * possibly 0
  */
 DISPATCH_ALWAYS_INLINE DISPATCH_WARN_RESULT
-static inline uint32_t
-_dispatch_queue_try_reserve_apply_width(dispatch_queue_t dq, uint32_t da_width)
+static inline int32_t
+_dispatch_queue_try_reserve_apply_width(dispatch_queue_t dq, int32_t da_width)
 {
 	uint64_t old_state, new_state;
-	uint32_t width;
+	int32_t width;
 
 	(void)os_atomic_rmw_loop2o(dq, dq_state, old_state, new_state, relaxed, {
-		width = _dq_state_available_width(old_state);
+		width = (int32_t)_dq_state_available_width(old_state);
 		if (unlikely(!width)) {
 			os_atomic_rmw_loop_give_up(return 0);
 		}
 		if (width > da_width) {
 			width = da_width;
 		}
-		new_state = old_state + width * DISPATCH_QUEUE_WIDTH_INTERVAL;
+		new_state = old_state + (uint64_t)width * DISPATCH_QUEUE_WIDTH_INTERVAL;
 	});
 	return width;
 }
@@ -1055,10 +1055,10 @@
  */
 DISPATCH_ALWAYS_INLINE
 static inline void
-_dispatch_queue_relinquish_width(dispatch_queue_t dq, uint32_t da_width)
+_dispatch_queue_relinquish_width(dispatch_queue_t dq, int32_t da_width)
 {
 	(void)os_atomic_sub2o(dq, dq_state,
-			da_width * DISPATCH_QUEUE_WIDTH_INTERVAL, relaxed);
+			(uint64_t)da_width * DISPATCH_QUEUE_WIDTH_INTERVAL, relaxed);
 }
 
 /* Used by target-queue recursing code
@@ -1474,7 +1474,7 @@
 DISPATCH_ALWAYS_INLINE
 static inline void
 _dispatch_root_queue_push_inline(dispatch_queue_t dq, dispatch_object_t _head,
-		dispatch_object_t _tail, unsigned int n)
+		dispatch_object_t _tail, int n)
 {
 	struct dispatch_object_s *head = _head._do, *tail = _tail._do;
 	if (unlikely(_dispatch_queue_push_update_tail_list(dq, head, tail))) {
diff --git a/src/queue.c b/src/queue.c
index 33ebfdf..6d74b79 100644
--- a/src/queue.c
+++ b/src/queue.c
@@ -695,7 +695,7 @@
 {
 	dispatch_pthread_root_queue_context_t pqc = qc->dgq_ctxt;
 	int32_t thread_pool_size = overcommit ? DISPATCH_WORKQ_MAX_PTHREAD_COUNT :
-			dispatch_hw_config(active_cpus);
+			(int32_t)dispatch_hw_config(active_cpus);
 	if (slowpath(pool_size) && pool_size < thread_pool_size) {
 		thread_pool_size = pool_size;
 	}
diff --git a/src/shims.h b/src/shims.h
index fe9c3e4..8dd23ee 100644
--- a/src/shims.h
+++ b/src/shims.h
@@ -50,7 +50,7 @@
 #endif // HAVE_PTHREAD_WORKQUEUES
 
 #if DISPATCH_USE_INTERNAL_WORKQUEUE
-#include <event/workqueue_internal.h>
+#include "event/workqueue_internal.h"
 #endif
 
 #if HAVE_PTHREAD_NP_H
diff --git a/src/trace.h b/src/trace.h
index 3572204..872cd6f 100644
--- a/src/trace.h
+++ b/src/trace.h
@@ -132,7 +132,7 @@
 DISPATCH_ALWAYS_INLINE
 static inline void
 _dispatch_trace_root_queue_push_list(dispatch_queue_t dq,
-		dispatch_object_t _head, dispatch_object_t _tail, unsigned int n)
+		dispatch_object_t _head, dispatch_object_t _tail, int n)
 {
 	if (slowpath(DISPATCH_QUEUE_PUSH_ENABLED())) {
 		struct dispatch_object_s *dou = _head._do;
