9540190d45
such as __warn_references() and __weak_reference() which are actually machine dependant. This will make it easier for ports that are being bootstraped with ELF and ECOFF based toolchains. This change also introduces a new macro, _C_LABEL(x). _C_LABEL expands its argument, an identifier, to a character string of the identifier name as it is represented in an object file. For most ports, _C_LABEL(x) will expand to "_x", for ELF based ports _C_LABEL(x) will expand to "x".
36 lines
866 B
C
36 lines
866 B
C
/* $NetBSD: cdefs.h,v 1.1 1995/01/19 01:42:01 jtc Exp $ */
|
|
|
|
/*
|
|
* Written by J.T. Conklin <jtc@wimsey.com> 01/17/95.
|
|
* Public domain.
|
|
*/
|
|
|
|
#ifndef _MACHINE_CDEFS_H_
|
|
#define _MACHINE_CDEFS_H_
|
|
|
|
#ifdef __STDC__
|
|
#define _C_LABEL(x) _STRING(_ ## x)
|
|
#else
|
|
#define _C_LABEL(x) _STRING(_/**/x)
|
|
#endif
|
|
|
|
#ifdef __GNUC__
|
|
#ifdef __STDC__
|
|
#define __weak_reference(sym,alias) \
|
|
__asm__(".stabs \"_" #alias "\",11,0,0,0"); \
|
|
__asm__(".stabs \"_" #sym "\",1,0,0,0")
|
|
#define __warn_references(sym,msg) \
|
|
__asm__(".stabs \"" msg "\",30,0,0,0"); \
|
|
__asm__(".stabs \"_" #sym "\",1,0,0,0")
|
|
#else
|
|
#define __weak_reference(sym,alias) \
|
|
__asm__(".stabs \"_/**/alias\",11,0,0,0"); \
|
|
__asm__(".stabs \"_/**/sym\",1,0,0,0")
|
|
#define __warn_references(sym,msg) \
|
|
__asm__(".stabs msg,30,0,0,0"); \
|
|
__asm__(".stabs \"_/**/sym\",1,0,0,0")
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* !_MACHINE_CDEFS_H_ */
|