|  | @@ -0,0 +1,64 @@
 | 
	
		
			
				|  |  | +#ifndef _CDEFS_COMPAT_H_
 | 
	
		
			
				|  |  | +#define	_CDEFS_COMPAT_H_
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if (defined(_WIN32) || defined (_MSC_VER)) && !defined(__WIN32__)
 | 
	
		
			
				|  |  | +    #define __WIN32__
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifndef __WIN32__
 | 
	
		
			
				|  |  | +#include "sys/cdefs.h"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#else //__WIN32__
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if defined(__cplusplus)
 | 
	
		
			
				|  |  | +#define	__BEGIN_DECLS	extern "C" {
 | 
	
		
			
				|  |  | +#define	__END_DECLS	}
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +#define	__BEGIN_DECLS
 | 
	
		
			
				|  |  | +#define	__END_DECLS
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifdef __GNUC__
 | 
	
		
			
				|  |  | +#define __strong_reference(sym,aliassym)	\
 | 
	
		
			
				|  |  | +	extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)));
 | 
	
		
			
				|  |  | +#ifdef __ELF__
 | 
	
		
			
				|  |  | +#ifdef __STDC__
 | 
	
		
			
				|  |  | +#define	__weak_reference(sym,alias)	\
 | 
	
		
			
				|  |  | +	__asm__(".weak " #alias);	\
 | 
	
		
			
				|  |  | +	__asm__(".equ "  #alias ", " #sym)
 | 
	
		
			
				|  |  | +#define	__warn_references(sym,msg)	\
 | 
	
		
			
				|  |  | +	__asm__(".section .gnu.warning." #sym);	\
 | 
	
		
			
				|  |  | +	__asm__(".asciz \"" msg "\"");	\
 | 
	
		
			
				|  |  | +	__asm__(".previous")
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +#define	__weak_reference(sym,alias)	\
 | 
	
		
			
				|  |  | +	__asm__(".weak alias");		\
 | 
	
		
			
				|  |  | +	__asm__(".equ alias, sym")
 | 
	
		
			
				|  |  | +#define	__warn_references(sym,msg)	\
 | 
	
		
			
				|  |  | +	__asm__(".section .gnu.warning.sym"); \
 | 
	
		
			
				|  |  | +	__asm__(".asciz \"msg\"");	\
 | 
	
		
			
				|  |  | +	__asm__(".previous")
 | 
	
		
			
				|  |  | +#endif	/* __STDC__ */
 | 
	
		
			
				|  |  | +#else	/* !__ELF__ */
 | 
	
		
			
				|  |  | +#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	/* __STDC__ */
 | 
	
		
			
				|  |  | +#endif	/* __ELF__ */
 | 
	
		
			
				|  |  | +#endif	/* __GNUC__ */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif
 |