From a5f50ef9e43b28e15a7e2a2aec73754456619f17 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Wed, 2 Mar 2005 21:33:29 +0000 Subject: netchild's mega-patch to isolate compiler dependencies into a central place. This moves the dependency on GCC's and other compiler's features into the central sys/cdefs.h file, while the individual source files can then refer to #ifdef __COMPILER_FEATURE_FOO where they by now used to refer to #if __GNUC__ > 3.1415 && __BARC__ <= 42. By now, GCC and ICC (the Intel compiler) have been actively tested on IA32 platforms by netchild. Extension to other compilers is supposed to be possible, of course. Submitted by: netchild Reviewed by: various developers on arch@, some time ago --- sys/amd64/include/profile.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'sys/amd64/include/profile.h') diff --git a/sys/amd64/include/profile.h b/sys/amd64/include/profile.h index ecd34264dcd3..93e8614523f3 100644 --- a/sys/amd64/include/profile.h +++ b/sys/amd64/include/profile.h @@ -33,6 +33,10 @@ #ifndef _MACHINE_PROFILE_H_ #define _MACHINE_PROFILE_H_ +#ifndef _SYS_CDEFS_H_ +#error this file needs sys/cdefs.h as a prerequisite +#endif + #ifdef _KERNEL /* @@ -53,7 +57,7 @@ #define MCOUNT_DECL(s) #define MCOUNT_ENTER(s) #define MCOUNT_EXIT(s) -#ifdef __GNUC__ +#ifdef __GNUCLIKE_ASM #define MCOUNT_OVERHEAD(label) \ __asm __volatile("pushq %0; call __mcount; popq %%rcx" \ : \ @@ -70,8 +74,8 @@ #define MEXITCOUNT_OVERHEAD() #define MEXITCOUNT_OVERHEAD_GETLABEL() #else -#error -#endif /* __GNUC */ +#error this file needs to be ported to your compiler +#endif /* __GNUCLIKE_ASM */ #else /* !GUPROF */ #define MCOUNT_DECL(s) u_long s; #ifdef SMP @@ -108,7 +112,7 @@ void user(void); static void _mcount(uintfptr_t frompc, uintfptr_t selfpc) __used; \ static void _mcount -#ifdef __GNUC__ +#ifdef __GNUCLIKE_ASM #define MCOUNT __asm(" \n\ .globl .mcount \n\ .type .mcount @function \n\ @@ -166,13 +170,13 @@ mcount() \ _mcount(frompc, selfpc); \ } #endif -#else /* !__GNUC__ */ +#else /* !__GNUCLIKE_ASM */ #define MCOUNT \ void \ mcount() \ { \ } -#endif /* __GNUC__ */ +#endif /* __GNUCLIKE_ASM */ typedef u_long uintfptr_t; @@ -193,7 +197,7 @@ void mcount(uintfptr_t frompc, uintfptr_t selfpc); #include __BEGIN_DECLS -#ifdef __GNUC__ +#ifdef __GNUCLIKE_ASM void mcount(void) __asm(".mcount"); #endif __END_DECLS -- cgit v1.2.3