This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Committed, SH: bfd bits for sh64 on sh-*, shl-* ELF targets. Fixopcodes too.
- From: Hans-Peter Nilsson <hp at bitrange dot com>
- To: <binutils at sources dot redhat dot com>
- Cc: Alexandre Oliva <aoliva at redhat dot com>, Andrew Cagney <ac131313 at cygnus dot com>
- Date: Sun, 10 Feb 2002 15:43:27 -0500 (EST)
- Subject: Committed, SH: bfd bits for sh64 on sh-*, shl-* ELF targets. Fixopcodes too.
This patch lets sh-elf compile again. I see ld failures (grr!):
Running /home/hp/cvs_areas/binutils/cvs_write/src/ld/testsuite/ld-sh/rd-sh.exp ...
XPASS: ld-sh/merge1
FAIL: ld-sh/shared-1
but they remain when disabling sh64 completely, so seems not
caused by this patch. Checking against snapshots, the
ld-sh/shared-1 one was there on Feb 5 too.
I think this should go on the 2.12 branch too or alternatively,
Alexandre's opcodes patch should be reverted there. Either way
would make sh-elf compile.
opcodes:
* configure.in <bfd_sh_arc>: For sh-* and shl-*, enable sh64
support only for sh-*-*elf*, shl-*-*elf*, sh-*-linux* and
shl-*-linux*.
* configure: Regenerate.
bfd:
* config.bfd (sh-*-linux*, sh-*-elf* | sh-*-rtemself*): Add sh64
vectors.
(sh-*-netbsdelf*): New, to trump sh*-*-netbsdelf* and add sh64
vectors.
Index: config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.85
diff -p -c -r1.85 config.bfd
*** config.bfd 2002/02/08 05:33:22 1.85
--- config.bfd 2002/02/10 20:03:35
*************** case "${targ}" in
*** 857,862 ****
--- 857,865 ----
sh-*-linux*)
targ_defvec=bfd_elf32_shblin_vec
targ_selvecs=bfd_elf32_shlin_vec
+ #ifdef BFD64
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
+ #endif
;;
sh*eb-*-linux*)
targ_defvec=bfd_elf32_shblin_vec
*************** case "${targ}" in
*** 869,874 ****
--- 872,884 ----
targ_defvec=bfd_elf32_shlnbsd_vec
targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec"
;;
+ sh-*-netbsdelf*)
+ targ_defvec=bfd_elf32_shnbsd_vec
+ targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
+ #ifdef BFD64
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
+ #endif
+ ;;
sh*-*-netbsdelf*)
targ_defvec=bfd_elf32_shnbsd_vec
targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec"
*************** case "${targ}" in
*** 877,882 ****
--- 887,895 ----
sh-*-elf* | sh-*-rtemself*)
targ_defvec=bfd_elf32_sh_vec
targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec shcoff_small_vec shlcoff_small_vec"
+ #ifdef BFD64
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64_vec bfd_elf32_sh64l_vec bfd_elf64_sh64_vec bfd_elf64_sh64l_vec"
+ #endif
targ_underscore=yes
;;
sh-*-pe)
Index: configure.in
===================================================================
RCS file: /cvs/src/src/opcodes/configure.in,v
retrieving revision 1.31
diff -p -c -r1.31 configure.in
*** configure.in 2002/02/09 03:25:25 1.31
--- configure.in 2002/02/10 20:07:21
*************** if test x${all_targets} = xfalse ; then
*** 212,222 ****
# We can't decide what we want just from the CPU family.
# We want SH5 support unless a specific version of sh is
# specified, as in sh3-elf, sh3b-linux-gnu, etc.
! case " $target $canon_targets " in
! *" all "* | *" sh64-"* | *" sh-"* | *" shl-"*)
ta="$ta sh64-dis.lo sh64-opc.lo"
! archdefs="$archdefs -DINCLUDE_SHMEDIA";;
! esac;
ta="$ta sh-dis.lo" ;;
bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;;
bfd_tahoe_arch) ;;
--- 212,226 ----
# We can't decide what we want just from the CPU family.
# We want SH5 support unless a specific version of sh is
# specified, as in sh3-elf, sh3b-linux-gnu, etc.
! # Include it just for ELF targets, since the SH5 bfd:s are ELF only.
! for t in $target $canon_targets; do
! case $t in
! all | sh64-* | sh-*-*elf* | shl-*-*elf* | sh-*-linux* | shl-*-linux*)
ta="$ta sh64-dis.lo sh64-opc.lo"
! archdefs="$archdefs -DINCLUDE_SHMEDIA"
! break;;
! esac;
! done
ta="$ta sh-dis.lo" ;;
bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;;
bfd_tahoe_arch) ;;
brgds, H-P