summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/symbol.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/symbol.c b/src/symbol.c
index df7d169..a6f8633 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -44,12 +44,14 @@ static int compare(const void *a, const void *b)
if (!sym_a || !sym_b)
return 1;
-/* XXX There's a glibc bug/feature causing the symbol to
- * have different value in plt entry/exit.. so using name
- * check instead.. so far.. ;) */
-
+/* There's a glibc bug causing the symbol to have
+ * different value in plt entry/exit.. so using name
+ * check instead.. this is fixed in glibc 2.14 */
+#if (__GLIBC__ == 2 && __GLIBC_MINOR__ < 14)
#define SEARCH_NAME
-#undef SEARCH_PTR
+#else
+#define SEARCH_PTR
+#endif
#ifdef SEARCH_NAME
return strcmp(sym_a->name, sym_b->name);