diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-01 06:08:34 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-01 06:08:34 +0000 |
commit | 35da3667e840b5c6d42acbe67098ec77f219c68e (patch) | |
tree | 723131b3f2c5cea8c4151beefbc1da59a6c4451b /gcc/config/arm | |
parent | 38ec748f543fab51ebd311f8fe7ab721d8e3bdca (diff) | |
download | gcc-35da3667e840b5c6d42acbe67098ec77f219c68e.tar.gz |
* config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
* config/arm/lib1funcs.asm: Do not include supplemental .S files
when compiling for Symbian.
* config/arm/symbian.h (RENAME_LIBRARY): New macro.
(TARGET_OS_CPP_BUILTINS): Likewise.
* config/arm/t-symbian (LIB1ASMFUNCS): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86875 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm')
-rw-r--r-- | gcc/config/arm/lib1funcs.asm | 2 | ||||
-rw-r--r-- | gcc/config/arm/symbian.h | 12 | ||||
-rw-r--r-- | gcc/config/arm/t-symbian | 14 |
3 files changed, 28 insertions, 0 deletions
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm index 61de0a30855..bc425e5e840 100644 --- a/gcc/config/arm/lib1funcs.asm +++ b/gcc/config/arm/lib1funcs.asm @@ -1163,6 +1163,8 @@ LSYM(Lchange_\register): #endif /* L_interwork_call_via_rX */ #endif /* Arch supports thumb. */ +#ifndef __symbian__ #include "ieee754-df.S" #include "ieee754-sf.S" #include "bpabi.S" +#endif /* __symbian__ */ diff --git a/gcc/config/arm/symbian.h b/gcc/config/arm/symbian.h index d30e7384a21..47fe2cbba00 100644 --- a/gcc/config/arm/symbian.h +++ b/gcc/config/arm/symbian.h @@ -64,3 +64,15 @@ #define SUBTARGET_ASM_FLOAT_SPEC \ "%{!mfpu=*:-mfpu=vfp} %{!mcpu=*:%{!march=*:-march=armv5t}}" +/* SymbianOS provides the BPABI routines in a separate library. + Therefore, we do not need to define any of them in libgcc. */ +#undef RENAME_LIBRARY +#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) /* empty */ + +/* Define the __symbian__ macro. */ +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__symbian__"); \ + } \ + while (false) diff --git a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian index fba534ce8ef..1b7208b936a 100644 --- a/gcc/config/arm/t-symbian +++ b/gcc/config/arm/t-symbian @@ -1,3 +1,17 @@ +LIB1ASMFUNCS = _bb_init_func _call_via_rX _interwork_call_via_rX + +# These functions have __aeabi equivalents and will never be called by GCC. +# By putting them in LIB1ASMFUNCS, we avoid the standard libgcc2.c code being +# used -- and we make sure that definitions are not available in lib1funcs.asm, +# either, so they end up undefined. +LIB1ASMFUNCS += \ + _ashldi3 _ashrdi3 _divdi3 _floatdidf _udivmoddi4 _umoddi3 \ + _udivdi3 _lshrdi3 _moddi3 _muldi3 _negdi2 _cmpdi2 \ + _fixdfdi _fixsfdi _fixunsdfdi _fixunssfdi _floatdisf \ + _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ + _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ + _fixsfsi _fixunssfsi + # Create a multilib for processors with VFP floating-point, and a # multilib for those without -- using the soft-float ABI in both # cases. Symbian OS object should be compiled with interworking |