summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/prof_machdep.c4
-rw-r--r--sys/conf/kern.post.mk2
-rw-r--r--sys/conf/kern.pre.mk18
-rw-r--r--sys/i386/isa/prof_machdep.c4
4 files changed, 17 insertions, 11 deletions
diff --git a/sys/amd64/amd64/prof_machdep.c b/sys/amd64/amd64/prof_machdep.c
index ab1a269..65d35f8 100644
--- a/sys/amd64/amd64/prof_machdep.c
+++ b/sys/amd64/amd64/prof_machdep.c
@@ -94,6 +94,8 @@ __mcount: \n\
.p2align 4,0x90 \n\
.globl " __XSTRING(HIDENAME(mcount)) " \n\
" __XSTRING(HIDENAME(mcount)) ": \n\
+ .globl __cyg_profile_func_enter \n\
+__cyg_profile_func_enter: \n\
cmpl $GMON_PROF_OFF," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\
je .mcount_exit \n\
# \n\
@@ -147,6 +149,8 @@ GMON_PROF_HIRES = 4 \n\
.p2align 4,0x90 \n\
.globl " __XSTRING(HIDENAME(mexitcount)) " \n\
" __XSTRING(HIDENAME(mexitcount)) ": \n\
+ .globl __cyg_profile_func_exit \n\
+__cyg_profile_func_exit: \n\
cmpl $GMON_PROF_HIRES," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\
jne .mexitcount_exit \n\
pushl %edx \n\
diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
index 503bf9f..f840d15 100644
--- a/sys/conf/kern.post.mk
+++ b/sys/conf/kern.post.mk
@@ -224,7 +224,7 @@ hints.o: hints.c
${NORMAL_C}
vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP}
- sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT}
+ sh $S/conf/newvers.sh ${KERN_IDENT}
# XXX strictly, everything depends on Makefile because changes to ${PROF}
# only appear there, but we don't handle that.
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index 3e213c7..3a83c70 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -38,7 +38,7 @@ INCLUDES+= -I$S/../include
INCLUDES+= -I/usr/include
.endif
-COPTS= ${INCLUDES} ${IDENT} -D_KERNEL -include opt_global.h
+COPTS= ${INCLUDES} -D_KERNEL -include opt_global.h
CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS} -fno-common
# XXX LOCORE means "don't declare C stuff" not "for locore.s".
@@ -50,18 +50,16 @@ ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS}
CFLAGS+= ${FMT}
.if defined(PROFLEVEL) && ${PROFLEVEL} >= 1
-IDENT= -DGPROF
-PROF= -pg
-.endif
-
-DEFINED_PROF= ${PROF}
-.if defined(PROF)
-CFLAGS+= -falign-functions=16
+CFLAGS+= -DGPROF -falign-functions=16
.if ${PROFLEVEL} >= 2
-IDENT+= -DGPROF4 -DGUPROF
-PROF+= -mprofiler-epilogue
+CFLAGS+= -DGPROF4 -DGUPROF
+# XXX -Wno-inline is to break some warnings.
+PROF= -finstrument-functions -Wno-inline
+.else
+PROF= -pg
.endif
.endif
+DEFINED_PROF= ${PROF}
.if defined(NO_WERROR)
WERROR=
diff --git a/sys/i386/isa/prof_machdep.c b/sys/i386/isa/prof_machdep.c
index ab1a269..65d35f8 100644
--- a/sys/i386/isa/prof_machdep.c
+++ b/sys/i386/isa/prof_machdep.c
@@ -94,6 +94,8 @@ __mcount: \n\
.p2align 4,0x90 \n\
.globl " __XSTRING(HIDENAME(mcount)) " \n\
" __XSTRING(HIDENAME(mcount)) ": \n\
+ .globl __cyg_profile_func_enter \n\
+__cyg_profile_func_enter: \n\
cmpl $GMON_PROF_OFF," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\
je .mcount_exit \n\
# \n\
@@ -147,6 +149,8 @@ GMON_PROF_HIRES = 4 \n\
.p2align 4,0x90 \n\
.globl " __XSTRING(HIDENAME(mexitcount)) " \n\
" __XSTRING(HIDENAME(mexitcount)) ": \n\
+ .globl __cyg_profile_func_exit \n\
+__cyg_profile_func_exit: \n\
cmpl $GMON_PROF_HIRES," __XSTRING(CNAME(_gmonparam)) "+GM_STATE \n\
jne .mexitcount_exit \n\
pushl %edx \n\
OpenPOWER on IntegriCloud