From e5a52504a53dcf6bfb4ac1b94cac6a952c3da118 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Fri, 3 Sep 2004 17:15:44 +0000 Subject: * config.bfd (arm*-*-symbianelf*): Use OS-specific target vectors. * configure.in (bfd_elf32_bigarm_symbian_vec): Add it. (bfd_elf32_littlearm_symbian_vec): Likewise. * configure: Regenerated. * elf-bfd.h (elf_backend_data): Add dynamic_sec_flags. * elf32-arm.h (PLT_HEADER_SIZE): Do not define. (PLT_ENTRY_SIZE): Likewise. (bfd_vma_elf32_arm_symbian_plt_entry): New variable. (elf32_arm_link_hash_table): Add plt_header_size, plt_entry_size, and symbian_p. (create_got_section): Don't create sections when generating BPABI objects. (elf32_arm_create_dynamic_sections): Tidy. (elf32_arm_link_hash_table_create): Set plt_header_size, plt_entry_size, and symbian_p. (elf32_arm_check_relocs): Do not mark .rel.dyn as loadable when generating BPABI objects. (allocate_dynrelocs): Use htab->plt_header_size, not PLT_HEADER_SIZE. Do not add to .got.plt when generating BPABI objects. (elf32_arm_finish_dynamic_symbol): Generate Symbian OS PLTs. * elfarm-nabi.c: Add SymbianOS target vectors. * elflink.c (_bfd_elf_create_got_section): Use dynamic_sec_flags. (_bfd_elf_link_create_dynamic_sections): Likewise. * elfxx-target.h (ELF_DYNAMIC_SEC_FLAGS): New macro. (elfNN_bed): Use it. * targets.c (bfd_elf32_bigarm_symbian_vec): New variable. (bfd_elf32_littlearm_symbian_vec): Likewise. (_bfd_target_vector): Add them. * Makefile.am (TARG_ENV_HFILES): Add te-symbian.h. * Makefile.in: Regenerated. * configure.in: Set em for arm*-*-symbianelf*. * configure: Regenerated. * config/tc-arm.c (elf32_arm_target_format): Use Symbian target vectors when appropriate. * config/te-symbian.h: New file. * Makefile.am (ALL_EMULATIONS): Add earmsymbian.o. (earmsymbian.c): New target. * configure.tgt: Use armsymbian emulation for arm*-*-symbianelf*. * Makefile.in: Regenerated. * aclocal.m4: Likewise. * configure: Likewise. * emulparams/armsymbian.sh: New file. --- gas/ChangeLog | 10 ++++++++++ gas/Makefile.am | 1 + gas/Makefile.in | 1 + gas/config/tc-arm.c | 6 ++++++ gas/config/te-symbian.h | 3 +++ gas/configure | 4 ++-- gas/configure.in | 4 ++-- 7 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 gas/config/te-symbian.h (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index e549d3f..13d53fd 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2004-09-02 Mark Mitchell + + * Makefile.am (TARG_ENV_HFILES): Add te-symbian.h. + * Makefile.in: Regenerated. + * configure.in: Set em for arm*-*-symbianelf*. + * configure: Regenerated. + * config/tc-arm.c (elf32_arm_target_format): Use Symbian target + vectors when appropriate. + * config/te-symbian.h: New file. + 2004-09-03 Tomer Levi * config/tc-crx.c (gettrap): Exception vector can be case diff --git a/gas/Makefile.am b/gas/Makefile.am index 50d7cbe..eb8530c 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -402,6 +402,7 @@ TARG_ENV_HFILES = \ config/te-sparcaout.h \ config/te-sun3.h \ config/te-svr4.h \ + config/te-symbian.h \ config/te-sysv32.h \ config/te-tmips.h diff --git a/gas/Makefile.in b/gas/Makefile.in index cba48ec..8ae048a 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -629,6 +629,7 @@ TARG_ENV_HFILES = \ config/te-sparcaout.h \ config/te-sun3.h \ config/te-svr4.h \ + config/te-symbian.h \ config/te-sysv32.h \ config/te-tmips.h diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 37cfb51..da447c8 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -14099,6 +14099,11 @@ arm_fix_adjustable (fixP) const char * elf32_arm_target_format () { +#ifdef TE_SYMBIAN + return (target_big_endian + ? "elf32-bigarm-symbian" + : "elf32-littlearm-symbian"); +#else if (target_big_endian) { if (target_oabi) @@ -14113,6 +14118,7 @@ elf32_arm_target_format () else return "elf32-littlearm"; } +#endif } void diff --git a/gas/config/te-symbian.h b/gas/config/te-symbian.h new file mode 100644 index 0000000..0522486 --- /dev/null +++ b/gas/config/te-symbian.h @@ -0,0 +1,3 @@ +#define TE_SYMBIAN 1 +#include "obj-elf.h" + diff --git a/gas/configure b/gas/configure index f01bd9b..b68fec6 100755 --- a/gas/configure +++ b/gas/configure @@ -4245,8 +4245,8 @@ for this_target in $target $canon_targets ; do arm-*-coff | thumb-*-coff) fmt=coff ;; arm-*-rtems* | thumb-*-rtems*) fmt=elf ;; arm-*-elf | thumb-*-elf) fmt=elf ;; - arm*-*-symbianelf* | arm*-*-eabi*) - fmt=elf ;; + arm*-*-eabi*) fmt=elf ;; + arm*-*-symbianelf*) fmt=elf em=symbian ;; arm-*-kaos*) fmt=elf ;; arm*-*-conix*) fmt=elf ;; arm-*-linux*aout*) fmt=aout em=linux ;; diff --git a/gas/configure.in b/gas/configure.in index 632a8fd..e24d0e4 100644 --- a/gas/configure.in +++ b/gas/configure.in @@ -206,8 +206,8 @@ changequote([,])dnl arm-*-coff | thumb-*-coff) fmt=coff ;; arm-*-rtems* | thumb-*-rtems*) fmt=elf ;; arm-*-elf | thumb-*-elf) fmt=elf ;; - arm*-*-symbianelf* | arm*-*-eabi*) - fmt=elf ;; + arm*-*-eabi*) fmt=elf ;; + arm*-*-symbianelf*) fmt=elf em=symbian ;; arm-*-kaos*) fmt=elf ;; arm*-*-conix*) fmt=elf ;; arm-*-linux*aout*) fmt=aout em=linux ;; -- cgit v1.1