Various GCC 3.6 and clang build fixes.

Remove #error in common_test.h that fires with clang build and replace with
runtime error.
Fix bit rot caused by not compiling with Wthread-safety.
Fix clang build issues in compiler relating to missing header file definitions
in object files.
Other minor build and tidying issues.

Change-Id: Ife829ab0664581936155be524de46e6181c750b0
diff --git a/src/debugger.cc b/src/debugger.cc
index c92e43c..d7fac43 100644
--- a/src/debugger.cc
+++ b/src/debugger.cc
@@ -2378,11 +2378,12 @@
 // cause suspension if the thread is the current thread.
 class ScopedThreadSuspension {
  public:
-  ScopedThreadSuspension(Thread* self, JDWP::ObjectId thread_id) :
+  ScopedThreadSuspension(Thread* self, JDWP::ObjectId thread_id)
+      SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) :
       thread_(NULL),
       error_(JDWP::ERR_NONE),
       self_suspend_(false),
-      other_suspend_(false) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
+      other_suspend_(false) {
     ScopedObjectAccessUnchecked soa(self);
     {
       MutexLock mu(soa.Self(), *Locks::thread_list_lock_);