Link with libgccdemangle.so for name demangling.
1. X86 target will also have name demangling feature.
2. Remove dependency on libiberty.so, since it will not come
with prebuilt toolchain in gcc-4.6 and after.
Change-Id: Iefbb021c5c3171b9467954eafa54046ad6805753
diff --git a/libcorkscrew/demangle.c b/libcorkscrew/demangle.c
index ecb2c98..54247cb 100644
--- a/libcorkscrew/demangle.c
+++ b/libcorkscrew/demangle.c
@@ -21,15 +21,10 @@
#include <cutils/log.h>
-#ifdef CORKSCREW_HAVE_LIBIBERTY
-// Defined in libiberty.a
-extern char *cplus_demangle(const char *mangled, int options);
-#endif
+extern char *__cxa_demangle (const char *mangled, char *buf, size_t *len,
+ int *status);
char* demangle_symbol_name(const char* name) {
-#ifdef CORKSCREW_HAVE_LIBIBERTY
- return name ? cplus_demangle(name, 0) : NULL;
-#else
- return NULL;
-#endif
+ // __cxa_demangle handles NULL by returning NULL
+ return __cxa_demangle(name, 0, 0, 0);
}