diff --git a/src/emacs.c b/src/emacs.c index 7e6ac1413fc..05b044f57cf 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1095,6 +1095,24 @@ the Bugs section of the Emacs manual or the file BUGS.\n", argv[0]); #endif } + /* Gerd Moellmann says this makes profiling work on + FreeBSD. It might work on some other systems too. + Give it a try and tell me if it works on your system. */ +#ifdef __FreeBSD__ +#ifdef PROFILING + if (initialized) + { + extern void _mcleanup (); + extern char etext; + extern void clear_glyph_matrix (); + atexit (_mcleanup); + monstartup (clear_glyph_matrix, &etext); + } + else + moncontrol (0); +#endif +#endif + initialized = 1; #ifdef LOCALTIME_CACHE