summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2013-01-04 18:22:29 +0000
committerPeter Powell <petpow@saberuk.com>2013-01-28 21:38:03 +0000
commit2e04480f21298262daa5c6d9b0d1b24c52f00756 (patch)
treed5bd4f4eef49f5ded32c2ebcf3ca96693b81d748
parent6e3bba315de0db07e6224634ebc1fdfc55a06dd8 (diff)
Use the preprocessor to detect whether hash_map is available.
-rwxr-xr-xconfigure9
-rw-r--r--include/hash_map.h10
2 files changed, 6 insertions, 13 deletions
diff --git a/configure b/configure
index 8f9f20350..cd5cf4258 100755
--- a/configure
+++ b/configure
@@ -904,15 +904,6 @@ print FILEHANDLE "#define MAXBUF " . ($config{MAXBUF}+2) . "\n";
if ($config{GCCVER} >= 3) {
print FILEHANDLE "#define GCC3\n";
}
- if (
- (($config{GCCVER} == 4) && ($config{GCCMINOR} >= 3))
- ||
- ($config{GCCVER} > 4)
- || # HACK: temporary fix for non-GCC (i.e. clang) builds
- ($config{CC} !~ /gcc/)
- ) {
- print FILEHANDLE "#define HASHMAP_DEPRECATED\n";
- }
if ($config{HAS_STRLCPY} eq "true") {
print FILEHANDLE "#define HAS_STRLCPY\n";
}
diff --git a/include/hash_map.h b/include/hash_map.h
index 6be2da6ca..1b43f0118 100644
--- a/include/hash_map.h
+++ b/include/hash_map.h
@@ -22,17 +22,19 @@
#ifndef INSPIRCD_HASHMAP_H
#define INSPIRCD_HASHMAP_H
-
-#include "inspircd_config.h"
-
+
/** Where hash_map is varies from compiler to compiler
* as it is not standard unless we have tr1.
+ *
+ * TODO: in 2.2 if we drop support for libstdc++ older than 3.4.7 and GCC older
+ * than 4.1 this can be cleaned up massively.
*/
#ifndef _WIN32
- #ifdef HASHMAP_DEPRECATED
+ #if __GLIBCXX__ > 20060309
// GCC4+ has deprecated hash_map and uses tr1. But of course, uses a different include to MSVC. FOR FUCKS SAKE.
#include <tr1/unordered_map>
#define HAS_TR1_UNORDERED
+ #define HASHMAP_DEPRECATED
#else
#include <ext/hash_map>
/** Oddball linux namespace for hash_map */