cdefs.h revision 1.1 1 1.1 eeh /* $NetBSD: cdefs.h,v 1.1 1998/06/20 04:58:51 eeh Exp $ */
2 1.1 eeh
3 1.1 eeh /*
4 1.1 eeh * Written by J.T. Conklin <jtc (at) wimsey.com> 01/17/95.
5 1.1 eeh * Public domain.
6 1.1 eeh */
7 1.1 eeh
8 1.1 eeh #ifndef _MACHINE_CDEFS_H_
9 1.1 eeh #define _MACHINE_CDEFS_H_
10 1.1 eeh
11 1.1 eeh #ifdef __ELF__
12 1.1 eeh
13 1.1 eeh #define _C_LABEL(x) x
14 1.1 eeh
15 1.1 eeh #ifdef __GNUC__
16 1.1 eeh #define __RENAME(x) __asm__(___STRING(_C_LABEL(x)))
17 1.1 eeh #else
18 1.1 eeh #define __RENAME(x)
19 1.1 eeh #endif
20 1.1 eeh
21 1.1 eeh #define __DO_NOT_DO_WEAK__ /* NO WEAK SYMS IN LIBC YET */
22 1.1 eeh
23 1.1 eeh #ifndef __DO_NOT_DO_WEAK__
24 1.1 eeh #define __indr_reference(sym,alias) /* nada, since we do weak refs */
25 1.1 eeh #endif /* !__DO_NOT_DO_WEAK__ */
26 1.1 eeh
27 1.1 eeh #ifdef __STDC__
28 1.1 eeh
29 1.1 eeh #ifndef __DO_NOT_DO_WEAK__
30 1.1 eeh #define __weak_alias(alias,sym) \
31 1.1 eeh __asm__(".weak " #alias " ; " #alias " = " #sym);
32 1.1 eeh #endif /* !__DO_NOT_DO_WEAK__ */
33 1.1 eeh #define __warn_references(sym,msg) \
34 1.1 eeh __asm__(".section .gnu.warning." #sym " ; .ascii \"" msg "\" ; .text");
35 1.1 eeh
36 1.1 eeh #else /* !__STDC__ */
37 1.1 eeh
38 1.1 eeh #ifndef __DO_NOT_DO_WEAK__
39 1.1 eeh #define __weak_alias(alias,sym) \
40 1.1 eeh __asm__(".weak alias ; alias = sym");
41 1.1 eeh #endif /* !__DO_NOT_DO_WEAK__ */
42 1.1 eeh #define __warn_references(sym,msg) \
43 1.1 eeh __asm__(".section .gnu.warning.sym ; .ascii msg ; .text");
44 1.1 eeh
45 1.1 eeh #endif /* !__STDC__ */
46 1.1 eeh
47 1.1 eeh #else /* !__ELF__ */
48 1.1 eeh
49 1.1 eeh #define _C_LABEL(x) __CONCAT(_,x)
50 1.1 eeh
51 1.1 eeh #ifdef __GNUC__
52 1.1 eeh #define __RENAME(x) __asm__(___STRING(_C_LABEL(x)))
53 1.1 eeh #else
54 1.1 eeh #define __RENAME(x)
55 1.1 eeh #endif
56 1.1 eeh
57 1.1 eeh #ifdef __GNUC__
58 1.1 eeh #ifdef __STDC__
59 1.1 eeh #define __indr_reference(sym,alias) \
60 1.1 eeh __asm__(".stabs \"_" #alias "\",11,0,0,0"); \
61 1.1 eeh __asm__(".stabs \"_" #sym "\",1,0,0,0");
62 1.1 eeh #define __warn_references(sym,msg) \
63 1.1 eeh __asm__(".stabs \"" msg "\",30,0,0,0"); \
64 1.1 eeh __asm__(".stabs \"_" #sym "\",1,0,0,0");
65 1.1 eeh #else
66 1.1 eeh #define __indr_reference(sym,alias) \
67 1.1 eeh __asm__(".stabs \"_/**/alias\",11,0,0,0"); \
68 1.1 eeh __asm__(".stabs \"_/**/sym\",1,0,0,0");
69 1.1 eeh #define __warn_references(sym,msg) \
70 1.1 eeh __asm__(".stabs msg,30,0,0,0"); \
71 1.1 eeh __asm__(".stabs \"_/**/sym\",1,0,0,0");
72 1.1 eeh #endif
73 1.1 eeh #else
74 1.1 eeh #define __indr_reference(sym,alias)
75 1.1 eeh #define __warn_references(sym,msg)
76 1.1 eeh #endif
77 1.1 eeh
78 1.1 eeh #endif /* __ELF__ */
79 1.1 eeh
80 1.1 eeh #endif /* !_MACHINE_CDEFS_H_ */
81 1.1 eeh
82 1.1 eeh
83 1.1 eeh
84