diff options
author | darylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-09-16 20:59:10 +0000 |
---|---|---|
committer | darylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-09-16 20:59:10 +0000 |
commit | c614ca505dd2947acbd111e2764056aeac2012ad (patch) | |
tree | ba9bbea3d94c2265d40377307b73032c694981aa /StdLib/Include/sys/cdefs_aout.h | |
parent | 9c6595dca0fc1985a4170fa5503a7132d3445ac8 (diff) | |
download | edk2-platforms-c614ca505dd2947acbd111e2764056aeac2012ad.tar.xz |
StdLib: Patches and updates for ARM.
Add ARMGCC and RVCT toolchain support.
Update and Add ARM specific machine headers.
Set the empty macro for __warn_references().
Make __flt_rounds() return 'Round to nearest' by default on ARM.
Signed-off-by: Olivier Martin [olivier.martin@arm.com]
Reviewed-by: darylm503
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12367 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'StdLib/Include/sys/cdefs_aout.h')
-rw-r--r-- | StdLib/Include/sys/cdefs_aout.h | 94 |
1 files changed, 49 insertions, 45 deletions
diff --git a/StdLib/Include/sys/cdefs_aout.h b/StdLib/Include/sys/cdefs_aout.h index 0ce4fd9d2d..274991875a 100644 --- a/StdLib/Include/sys/cdefs_aout.h +++ b/StdLib/Include/sys/cdefs_aout.h @@ -17,59 +17,63 @@ #ifdef __GNUC__
#if __STDC__
- #ifndef DONT_USE_STRONG_WEAK_ALIAS
-#define __strong_alias(alias,sym) \
- __asm(".global " _C_LABEL_STRING(#alias) "\n" \
- _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
-#define __weak_alias(alias,sym) \
- __asm(".weak " _C_LABEL_STRING(#alias) "\n" \
- _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
-
-/* Do not use __weak_extern, use __weak_reference instead */
-#define __weak_extern(sym) \
- __asm(".weak " _C_LABEL_STRING(#sym));
-
-#if __GNUC_PREREQ__(4, 0)
-#define __weak_reference(sym) __attribute__((__weakref__))
-#else
-#define __weak_reference(sym) ; __asm(".weak " _C_LABEL_STRING(#sym))
-#endif
-
-#define __warn_references(sym,msg) \
- __asm(".stabs \"" msg "\",30,0,0,0"); \
- __asm(".stabs \"_" #sym "\",1,0,0,0");
+ #ifndef DONT_USE_STRONG_WEAK_ALIAS
+ #define __strong_alias(alias,sym) \
+ __asm(".global " _C_LABEL_STRING(#alias) "\n" \
+ _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
+ #define __weak_alias(alias,sym) \
+ __asm(".weak " _C_LABEL_STRING(#alias) "\n" \
+ _C_LABEL_STRING(#alias) " = " _C_LABEL_STRING(#sym));
+
+ /* Do not use __weak_extern, use __weak_reference instead */
+ #define __weak_extern(sym) \
+ __asm(".weak " _C_LABEL_STRING(#sym));
+
+ #if __GNUC_PREREQ__(4, 0)
+ #define __weak_reference(sym) __attribute__((__weakref__))
#else
- #define __strong_alias(alias,sym) /* NOTHING */
- #define __weak_alias(alias,sym) /* NOTHING */
- #define __weak_extern(sym) /* NOTHING */
- #define __weak_reference(sym) /* NOTHING */
+ #define __weak_reference(sym) ; __asm(".weak " _C_LABEL_STRING(#sym))
+ #endif
+
+ #define __warn_references(sym,msg) \
+ __asm(".stabs \"" msg "\",30,0,0,0"); \
+ __asm(".stabs \"_" #sym "\",1,0,0,0");
+ #else
+ #define __strong_alias(alias,sym) /* NOTHING */
+ #define __weak_alias(alias,sym) /* NOTHING */
+ #define __weak_extern(sym) /* NOTHING */
+ #define __weak_reference(sym) /* NOTHING */
+ #if !defined(__CC_ARM)
#define __warn_references(sym,msg) \
__asm(".stabs \"" msg "\",30,0,0,0"); \
__asm(".stabs \"_" #sym "\",1,0,0,0");
+ #else
+ #define __warn_references(sym,msg)
#endif
-#else /* __STDC__ */
-#define __weak_alias(alias,sym) ___weak_alias(_/**/alias,_/**/sym)
-#define ___weak_alias(alias,sym) \
- __asm(".weak alias\nalias = sym");
-/* Do not use __weak_extern, use __weak_reference instead */
-#define __weak_extern(sym) ___weak_extern(_/**/sym)
-#define ___weak_extern(sym) \
- __asm(".weak sym");
-
-#if __GNUC_PREREQ__(4, 0)
-#define __weak_reference(sym) __attribute__((__weakref__))
-#else
-#define ___weak_reference(sym) ; __asm(".weak sym");
-#define __weak_reference(sym) ___weak_reference(_/**/sym)
-#endif
-
-#define __warn_references(sym,msg) \
- __asm(".stabs msg,30,0,0,0"); \
- __asm(".stabs \"_/**/sym\",1,0,0,0");
+ #endif
+#else /* __STDC__ */
+ #define __weak_alias(alias,sym) ___weak_alias(_/**/alias,_/**/sym)
+ #define ___weak_alias(alias,sym) \
+ __asm(".weak alias\nalias = sym");
+ /* Do not use __weak_extern, use __weak_reference instead */
+ #define __weak_extern(sym) ___weak_extern(_/**/sym)
+ #define ___weak_extern(sym) \
+ __asm(".weak sym");
+
+ #if __GNUC_PREREQ__(4, 0)
+ #define __weak_reference(sym) __attribute__((__weakref__))
+ #else
+ #define ___weak_reference(sym) ; __asm(".weak sym");
+ #define __weak_reference(sym) ___weak_reference(_/**/sym)
+ #endif
+
+ #define __warn_references(sym,msg) \
+ __asm(".stabs msg,30,0,0,0"); \
+ __asm(".stabs \"_/**/sym\",1,0,0,0");
#endif /* __STDC__ */
#else /* __GNUC__ */
-#define __warn_references(sym,msg)
+ #define __warn_references(sym,msg)
#endif /* __GNUC__ */
#if defined(__sh__) /* XXX SH COFF */
|