+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)
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"
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>
/* 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
#endif /* GLYPH_DEBUG == 0 */
-#ifdef PROFILING
+#if defined PROFILING && !HAVE___EXECUTABLE_START
/* FIXME: only used to find text start for profiling. */
void
#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
/* FIXME: Does not work on architectures with function
descriptors. */
monstartup (safe_bcopy, &etext);
+#endif
}
else
moncontrol (0);