mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
get return address better on sparc etc.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32476 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
521dad38e1
commit
0455a28cd3
5 changed files with 6184 additions and 5548 deletions
|
@ -4,6 +4,10 @@
|
|||
allowed for threads to do their job, to minimise the chance of a
|
||||
heavily loaded machine giving a wrong result because threads
|
||||
don't get scheduled in time.
|
||||
* configure.ac: check for stck return address extraction
|
||||
* configure: regenerate
|
||||
* Headers/Additions/GNUstepBase/config.h.in: regenerate
|
||||
* Source/NSDebug.m: use function to get return address.
|
||||
|
||||
2011-03-06 Thomas Gamper <icicle@cg.tuwien.ac.at>
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
/* Headers/Additions/GNUstepBase/config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||
|
||||
/* The normal alignment of `pthread_cond_t', in bytes. */
|
||||
#undef ALIGNOF_PTHREAD_COND_T
|
||||
|
||||
|
@ -466,7 +469,7 @@
|
|||
/* Define to 1 if you have the `sigsetjmp' function. */
|
||||
#undef HAVE_SIGSETJMP
|
||||
|
||||
/* Define to 1 if you have the `sleep' function. */
|
||||
/* Define to 1 if you have the `Sleep' function. */
|
||||
#undef HAVE_SLEEP
|
||||
|
||||
/* Define to 1 if the system has the type `socklen_t'. */
|
||||
|
@ -666,6 +669,9 @@
|
|||
/* Define to 1 if you have the <zlib.h> header file. */
|
||||
#undef HAVE_ZLIB_H
|
||||
|
||||
/* Define to 1 if you have the `__builtin_extract_return_address' function. */
|
||||
#undef HAVE___BUILTIN_EXTRACT_RETURN_ADDRESS
|
||||
|
||||
/* Define if your system needs to have short/int word aligned */
|
||||
#undef NEED_WORD_ALIGNMENT
|
||||
|
||||
|
@ -729,26 +735,44 @@
|
|||
/* Define if using the libffi library for invocations */
|
||||
#undef USE_LIBFFI
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
|
||||
|
||||
/* Define if vasprintf returns the length printed */
|
||||
#undef VASPRINTF_RETURNS_LENGTH
|
||||
|
||||
/* Define if vsprintf returns the length printed */
|
||||
#undef VSPRINTF_RETURNS_LENGTH
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
#undef WORDS_BIGENDIAN
|
||||
|
||||
/* Define to 1 if on AIX 3.
|
||||
System headers sometimes define this.
|
||||
We just want to avoid a redefinition error message. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||
# if defined __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
# ifndef WORDS_BIGENDIAN
|
||||
# undef WORDS_BIGENDIAN
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
|
@ -761,17 +785,6 @@
|
|||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
#undef _POSIX_SOURCE
|
||||
|
||||
/* Enable extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
|
|
|
@ -832,12 +832,15 @@ GSDebugAllocationListRecordedObjects(Class c)
|
|||
return answer;
|
||||
}
|
||||
|
||||
#if !defined(HAVE_BUILTIN_EXTRACT_RETURN_ADDRESS)
|
||||
# define __builtin_extract_return_address(X) X
|
||||
#endif
|
||||
|
||||
#define _NS_FRAME_HACK(a) \
|
||||
case a: env->addr = __builtin_frame_address(a + 1); break;
|
||||
#define _NS_RETURN_HACK(a) \
|
||||
case a: env->addr = (_NS_FRAME_HACK(a) ? __builtin_extract_return_address \
|
||||
(__builtin_return_address(a + 1)) : 0); break;
|
||||
case a: env->addr = (__builtin_frame_address(a + 1) ? \
|
||||
__builtin_extract_return_address(__builtin_return_address(a + 1)) : 0); break;
|
||||
|
||||
/*
|
||||
* The following horrible signal handling code is a workaround for the fact
|
||||
|
|
|
@ -1858,6 +1858,7 @@ else
|
|||
AC_CHECK_HEADERS(execinfo.h)
|
||||
AC_CHECK_FUNCS(backtrace)
|
||||
fi
|
||||
AC_CHECK_FUNCS(__builtin_extract_return_address)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# These headers/functions needed by NSLog.m
|
||||
|
|
Loading…
Reference in a new issue