Include more basic internal headers from hb-private.hh
diff --git a/src/hb-blob-private.hh b/src/hb-blob-private.hh
index b72fa72..56a7b66 100644
--- a/src/hb-blob-private.hh
+++ b/src/hb-blob-private.hh
@@ -31,8 +31,6 @@
 
 #include "hb-private.hh"
 
-#include "hb-object-private.hh"
-
 
 /*
  * hb_blob_t
diff --git a/src/hb-blob.cc b/src/hb-blob.cc
index b509093..5bab1ab 100644
--- a/src/hb-blob.cc
+++ b/src/hb-blob.cc
@@ -31,7 +31,6 @@
 #endif
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-blob-private.hh"
 
 #ifdef HAVE_SYS_MMAN_H
diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh
index dd6f1dc..f458140 100644
--- a/src/hb-buffer-private.hh
+++ b/src/hb-buffer-private.hh
@@ -31,7 +31,6 @@
 #define HB_BUFFER_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-object-private.hh"
 #include "hb-unicode-private.hh"
 
 
diff --git a/src/hb-common.cc b/src/hb-common.cc
index ca2b327..243c216 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -28,8 +28,6 @@
 
 #include "hb-private.hh"
 
-#include "hb-mutex-private.hh"
-#include "hb-object-private.hh"
 
 #include <locale.h>
 #ifdef HAVE_XLOCALE_H
diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc
index 61f9c35..3bdc3f7 100644
--- a/src/hb-coretext.cc
+++ b/src/hb-coretext.cc
@@ -29,7 +29,6 @@
 #define HB_SHAPER coretext
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-shaper-impl-private.hh"
 
 #include "hb-coretext.h"
diff --git a/src/hb-directwrite.cc b/src/hb-directwrite.cc
index 187ab3f..7c68849 100644
--- a/src/hb-directwrite.cc
+++ b/src/hb-directwrite.cc
@@ -23,7 +23,6 @@
  */
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #define HB_SHAPER directwrite
 #include "hb-shaper-impl-private.hh"
 
diff --git a/src/hb-face-private.hh b/src/hb-face-private.hh
index 43e7b1c..fe3b8b2 100644
--- a/src/hb-face-private.hh
+++ b/src/hb-face-private.hh
@@ -31,7 +31,6 @@
 
 #include "hb-private.hh"
 
-#include "hb-object-private.hh"
 #include "hb-shaper-private.hh"
 #include "hb-shape-plan-private.hh"
 
diff --git a/src/hb-font-private.hh b/src/hb-font-private.hh
index 7ba16cd..9f657db 100644
--- a/src/hb-font-private.hh
+++ b/src/hb-font-private.hh
@@ -31,7 +31,6 @@
 
 #include "hb-private.hh"
 
-#include "hb-object-private.hh"
 #include "hb-face-private.hh"
 #include "hb-shaper-private.hh"
 
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 7caafba..6670d9a 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -28,7 +28,6 @@
  */
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 
 #include "hb-ft.h"
 
diff --git a/src/hb-map-private.hh b/src/hb-map-private.hh
index c4f2fc7..00f089e 100644
--- a/src/hb-map-private.hh
+++ b/src/hb-map-private.hh
@@ -28,7 +28,6 @@
 #define HB_MAP_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-object-private.hh"
 
 
 template <typename T>
diff --git a/src/hb-object-private.hh b/src/hb-object-private.hh
index fc48a91..95847b9 100644
--- a/src/hb-object-private.hh
+++ b/src/hb-object-private.hh
@@ -33,10 +33,6 @@
 #define HB_OBJECT_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
-
-#include "hb-atomic-private.hh"
-#include "hb-mutex-private.hh"
 
 
 /* reference_count */
diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh
index 59b8cc0..207f6e0 100644
--- a/src/hb-open-type-private.hh
+++ b/src/hb-open-type-private.hh
@@ -30,7 +30,6 @@
 #define HB_OPEN_TYPE_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-blob-private.hh"
 #include "hb-face-private.hh"
 
diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh
index ff9c565..21a8382 100644
--- a/src/hb-ot-layout-common-private.hh
+++ b/src/hb-ot-layout-common-private.hh
@@ -30,7 +30,6 @@
 #define HB_OT_LAYOUT_COMMON_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-ot-layout-private.hh"
 #include "hb-open-type-private.hh"
 #include "hb-set-private.hh"
diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh
index cbaa648..aed00f1 100644
--- a/src/hb-ot-layout-gsubgpos-private.hh
+++ b/src/hb-ot-layout-gsubgpos-private.hh
@@ -30,7 +30,6 @@
 #define HB_OT_LAYOUT_GSUBGPOS_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-buffer-private.hh"
 #include "hb-map-private.hh"
 #include "hb-ot-layout-gdef-table.hh"
diff --git a/src/hb-ot-shape-complex-arabic.cc b/src/hb-ot-shape-complex-arabic.cc
index 124a67f..b1cba1c 100644
--- a/src/hb-ot-shape-complex-arabic.cc
+++ b/src/hb-ot-shape-complex-arabic.cc
@@ -25,7 +25,6 @@
  */
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-ot-shape-complex-arabic-private.hh"
 #include "hb-ot-shape-private.hh"
 
diff --git a/src/hb-private.hh b/src/hb-private.hh
index fa9a1ae..4201fe6 100644
--- a/src/hb-private.hh
+++ b/src/hb-private.hh
@@ -948,7 +948,11 @@
 #endif
 
 
+/* Headers we include for everyone. Specifically ordered to resolve dependencies. */
+#include "hb-debug.hh"
+#include "hb-atomic-private.hh"
+#include "hb-mutex-private.hh"
 #include "hb-dsalgs.hh"
-
+#include "hb-object-private.hh"
 
 #endif /* HB_PRIVATE_HH */
diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh
index bdaf3f1a..032ddb1 100644
--- a/src/hb-set-private.hh
+++ b/src/hb-set-private.hh
@@ -28,7 +28,6 @@
 #define HB_SET_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-object-private.hh"
 
 
 /*
diff --git a/src/hb-shape-plan-private.hh b/src/hb-shape-plan-private.hh
index aa0413a..c2c4987 100644
--- a/src/hb-shape-plan-private.hh
+++ b/src/hb-shape-plan-private.hh
@@ -28,7 +28,6 @@
 #define HB_SHAPE_PLAN_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-object-private.hh"
 #include "hb-shaper-private.hh"
 
 
diff --git a/src/hb-shape-plan.cc b/src/hb-shape-plan.cc
index 6eeba2b..37ff1a6 100644
--- a/src/hb-shape-plan.cc
+++ b/src/hb-shape-plan.cc
@@ -25,7 +25,6 @@
  */
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #include "hb-shape-plan-private.hh"
 #include "hb-shaper-private.hh"
 #include "hb-font-private.hh"
diff --git a/src/hb-subset-input.cc b/src/hb-subset-input.cc
index 39c5ac4..74470fd 100644
--- a/src/hb-subset-input.cc
+++ b/src/hb-subset-input.cc
@@ -24,7 +24,6 @@
  * Google Author(s): Garret Rieger, Rod Sheeter, Behdad Esfahbod
  */
 
-#include "hb-object-private.hh"
 #include "hb-subset-private.hh"
 #include "hb-set-private.hh"
 
diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh
index f4b261d..7501294 100644
--- a/src/hb-subset-plan.hh
+++ b/src/hb-subset-plan.hh
@@ -32,7 +32,6 @@
 #include "hb-subset.h"
 #include "hb-subset-private.hh"
 
-#include "hb-object-private.hh"
 #include "hb-map-private.hh"
 
 struct hb_subset_plan_t
diff --git a/src/hb-subset.cc b/src/hb-subset.cc
index e860634..a65b58d 100644
--- a/src/hb-subset.cc
+++ b/src/hb-subset.cc
@@ -25,7 +25,6 @@
  */
 
 #include "hb-private.hh"
-#include "hb-object-private.hh"
 #include "hb-open-type-private.hh"
 
 #include "hb-subset-glyf.hh"
diff --git a/src/hb-unicode-private.hh b/src/hb-unicode-private.hh
index 5472ece..b2c203d 100644
--- a/src/hb-unicode-private.hh
+++ b/src/hb-unicode-private.hh
@@ -32,7 +32,6 @@
 #define HB_UNICODE_PRIVATE_HH
 
 #include "hb-private.hh"
-#include "hb-object-private.hh"
 
 
 extern HB_INTERNAL const uint8_t _hb_modified_combining_class[256];
diff --git a/src/hb-uniscribe.cc b/src/hb-uniscribe.cc
index 6d6afe8..b17fa31 100644
--- a/src/hb-uniscribe.cc
+++ b/src/hb-uniscribe.cc
@@ -25,7 +25,6 @@
  */
 
 #include "hb-private.hh"
-#include "hb-debug.hh"
 #define HB_SHAPER uniscribe
 #include "hb-shaper-impl-private.hh"
 
diff --git a/src/hb-warning.cc b/src/hb-warning.cc
index 8f322bc..f7a87b5 100644
--- a/src/hb-warning.cc
+++ b/src/hb-warning.cc
@@ -24,9 +24,7 @@
  * Google Author(s): Behdad Esfahbod
  */
 
-#include "hb-atomic-private.hh"
-#include "hb-mutex-private.hh"
-
+#include "hb-private.hh"
 
 #if defined(HB_ATOMIC_INT_NIL)
 #error "Could not find any system to define atomic_int macros, library WILL NOT be thread-safe"