Commit dcc19aac authored by Andreas Schwab's avatar Andreas Schwab
Browse files

Use __executable_start to find start of text segment for profiling

* emacs.c (main) [PROFILING]: Use __executable_start if defined to
find start of text segment.
* dispnew.c (safe_bcopy): Don't define if HAVE___EXECUTABLE_START
is defined.

* configure.in: Check for __executable_start.
parent 7bfa6d77
2010-07-25 Andreas Schwab <schwab@linux-m68k.org>
* configure.in: Check for __executable_start.
2010-07-24 Ken Brown <kbrown@cornell.edu>
* configure.in (LINKER, LIB_GCC): Remove cygwin special cases (Bug#6715)
......
......@@ -11190,7 +11190,7 @@ __fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
sendto recvfrom getsockopt setsockopt getsockname getpeername \
gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
cfmakeraw cfsetspeed isnan copysign
cfmakeraw cfsetspeed isnan copysign __executable_start
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
......
......@@ -2611,7 +2611,7 @@ __fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
sendto recvfrom getsockopt setsockopt getsockname getpeername \
gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
cfmakeraw cfsetspeed isnan copysign)
cfmakeraw cfsetspeed isnan copysign __executable_start)
AC_CHECK_HEADERS(sys/un.h)
......
2010-07-25 Andreas Schwab <schwab@linux-m68k.org>
 
* emacs.c (main) [PROFILING]: Use __executable_start if defined to
find start of text segment.
* dispnew.c (safe_bcopy): Don't define if HAVE___EXECUTABLE_START
is defined.
* callproc.c (set_initial_environment): Avoid unbalanced braces.
 
2010-07-25 Ken Brown <kbrown@cornell.edu>
......
......@@ -801,6 +801,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you want to use the X window system. */
#undef HAVE_X_WINDOWS
/* Define to 1 if you have the `__executable_start' function. */
#undef HAVE___EXECUTABLE_START
/* Define to 1 if you have the `__fpending' function. */
#undef HAVE___FPENDING
......
......@@ -436,7 +436,7 @@ DEFUN ("dump-redisplay-history", Fdump_redisplay_history,
#endif /* GLYPH_DEBUG == 0 */
#ifdef PROFILING
#if defined PROFILING && !HAVE___EXECUTABLE_START
/* FIXME: only used to find text start for profiling. */
void
......
......@@ -1747,9 +1747,18 @@ main (int argc, char **argv)
#else
extern char etext;
#endif
#ifdef HAVE___EXECUTABLE_START
/* This symbol is defined by GNU ld to the start of the text
segment. */
extern char __executable_start[];
#else
extern void safe_bcopy ();
#endif
atexit (_mcleanup);
#ifdef HAVE___EXECUTABLE_START
monstartup (__executable_start, &etext);
#else
/* This uses safe_bcopy because that function comes first in the
Emacs executable. It might be better to use something that
gives the start of the text segment, but start_of_text is not
......@@ -1757,6 +1766,7 @@ main (int argc, char **argv)
/* FIXME: Does not work on architectures with function
descriptors. */
monstartup (safe_bcopy, &etext);
#endif
}
else
moncontrol (0);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment