diff options
author | Mark Mitchell <mark@codesourcery.com> | 2004-09-03 17:15:44 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2004-09-03 17:15:44 +0000 |
commit | e5a52504a53dcf6bfb4ac1b94cac6a952c3da118 (patch) | |
tree | ce7af0b4625d1d493fa66a24c05963b27ed20a63 /gas | |
parent | f3219c75e5e25c63696baf0b9fc94dd394c4718e (diff) | |
download | binutils-e5a52504a53dcf6bfb4ac1b94cac6a952c3da118.zip binutils-e5a52504a53dcf6bfb4ac1b94cac6a952c3da118.tar.gz binutils-e5a52504a53dcf6bfb4ac1b94cac6a952c3da118.tar.bz2 |
* 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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 10 | ||||
-rw-r--r-- | gas/Makefile.am | 1 | ||||
-rw-r--r-- | gas/Makefile.in | 1 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 6 | ||||
-rw-r--r-- | gas/config/te-symbian.h | 3 | ||||
-rwxr-xr-x | gas/configure | 4 | ||||
-rw-r--r-- | gas/configure.in | 4 |
7 files changed, 25 insertions, 4 deletions
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 <mark@codesourcery.com> + + * 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 <Tomer.Levi@nsc.com> * 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 ;; |