diff options
| -rw-r--r-- | src/symbol.c | 12 |
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); |
