summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2013-01-28 13:57:10 -0800
committerAttila Molnar <attilamolnar@hush.com>2013-01-28 13:57:10 -0800
commit0cca0dbb8af9d9207ee99cb3e4762ee2acd1866e (patch)
tree20a538b2d41643f0bad0f771a46a0a25bbccf79f
parent2239d91ca7cfeadf18e1332b38d10434e344838f (diff)
parent2e04480f21298262daa5c6d9b0d1b24c52f00756 (diff)
Merge pull request #414 from SaberUK/insp20+hashmap
[2.0] 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 */