Add MOZ_DEMANGLE_SYMBOLS to debug builds for demangling symbols.

This commit is contained in:
ramiro%netscape.com 1999-09-14 13:30:12 +00:00
Родитель eb5fb78483
Коммит 6f3fcfb2ba
4 изменённых файлов: 40 добавлений и 8 удалений

Просмотреть файл

@ -249,6 +249,8 @@ MDDEPDIR := @MDDEPDIR@
MOZ_DISABLE_DTD_DEBUG = @MOZ_DISABLE_DTD_DEBUG@
MOZ_DEMANGLE_SYMBOLS = @MOZ_DEMANGLE_SYMBOLS@
# For the use of the Fullcircle Talkback tool, if available.
MOZ_FULLCIRCLE = @MOZ_FULLCIRCLE@
FULLCIRCLE_LIBS = @FULLCIRCLE_LIBS@

Просмотреть файл

@ -2600,6 +2600,36 @@ MOZ_ARG_ENABLE_BOOL(efence,
[ --enable-efence Link with Electric Fence if available (default=no) ],
AC_CHECK_LIB(efence,malloc))
dnl ========================================================
dnl =
dnl = MOZ_DEMANGLE_UNDEFINED_SYMBOLS
dnl =
dnl = Support for demangling undefined symbols
dnl =
dnl ========================================================
MOZ_DEMANGLE_SYMBOLS=
case "$target" in
*-linux*)
# Demangle only for debug builds
if test "$MOZ_DEBUG"
then
MOZ_DEMANGLE_SYMBOLS=1
AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
fi
;;
esac
AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
dnl ========================================================
dnl =
dnl = End MOZ_DEMANGLE_SYMBOLS
dnl =
dnl ========================================================
dnl ========================================================
dnl =
dnl = Misc. Options

Просмотреть файл

@ -499,10 +499,10 @@ nsTraceRefcnt::LogRelease(void* aPtr,
// This thing is exported by libiberty.a (-liberty)
// Yes, this is a gcc only hack
#if defined(MOZ_DEMANGLE_UNDEFINED_SYMBOLS)
#if defined(MOZ_DEMANGLE_SYMBOLS)
extern "C" char * cplus_demangle(const char *,int);
#include <stdlib.h> // for free()
#endif // MOZ_DEMANGLE_UNDEFINED_SYMBOLS
#endif // MOZ_DEMANGLE_SYMBOLS
#ifdef __linux__
NS_COM void
@ -516,7 +516,7 @@ nsTraceRefcnt::DemangleSymbol(const char * aSymbol,
aBuffer[0] = '\0';
#if defined(MOZ_DEMANGLE_UNDEFINED_SYMBOLS)
#if defined(MOZ_DEMANGLE_SYMBOLS)
/* See demangle.h in the gcc source for the voodoo */
char * demangled = cplus_demangle(aSymbol,3);
@ -526,7 +526,7 @@ nsTraceRefcnt::DemangleSymbol(const char * aSymbol,
free(demangled);
}
#endif // MOZ_DEMANGLE_UNDEFINED_SYMBOLS
#endif // MOZ_DEMANGLE_SYMBOLS
}
#else // __linux__
NS_COM void

Просмотреть файл

@ -499,10 +499,10 @@ nsTraceRefcnt::LogRelease(void* aPtr,
// This thing is exported by libiberty.a (-liberty)
// Yes, this is a gcc only hack
#if defined(MOZ_DEMANGLE_UNDEFINED_SYMBOLS)
#if defined(MOZ_DEMANGLE_SYMBOLS)
extern "C" char * cplus_demangle(const char *,int);
#include <stdlib.h> // for free()
#endif // MOZ_DEMANGLE_UNDEFINED_SYMBOLS
#endif // MOZ_DEMANGLE_SYMBOLS
#ifdef __linux__
NS_COM void
@ -516,7 +516,7 @@ nsTraceRefcnt::DemangleSymbol(const char * aSymbol,
aBuffer[0] = '\0';
#if defined(MOZ_DEMANGLE_UNDEFINED_SYMBOLS)
#if defined(MOZ_DEMANGLE_SYMBOLS)
/* See demangle.h in the gcc source for the voodoo */
char * demangled = cplus_demangle(aSymbol,3);
@ -526,7 +526,7 @@ nsTraceRefcnt::DemangleSymbol(const char * aSymbol,
free(demangled);
}
#endif // MOZ_DEMANGLE_UNDEFINED_SYMBOLS
#endif // MOZ_DEMANGLE_SYMBOLS
}
#else // __linux__
NS_COM void