summaryrefslogtreecommitdiffstats
path: root/lib/libc/gmon
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-05-05 07:56:21 +0000
committerpeter <peter@FreeBSD.org>1996-05-05 07:56:21 +0000
commit4b7195c99191637bf59fd4ad626297296bf3610f (patch)
treebea8a07c70223c0e39939063c6dbbdf8eb9d0f17 /lib/libc/gmon
parent93f1aa601a7bda9bd9b83bf5098c3f05f6edd744 (diff)
downloadFreeBSD-src-4b7195c99191637bf59fd4ad626297296bf3610f.zip
FreeBSD-src-4b7195c99191637bf59fd4ad626297296bf3610f.tar.gz
Add support to enable libc to be compiled in ELF format. (#ifdef __ELF__)
In a nutshell, this macroizes the local/global symbol scoping rules that are different in a.out and ELF. It also makes the i386 assembler stubs conform to i386 PIC calling conventions - the a.out ld.so didn't object, but the ELF one needs it as it implements PIC jumps via PLT's as well as calls. The a.out rtld only worked because it was accidently snooping the grandparent calling function's return address off the stack.. This also affects the libc_r code a little, because of cpp macro nesting.
Diffstat (limited to 'lib/libc/gmon')
-rw-r--r--lib/libc/gmon/gmon.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc/gmon/gmon.c b/lib/libc/gmon/gmon.c
index 572b7eb..81e36dd 100644
--- a/lib/libc/gmon/gmon.c
+++ b/lib/libc/gmon/gmon.c
@@ -44,7 +44,11 @@ static char sccsid[] = "@(#)gmon.c 8.1 (Berkeley) 6/4/93";
#include <fcntl.h>
#include <unistd.h>
+#if defined(__ELF__)
+extern char *minbrk asm (".minbrk");
+#else
extern char *minbrk asm ("minbrk");
+#endif
struct gmonparam _gmonparam = { GMON_PROF_OFF };
OpenPOWER on IntegriCloud