Home | History | Annotate | Line # | Download | only in include
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