From 1e0050ece2b8feec85eea5e0b0d428ea06b04ae1 Mon Sep 17 00:00:00 2001 From: Stephen Clarke Date: Wed, 9 Oct 2002 19:03:57 +0000 Subject: [PATCH] * Makefile.am: Add entries for elf32-sh64-lin.c and elf64-sh64-lin.c. Regenerate. * Makefile.in: Regenerate. * config.bfd: Change sh64eb-*-linux* and sh64-*-linux* to use sh64 vectors rather than sh vectors. * configure.in: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec, bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec. * configure: Regenerate. * elf32-sh64-lin.c: New file. * elf64-sh64-lin.c: New file. * targets.c: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec, bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec. --- bfd/ChangeLog | 16 ++++++++++++++++ bfd/Makefile.am | 13 +++++++++++++ bfd/Makefile.in | 13 +++++++++++++ bfd/config.bfd | 8 ++++---- bfd/configure | 4 ++++ bfd/configure.in | 4 ++++ bfd/elf32-sh64-lin.c | 29 +++++++++++++++++++++++++++++ bfd/elf64-sh64-lin.c | 29 +++++++++++++++++++++++++++++ bfd/targets.c | 4 ++++ 9 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 bfd/elf32-sh64-lin.c create mode 100644 bfd/elf64-sh64-lin.c diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7cb5ecee4d..2f456be43a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,19 @@ +2002-10-09 Richard Shann + Stephen Clarke + + * Makefile.am: Add entries for elf32-sh64-lin.c and + elf64-sh64-lin.c. Regenerate. + * Makefile.in: Regenerate. + * config.bfd: Change sh64eb-*-linux* and sh64-*-linux* + to use sh64 vectors rather than sh vectors. + * configure.in: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec, + bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec. + * configure: Regenerate. + * elf32-sh64-lin.c: New file. + * elf64-sh64-lin.c: New file. + * targets.c: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec, + bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec. + 2002-10-08 H.J. Lu * elf32-i386.c (elf_i386_relocate_section): Re-arrange the diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 0aa98e3b87..4821a30d5a 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -242,6 +242,7 @@ BFD32_BACKENDS = \ elf32-sh-lin.lo \ elf32-sh64.lo \ elf32-sh64-com.lo \ + elf32-sh64-lin.lo \ elf32-sh-nbsd.lo \ elf32-sh64-nbsd.lo \ elf32-shqnx.lo \ @@ -401,6 +402,7 @@ BFD32_BACKENDS_CFILES = \ elf32-ppcqnx.c \ elf32-sh64.c \ elf32-sh64-com.c \ + elf32-sh64-lin.c \ elf32-s390.c \ elf32-sh.c \ elf32-sh-lin.c \ @@ -497,6 +499,7 @@ BFD64_BACKENDS = \ elf64-mips.lo \ elf64-mmix.lo \ elf64-sh64.lo \ + elf64-sh64-lin.lo \ elf64-sh64-nbsd.lo \ elf64-ppc.lo \ elf64-s390.lo \ @@ -525,6 +528,7 @@ BFD64_BACKENDS_CFILES = \ elf64-ppc.c \ elf64-s390.c \ elf64-sh64.c \ + elf64-sh64-lin.c \ elf64-sh64-nbsd.c \ elf64-sparc.c \ elf64.c \ @@ -1260,6 +1264,11 @@ elf32-sh64-com.lo: elf32-sh64-com.c $(INCDIR)/filenames.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/sh.h \ $(INCDIR)/elf/reloc-macros.h $(srcdir)/../opcodes/sh64-opc.h +elf32-sh64-lin.lo: elf32-sh64-lin.c elf32-sh64.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ + elf32-sh.c $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h \ @@ -1578,6 +1587,10 @@ elf64-sh64.lo: elf64-sh64.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ elf64-target.h +elf64-sh64-lin.lo: elf64-sh64-lin.c elf64-sh64.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/reloc-macros.h elf64-target.h elf64-sh64-nbsd.lo: elf64-sh64-nbsd.c elf64-sh64.c \ $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 4816c1718b..a289623bbf 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -370,6 +370,7 @@ BFD32_BACKENDS = \ elf32-sh-lin.lo \ elf32-sh64.lo \ elf32-sh64-com.lo \ + elf32-sh64-lin.lo \ elf32-sh-nbsd.lo \ elf32-sh64-nbsd.lo \ elf32-shqnx.lo \ @@ -530,6 +531,7 @@ BFD32_BACKENDS_CFILES = \ elf32-ppcqnx.c \ elf32-sh64.c \ elf32-sh64-com.c \ + elf32-sh64-lin.c \ elf32-s390.c \ elf32-sh.c \ elf32-sh-lin.c \ @@ -627,6 +629,7 @@ BFD64_BACKENDS = \ elf64-mips.lo \ elf64-mmix.lo \ elf64-sh64.lo \ + elf64-sh64-lin.lo \ elf64-sh64-nbsd.lo \ elf64-ppc.lo \ elf64-s390.lo \ @@ -656,6 +659,7 @@ BFD64_BACKENDS_CFILES = \ elf64-ppc.c \ elf64-s390.c \ elf64-sh64.c \ + elf64-sh64-lin.c \ elf64-sh64-nbsd.c \ elf64-sparc.c \ elf64.c \ @@ -1790,6 +1794,11 @@ elf32-sh64-com.lo: elf32-sh64-com.c $(INCDIR)/filenames.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/sh.h \ $(INCDIR)/elf/reloc-macros.h $(srcdir)/../opcodes/sh64-opc.h +elf32-sh64-lin.lo: elf32-sh64-lin.c elf32-sh64.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/../opcodes/sh64-opc.h \ + elf32-sh.c $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/reloc-macros.h \ @@ -2108,6 +2117,10 @@ elf64-sh64.lo: elf64-sh64.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/reloc-macros.h \ elf64-target.h +elf64-sh64-lin.lo: elf64-sh64-lin.c elf64-sh64.c $(INCDIR)/filenames.h \ + $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/reloc-macros.h elf64-target.h elf64-sh64-nbsd.lo: elf64-sh64-nbsd.c elf64-sh64.c \ $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ diff --git a/bfd/config.bfd b/bfd/config.bfd index 4aabfedaf5..85f1ea2d5c 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -934,12 +934,12 @@ case "${targ}" in targ_underscore=yes ;; sh64eb-*-linux*) - targ_defvec=bfd_elf32_shblin_vec - targ_selvecs="bfd_elf32_shblin_vec bfd_elf32_sh64_vec bfd_elf64_sh64_vec bfd_elf32_sh_vec" + targ_defvec=bfd_elf32_sh64blin_vec + targ_selvecs="bfd_elf32_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf32_shblin_vec bfd_elf32_shlin_vec" ;; sh64-*-linux*) - targ_defvec=bfd_elf32_shlin_vec - targ_selvecs="bfd_elf32_shlin_vec bfd_elf32_sh64l_vec bfd_elf64_sh64l_vec bfd_elf32_shl_vec" + targ_defvec=bfd_elf32_sh64lin_vec + targ_selvecs="bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec bfd_elf32_shlin_vec bfd_elf32_shblin_vec" ;; #endif /* BFD64 */ diff --git a/bfd/configure b/bfd/configure index 2ca10f7e37..997eb740d1 100755 --- a/bfd/configure +++ b/bfd/configure @@ -6117,6 +6117,8 @@ do # which needs it but does not list it. Should be fixed in right place. bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64lin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; @@ -6153,6 +6155,8 @@ do bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64lin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64blin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64lnbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64nbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elf64.lo $elf"; target_size=64 ;; diff --git a/bfd/configure.in b/bfd/configure.in index ba38dd423b..e6b4f9c959 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -618,6 +618,8 @@ do # which needs it but does not list it. Should be fixed in right place. bfd_elf32_sh64_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64l_vec) tb="$tb elf32-sh64.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64lin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; + bfd_elf32_sh64blin_vec) tb="$tb elf32-sh64-lin.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" target_size=64 ;; bfd_elf32_sh64lnbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh64nbsd_vec) tb="$tb elf32-sh64-nbsd.lo elf32-sh64-com.lo elf32.lo $elf cofflink.lo" ;; bfd_elf32_sh_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; @@ -654,6 +656,8 @@ do bfd_elf64_s390_vec) tb="$tb elf64-s390.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_sh64_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64l_vec) tb="$tb elf64-sh64.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64lin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; + bfd_elf64_sh64blin_vec) tb="$tb elf64-sh64-lin.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64lnbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sh64nbsd_vec) tb="$tb elf64-sh64-nbsd.lo elf64.lo $elf" target_size=64 ;; bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elf64.lo $elf"; target_size=64 ;; diff --git a/bfd/elf32-sh64-lin.c b/bfd/elf32-sh64-lin.c new file mode 100644 index 0000000000..bb8e45b0c6 --- /dev/null +++ b/bfd/elf32-sh64-lin.c @@ -0,0 +1,29 @@ +/* Hitachi SH specific support for 64-bit Linux + Copyright 2000 Free Software Foundation, Inc. + +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. */ + +#define TARGET_BIG_SYM bfd_elf32_sh64blin_vec +#define TARGET_BIG_NAME "elf32-sh64big-linux" +#define TARGET_LITTLE_SYM bfd_elf32_sh64lin_vec +#define TARGET_LITTLE_NAME "elf32-sh64-linux" +#define ELF_ARCH bfd_arch_sh +#define ELF_MACHINE_CODE EM_SH +#define ELF_MAXPAGESIZE 0x10000 +#define elf_symbol_leading_char 0 + +#include "elf32-sh64.c" diff --git a/bfd/elf64-sh64-lin.c b/bfd/elf64-sh64-lin.c new file mode 100644 index 0000000000..772417bc6d --- /dev/null +++ b/bfd/elf64-sh64-lin.c @@ -0,0 +1,29 @@ +/* Hitachi SH specific support for 64-bit Linux + Copyright 2002 Free Software Foundation, Inc. + +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. */ + +#define TARGET_BIG_SYM bfd_elf64_sh64blin_vec +#define TARGET_BIG_NAME "elf64-sh64big-linux" +#define TARGET_LITTLE_SYM bfd_elf64_sh64lin_vec +#define TARGET_LITTLE_NAME "elf64-sh64-linux" +#define ELF_ARCH bfd_arch_sh +#define ELF_MACHINE_CODE EM_SH +#define ELF_MAXPAGESIZE 0x10000 +#define elf_symbol_leading_char 0 + +#include "elf64-sh64.c" diff --git a/bfd/targets.c b/bfd/targets.c index b9be8e7535..adc8bd638e 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -559,6 +559,8 @@ extern const bfd_target bfd_elf32_powerpcqnx_vec; extern const bfd_target bfd_elf32_s390_vec; extern const bfd_target bfd_elf32_sh64_vec; extern const bfd_target bfd_elf32_sh64l_vec; +extern const bfd_target bfd_elf32_sh64lin_vec; +extern const bfd_target bfd_elf32_sh64blin_vec; extern const bfd_target bfd_elf32_sh64lnbsd_vec; extern const bfd_target bfd_elf32_sh64nbsd_vec; extern const bfd_target bfd_elf32_sh_vec; @@ -595,6 +597,8 @@ extern const bfd_target bfd_elf64_powerpcle_vec; extern const bfd_target bfd_elf64_s390_vec; extern const bfd_target bfd_elf64_sh64_vec; extern const bfd_target bfd_elf64_sh64l_vec; +extern const bfd_target bfd_elf64_sh64lin_vec; +extern const bfd_target bfd_elf64_sh64blin_vec; extern const bfd_target bfd_elf64_sh64lnbsd_vec; extern const bfd_target bfd_elf64_sh64nbsd_vec; extern const bfd_target bfd_elf64_sparc_vec; -- 2.11.0