diff options
author | Mark Mitchell <mmitchel@gcc.gnu.org> | 2004-09-01 06:08:34 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2004-09-01 06:08:34 +0000 |
commit | f9a024084fa2fb9dd89d19019e473eb7dae61e08 (patch) | |
tree | 723131b3f2c5cea8c4151beefbc1da59a6c4451b /gcc | |
parent | 14945fe6b38b48f568e043070b81c04c60e08168 (diff) | |
download | gcc-f9a024084fa2fb9dd89d19019e473eb7dae61e08.zip gcc-f9a024084fa2fb9dd89d19019e473eb7dae61e08.tar.gz gcc-f9a024084fa2fb9dd89d19019e473eb7dae61e08.tar.bz2 |
config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
* 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.
From-SVN: r86875
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config.gcc | 7 | ||||
-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 |
4 files changed, 34 insertions, 1 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 6d9abd4..576694f 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -658,10 +658,15 @@ arm*-*-eabi* | arm*-*-symbianelf* ) # TImode. need_64bit_hwint=yes tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" - tmake_file="t-slibgcc-elf-ver arm/t-arm arm/t-arm-elf arm/t-bpabi" + tmake_file="t-slibgcc-elf-ver arm/t-arm arm/t-arm-elf" case ${target} in + arm*-*-eabi*) + tmake_file="${tmake_file} arm/t-bpabi" + ;; arm*-*-symbianelf*) tm_file="${tm_file} arm/symbian.h" + # We do not include t-bpabi for Symbian OS because the system + # provides its own implementation of the BPABI functions. tmake_file="${tmake_file} arm/t-symbian" ;; esac diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm index 61de0a3..bc425e5 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 d30e738..47fe2cb 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 fba534c..1b7208b 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 |