From cd6213ffae0d56407113218fe4241078e8bf29f6 Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Sat, 28 Dec 1996 04:09:34 +0000 Subject: [PATCH] (Lay some groundwork for TIc80 port that will be filled in incrementally.) * TODO: Correct a misspelling. start-sanitize-tic80 * coff-tic80.c: New file for TI TMS320C80 (MVP). * cpu-tic80.c: New file for TI TMS320C80 (MVP). * configure.in (case $vec): Add tic80coff_vec entry. * configure: Regenerate with autoconf. * archures.c (bfd_tic80_arch): Declare. * bfd-in2.h (enum bfd_architecture): Add bfd_arch_tic80. * config.bfd (case ${targ}): Add tic80*-*-coff* target. * targets.c (tic80coff_vec): Add decl as extern bfd_target. (bfd_target_vector): Add tic80coff_vec entry. end-sanitize-tic80 --- bfd/ChangeLog | 15 +++++++++++++++ bfd/archures.c | 12 +++++++++--- bfd/bfd-in2.h | 26 ++++++++++++++++++++------ bfd/coff-tic80.c | 23 +++++++++++++++++++++++ bfd/config.bfd | 6 ++++++ bfd/configure | 34 +++++++++++++++++++--------------- bfd/configure.in | 10 ++++++++++ bfd/cpu-tic80.c | 20 ++++++++++++++++++++ 8 files changed, 122 insertions(+), 24 deletions(-) create mode 100644 bfd/coff-tic80.c create mode 100644 bfd/cpu-tic80.c diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7887118d9e8..afcfe9a9128 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +Fri Dec 27 20:56:41 1996 Fred Fish + + * TODO: Correct a misspelling. +start-sanitize-tic80 + * coff-tic80.c: New file for TI TMS320C80 (MVP). + * cpu-tic80.c: New file for TI TMS320C80 (MVP). + * configure.in (case $vec): Add tic80coff_vec entry. + * configure: Regenerate with autoconf. + * archures.c (bfd_tic80_arch): Declare. + * bfd-in2.h (enum bfd_architecture): Add bfd_arch_tic80. + * config.bfd (case ${targ}): Add tic80*-*-coff* target. + * targets.c (tic80coff_vec): Add decl as extern bfd_target. + (bfd_target_vector): Add tic80coff_vec entry. +end-sanitize-tic80 + Fri Dec 27 11:48:12 1996 H.J. Lu * elflink.h (elf_buckets): Add some more values for larger diff --git a/bfd/archures.c b/bfd/archures.c index 0953b18a42b..5090291e75b 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -146,7 +146,8 @@ DESCRIPTION . {* start-sanitize-m32r *} . bfd_arch_m32r, {* Mitsubishi M32R *} . {* end-sanitize-m32r *} -. bfd_arch_mn10x00, {* Matsushita MN10x00 *} +. bfd_arch_mn10200, {* Matsushita MN10200 *} +. bfd_arch_mn10300, {* Matsushita MN10300 *} . bfd_arch_last . }; @@ -206,11 +207,15 @@ extern const bfd_arch_info_type bfd_m32r_arch; extern const bfd_arch_info_type bfd_m68k_arch; extern const bfd_arch_info_type bfd_m88k_arch; extern const bfd_arch_info_type bfd_mips_arch; -extern const bfd_arch_info_type bfd_mn10x00_arch; +extern const bfd_arch_info_type bfd_mn10200_arch; +extern const bfd_arch_info_type bfd_mn10300_arch; extern const bfd_arch_info_type bfd_powerpc_arch; extern const bfd_arch_info_type bfd_rs6000_arch; extern const bfd_arch_info_type bfd_sh_arch; extern const bfd_arch_info_type bfd_sparc_arch; +/* start-sanitize-tic80 */ +extern const bfd_arch_info_type bfd_tic80_arch; +/* end-sanitize-tic80 */ extern const bfd_arch_info_type bfd_vax_arch; extern const bfd_arch_info_type bfd_we32k_arch; extern const bfd_arch_info_type bfd_z8k_arch; @@ -246,7 +251,8 @@ static const bfd_arch_info_type * const bfd_archures_list[] = &bfd_m68k_arch, &bfd_m88k_arch, &bfd_mips_arch, - &bfd_mn10x00_arch, + &bfd_mn10200_arch, + &bfd_mn10300_arch, &bfd_powerpc_arch, &bfd_rs6000_arch, &bfd_sh_arch, diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 220ed5b8c05..d38f1de961e 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1212,6 +1212,9 @@ enum bfd_architecture #define bfd_mach_z8002 2 bfd_arch_h8500, /* Hitachi H8/500 */ bfd_arch_sh, /* Hitachi SH */ + /* start-sanitize-tic80 */ + bfd_arch_tic80, /* TI TMS320C80 (MVP) */ + /* end-sanitize-tic80 */ bfd_arch_alpha, /* Dec Alpha */ bfd_arch_arm, /* Advanced Risc Machines ARM */ bfd_arch_ns32k, /* National Semiconductors ns32000 */ @@ -1668,6 +1671,9 @@ which is filled by the linker. */ simple reloc otherwise. */ BFD_RELOC_MIPS_JMP, +/* The MIPS16 jump instruction. */ + BFD_RELOC_MIPS16_JMP, + /* High 16 bits of 32-bit value; simple reloc. */ BFD_RELOC_HI16, @@ -1844,17 +1850,17 @@ assumed to be 0. */ /* start-sanitize-m32r */ /* Mitsubishi M32R relocs. -This is a 24 bit address. */ - BFD_RELOC_M32R_UIMM24, +This is a 24 bit absolute address. */ + BFD_RELOC_M32R_24, -/* This is a 10-bit reloc with the right 2 bits assumed to be 0. */ - BFD_RELOC_M32R_DISP8, +/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */ + BFD_RELOC_M32R_10_PCREL, /* This is an 18-bit reloc with the right 2 bits assumed to be 0. */ - BFD_RELOC_M32R_DISP16, + BFD_RELOC_M32R_18_PCREL, /* This is an 26-bit reloc with the right 2 bits assumed to be 0. */ - BFD_RELOC_M32R_DISP24, + BFD_RELOC_M32R_26_PCREL, /* end-sanitize-m32r */ /* start-sanitize-v850 */ @@ -1875,6 +1881,14 @@ This is a 24 bit address. */ BFD_RELOC_V850_TDA_OFFSET, /* end-sanitize-v850 */ + +/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the +instruction. */ + BFD_RELOC_MN10300_32_PCREL, + +/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the +instruction. */ + BFD_RELOC_MN10300_16_PCREL, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; reloc_howto_type * diff --git a/bfd/coff-tic80.c b/bfd/coff-tic80.c new file mode 100644 index 00000000000..06c8a2e6d4c --- /dev/null +++ b/bfd/coff-tic80.c @@ -0,0 +1,23 @@ +/* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP). + Copyright 1996 Free Software Foundation, Inc. + + Written by Fred Fish (fnf@cygnus.com) + + There is nothing new under the sun. This file draws a lot on other + coff files. + +This file is part of BFD, the Binary File Descriptor library. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ diff --git a/bfd/config.bfd b/bfd/config.bfd index 2c96bd2dc2e..bb59cf92248 100755 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -509,6 +509,12 @@ case "${targ}" in ;; #endif +# start-sanitize-tic80 + tic80*-*-coff*) + targ_defvec=tic80coff_vec + ;; + +# end-sanitize-tic80 # start-sanitize-v850 v850-*-*) targ_defvec=bfd_elf32_v850_vec diff --git a/bfd/configure b/bfd/configure index 65d0a9fa74f..2f86de95cdf 100755 --- a/bfd/configure +++ b/bfd/configure @@ -1738,6 +1738,7 @@ EOF ;; mips-sgi-irix4*) COREFILE=irix-core.o ;; mips-sgi-irix5*) COREFILE=irix-core.o ;; + mips-sgi-irix6*) COREFILE=irix-core.o ;; mips-*-mach3*) COREFILE=trad-core.o cat >> confdefs.h <<\EOF @@ -1879,19 +1880,19 @@ EOF # Define HAVE_SYS_PROCFS_H if the file exists and defines # prstatus_t. echo $ac_n "checking for sys/procfs.h""... $ac_c" 1>&6 -echo "configure:1883: checking for sys/procfs.h" >&5 +echo "configure:1884: checking for sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_header_sys_procfs_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { prstatus_t t; ; return 0; } EOF -if { (eval echo configure:1895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_header_sys_procfs_h=yes else @@ -2115,6 +2116,9 @@ do sunos_big_vec) tb="$tb sunos.o aout32.o" ;; symbolsrec_vec) tb="$tb srec.o" ;; tekhex_vec) tb="$tb tekhex.o" ;; +# start-sanitize-tic80 + tic80coff_vec) tp="$tp coff-tic80.o" ;; +# end-sanitize-tic80 we32kcoff_vec) tb="$tb coff-we32k.o" ;; z8kcoff_vec) tb="$tb coff-z8k.o reloc16.o" ;; w65_vec) tb="$tb coff-w65.o reloc16.o" ;; @@ -2198,17 +2202,17 @@ for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2202: checking for $ac_hdr" >&5 +echo "configure:2206: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2212: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -2237,12 +2241,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2241: checking for $ac_func" >&5 +echo "configure:2245: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2290,7 +2294,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:2294: checking for working mmap" >&5 +echo "configure:2298: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2298,7 +2302,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -2463,12 +2467,12 @@ fi for ac_func in madvise mprotect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2467: checking for $ac_func" >&5 +echo "configure:2471: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:2499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else diff --git a/bfd/configure.in b/bfd/configure.in index 467db829aa5..621ca7f5f28 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -143,6 +143,7 @@ BFD_NEED_DECLARATION(strstr) BFD_NEED_DECLARATION(malloc) BFD_NEED_DECLARATION(realloc) BFD_NEED_DECLARATION(free) +BFD_NEED_DECLARATION(getenv) # If we are configured native, pick a core file support file. COREFILE= @@ -232,6 +233,7 @@ changequote([,])dnl ;; mips-sgi-irix4*) COREFILE=irix-core.o ;; mips-sgi-irix5*) COREFILE=irix-core.o ;; + mips-sgi-irix6*) COREFILE=irix-core.o ;; mips-*-mach3*) COREFILE=trad-core.o AC_DEFINE(TRAD_HEADER,"hosts/mipsmach3.h") @@ -541,6 +543,9 @@ do sunos_big_vec) tb="$tb sunos.o aout32.o" ;; symbolsrec_vec) tb="$tb srec.o" ;; tekhex_vec) tb="$tb tekhex.o" ;; +# start-sanitize-tic80 + tic80coff_vec) tp="$tp coff-tic80.o" ;; +# end-sanitize-tic80 we32kcoff_vec) tb="$tb coff-we32k.o" ;; z8kcoff_vec) tb="$tb coff-z8k.o reloc16.o" ;; w65_vec) tb="$tb coff-w65.o reloc16.o" ;; @@ -580,9 +585,13 @@ if test x${all_targets} = xtrue ; then bfd_backends="${bfd_backends}"' $(ALL_BACKENDS)' bfd_machines="${bfd_machines}"' $(ALL_MACHINES)' selvecs= + havevecs= selarchs= else # all_targets is true # Only set these if they will be nonempty, for the clever echo. + havevecs= + test -n "$selvecs" && + havevecs=`echo $selvecs | sed -e 's/^/-DHAVE_/' -e 's/ \(.\)/ -DHAVE_\1/g'` test -n "$selvecs" && selvecs=`echo $selvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'` test -n "$selarchs" && @@ -613,6 +622,7 @@ tdefaults="" test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}" test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'" test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'" +test -n "${havevecs}" && tdefaults="${tdefaults} ${havevecs}" AC_SUBST(tdefaults) dnl AC_CHECK_HEADERS(sys/mman.h) diff --git a/bfd/cpu-tic80.c b/bfd/cpu-tic80.c new file mode 100644 index 00000000000..e36063d1fb4 --- /dev/null +++ b/bfd/cpu-tic80.c @@ -0,0 +1,20 @@ +/* bfd back-end for TI TMS320C80 (MVP) support + Copyright (C) 1996 Free Software Foundation, Inc. + Written by Fred Fish at Cygnus support (fnf@cygnus.com) + +This file is part of BFD, the Binary File Descriptor library. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + -- 2.30.2