diff --git a/lib/System/AIX/Signals.cpp b/lib/System/AIX/Signals.cpp
deleted file mode 100644
index ffb16f69c0f..00000000000
--- a/lib/System/AIX/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- AIX/Signals.cpp - AIX Signals Implementation -------------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the AIX specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "../Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only AIX specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/Cygwin/Signals.cpp b/lib/System/Cygwin/Signals.cpp
deleted file mode 100644
index eb514167d6d..00000000000
--- a/lib/System/Cygwin/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- Cygwin/Signals.cpp - Cygwin Signals Implementation -------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Cygwin specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Cygwin specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/Darwin/Signals.cpp b/lib/System/Darwin/Signals.cpp
deleted file mode 100644
index 2962032d94a..00000000000
--- a/lib/System/Darwin/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- Darwin/Signals.cpp - Darwin Signals Implementation -------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Darwin specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "../Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Darwin specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/FreeBSD/Signals.cpp b/lib/System/FreeBSD/Signals.cpp
deleted file mode 100644
index 7fd20cc600c..00000000000
--- a/lib/System/FreeBSD/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- FreeBSD/Signals.cpp - FreeBSD Signals Implementation -----*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the FreeBSD specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "../Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only FreeBSD specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/Interix/Signals.cpp b/lib/System/Interix/Signals.cpp
deleted file mode 100644
index 9f6db171efc..00000000000
--- a/lib/System/Interix/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- Interix/Signals.cpp - Interix Signals Implementation -----*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Interix specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "../Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Interix specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/Linux/Signals.cpp b/lib/System/Linux/Signals.cpp
deleted file mode 100644
index 2c070173347..00000000000
--- a/lib/System/Linux/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- Linux/Signals.cpp - Linux Signals Implementation ---------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the Linux specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "../Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only Linux specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/Signals.cpp b/lib/System/Signals.cpp
index 9ba81d3624d..4d88e642e3a 100644
--- a/lib/System/Signals.cpp
+++ b/lib/System/Signals.cpp
@@ -13,6 +13,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/System/Signals.h"
+#include "llvm/Config/config.h"
 
 namespace llvm {
 using namespace sys;
@@ -25,6 +26,11 @@ using namespace sys;
 }
 
 // Include the platform-specific parts of this class.
-#include "platform/Signals.cpp"
+#ifdef LLVM_ON_UNIX
+#include "Unix/Signals.cpp"
+#endif
+#ifdef LLVM_ON_WIN32
+#include "Win32/Signals.cpp"
+#endif
 
 // vim: sw=2 smartindent smarttab tw=80 autoindent expandtab
diff --git a/lib/System/SunOS/Signals.cpp b/lib/System/SunOS/Signals.cpp
deleted file mode 100644
index 8c8c8f43384..00000000000
--- a/lib/System/SunOS/Signals.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//===- SunOS/Signals.cpp - SunOS Signals Implementation ---------*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by Reid Spencer and is distributed under the 
-// University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file provides the SunOS specific implementation of the Signals class.
-//
-//===----------------------------------------------------------------------===//
-
-// Include the generic unix implementation
-#include "../Unix/Signals.cpp"
-
-namespace llvm {
-using namespace sys;
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only SunOS specific code 
-//===          and must not be generic UNIX code (see ../Unix/Signals.cpp)
-//===----------------------------------------------------------------------===//
-
-}
-
-// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab