Changes to build successfully with GCC 3.02

llvm-svn: 1503
diff --git a/llvm/include/Support/HashExtras.h b/llvm/include/Support/HashExtras.h
index 6ea831e..d7e48a3 100644
--- a/llvm/include/Support/HashExtras.h
+++ b/llvm/include/Support/HashExtras.h
@@ -11,7 +11,10 @@
 #define LLVM_SUPPORT_HASHEXTRAS_H
 
 #include <string>
-#include <hash_map>
+#include <ext/hash_map>
+
+// Cannot specialize hash template from outside of the std namespace.
+namespace std {
 
 template <> struct hash<string> {
   size_t operator()(string const &str) const {
@@ -24,4 +27,6 @@
   inline size_t operator()(const T *Val) const { return (size_t)Val; }
 };
 
+}  // End namespace std
+
 #endif