This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[PATCH/RFA] Ambiguity problem of REL objects on ELF sh*-*-*
- From: kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: binutils at sources dot redhat dot com
- Date: Mon, 28 Oct 2002 09:20:25 +0900
- Subject: [PATCH/RFA] Ambiguity problem of REL objects on ELF sh*-*-*
Hi,
The existing REL objects for ELF sh*-*-* targets have ambiguity of
targets and --enable-targets=all didn't work well for these targets.
With this patch, --enable-targets=all works for these targets.
The idea is to select a representative target from the ambiguity set
if possible. This is already done when the ambiguity set includes
the default target vector. I add a list of the "associated targets"
to the bfd_target structure and if one of them for the default target
is a member of the ambiguity set, then use it as a representative.
It's not so good, but is simple and is better than nothing.
The patch for sh-dis.c is not for the ambiguity problem but needed
to enable SHmedia instructions for --enable-targets=all case.
I've tested it for
sh-unknown-elf, sh-unknown-linux-gnu, sh64-unknown-linux-gnu,
sh-unknown-netbsdelf, sh-unknown-nto and i686-pc-linux-gnu
with and without --enable-targets=all option and there are no new
regressions.
Regards,
kaz
--
2002-10-27 Kaz Kojima <kkojima@rr.iij4u.or.jp>
[bfd]
* config.bfd (sh-*-linux*): Use bfd_elf*_sh64*lin_vec as sh64
vectors in target_selvecs.
(shle-*-netbsdelf*): Use bfd_elf*_sh64*nbsd_vec as sh64 vectors
in target_selvecs.
(sh-*-netbsdelf*): Likewise.
* elf32-sh.c (sh_elf32_sh_associated): New.
(sh_elf32_shqnx_associated, sh_elf32_shnbsd_associated): Likewise.
(sh_elf32_shlin_associated): Likewise.
(ASSOCIATED_TARGETS): Define.
* elf32-sh64.c (sh_elf32_sh64_associated): New.
(sh_elf32_sh64nbsd_associated, sh_elf32_sh64lin_associated):
Likewise.
(ASSOCIATED_TARGETS): Define.
* elf64-sh64.c (sh_elf64_sh64_associated): New.
(sh_elf64_sh64nbsd_associated, sh_elf64_sh64lin_associated):
Likewise.
(ASSOCIATED_TARGETS): Define.
* elfxx-target.h (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Add
initilalizer for associated_targets field.
* format.c (bfd_check_format_matches): Permit a target if it
is an associated target of the default target.
* targets.c (struct bfd_target): Add associated_targets field.
(_bfd_target_vector): Add bfd_elf*_sh64*lin_vec.
* aout-adobe.c (a_out_adobe_vec): Add NULL as an initializer
for associated_targets field.
* aout-arm.c (aout_arm_little_vec, aout_arm_big_vec): Likewise.
* aout-target.h (MY(vec)): Likewise.
* aout-tic30.c (tic30_aout_vec): Likewise.
* binary.c (binary_vec): Likewise.
* bout.c (b_out_vec_big_host, b_out_vec_little_host): Likewise.
* coff-alpha.c (ecoffalpha_little_vec): Likewise.
* coff-i386.c (i386coff_vec): Likewise.
* coff-i960.c (icoff_big_vec): Likewise.
* coff-ia64.c (ia64coff_vec): Likewise.
* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
(ecoff_biglittle_vec): Likewise.
* coff-or32.c (or32coff_big_vec): Likewise.
* coff-ppc.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Likewise.
* coff-sh.c (shcoff_small_vec, shlcoff_small_vec): Likewise.
* coff-tic30.c (tic30_coff_vec): Likewise.
* coff-tic4x.c (tic4x_coff0_vec, tic4x_coff0_beh_vec): Likewise.
(tic4x_coff1_vec, tic4x_coff1_beh_vec): Likewise.
(tic4x_coff2_vec, tic4x_coff2_beh_vec): Likewise.
* coff-tic54x.c (tic54x_coff0_vec, tic54x_coff0_beh_vec): Likewise.
(tic54x_coff1_vec, tic54x_coff1_beh_vec): Likewise.
(tic54x_coff2_vec, tic54x_coff2_beh_vec): Likewise.
* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
* coffcode.h (CREATE_BIG_COFF_TARGET_VEC): Likewise.
(CREATE_LITTLE_COFF_TARGET_VEC): Likewise.
* i386msdos.c (i386msdos_vec): Likewise.
* i386os9k.c (i386os9k_vec): Likewise.
* ieee.c (ieee_vec): Likewise.
* ihex.c (ihex_vec): Likewise.
* mipsbsd.c (aout_mips_little_vec, aout_mips_big_vec): Likewise.
* mmo.c (bfd_mmo_vec): Likewise.
* nlm-target.h (TARGET_BIG_SYM, TARGET_LITTLE_SYM): Likewise.
* oasys.c (oasys_vec): Likewise.
* pdp11.c (MY(vec)): Likewise.
* pe-mips.c (mipslpe_vec): Likewise.
* ppcboot.c (ppcboot_vec): Likewise.
* srec.c (srec_vec, symbolsrec_vec): Likewise.
* tekhex.c (tekhex_vec): Likewise.
* versados.c (versados_vec): Likewise.
* vms.c (vms_alpha_vec, vms_vax_vec): Likewise.
[opcodes]
* sh-dis.c (INCLUDE_SHMEDIA): Define if ARCH_all was defined.
diff -u3prN ORIG/src/bfd/config.bfd LOCAL/src/bfd/config.bfd
--- ORIG/src/bfd/config.bfd Sat Oct 26 11:59:55 2002
+++ LOCAL/src/bfd/config.bfd Sun Oct 27 14:27:32 2002
@@ -949,7 +949,7 @@ case "${targ}" in
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"
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64lin_vec bfd_elf32_sh64blin_vec bfd_elf64_sh64lin_vec bfd_elf64_sh64blin_vec"
#endif
;;
sh*eb-*-linux*)
@@ -985,7 +985,7 @@ case "${targ}" in
targ_defvec=bfd_elf32_shlnbsd_vec
targ_selvecs="bfd_elf32_shnbsd_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"
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
#endif
;;
sh*le-*-netbsdelf*)
@@ -996,7 +996,7 @@ case "${targ}" in
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"
+ targ_selvecs="${targ_selvecs} bfd_elf32_sh64lnbsd_vec bfd_elf32_sh64nbsd_vec bfd_elf64_sh64lnbsd_vec bfd_elf64_sh64nbsd_vec"
#endif
;;
sh*-*-netbsdelf*)
diff -u3prN ORIG/src/bfd/elf32-sh.c LOCAL/src/bfd/elf32-sh.c
--- ORIG/src/bfd/elf32-sh.c Wed Oct 23 21:05:18 2002
+++ LOCAL/src/bfd/elf32-sh.c Sun Oct 27 16:29:12 2002
@@ -7447,6 +7447,15 @@ elf32_shlin_grok_psinfo (abfd, note)
#ifndef INCLUDE_SHMEDIA
+extern const bfd_target bfd_elf32_sh_vec, bfd_elf32_shl_vec;
+const bfd_target *sh_elf32_sh_associated[] =
+{
+ &bfd_elf32_sh_vec, &bfd_elf32_shl_vec, NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_sh_associated
+
#include "elf32-target.h"
/* QNX support. */
@@ -7465,6 +7474,15 @@ elf32_shlin_grok_psinfo (abfd, note)
#define elf32_bed elf32_sh_qnx_bed
+extern const bfd_target bfd_elf32_shqnx_vec, bfd_elf32_shlqnx_vec;
+const bfd_target *sh_elf32_shqnx_associated[] =
+{
+ &bfd_elf32_shqnx_vec, &bfd_elf32_shlqnx_vec, NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_shqnx_associated
+
#include "elf32-target.h"
#undef elf_backend_set_nonloadable_filepos
@@ -7488,6 +7506,15 @@ elf32_shlin_grok_psinfo (abfd, note)
#define elf32_bed elf32_sh_nbsd_bed
+extern const bfd_target bfd_elf32_shnbsd_vec, bfd_elf32_shlnbsd_vec;
+const bfd_target *sh_elf32_shnbsd_associated[] =
+{
+ &bfd_elf32_shnbsd_vec, &bfd_elf32_shlnbsd_vec, NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_shnbsd_associated
+
#include "elf32-target.h"
#undef elf32_bed
@@ -7508,6 +7535,15 @@ elf32_shlin_grok_psinfo (abfd, note)
#define elf_backend_grok_psinfo elf32_shlin_grok_psinfo
#define elf32_bed elf32_sh_lin_bed
+
+extern const bfd_target bfd_elf32_shlin_vec, bfd_elf32_shblin_vec;
+const bfd_target *sh_elf32_shlin_associated[] =
+{
+ &bfd_elf32_shlin_vec, &bfd_elf32_shblin_vec, NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_shlin_associated
#include "elf32-target.h"
diff -u3prN ORIG/src/bfd/elf32-sh64.c LOCAL/src/bfd/elf32-sh64.c
--- ORIG/src/bfd/elf32-sh64.c Wed Oct 23 21:05:18 2002
+++ LOCAL/src/bfd/elf32-sh64.c Sun Oct 27 14:10:23 2002
@@ -743,6 +743,18 @@ sh64_elf_final_write_processing (abfd, l
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elf32-sh64l"
+extern const bfd_target bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec;
+extern const bfd_target bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec;
+static const bfd_target *sh_elf32_sh64_associated[] =
+{
+ &bfd_elf32_sh64_vec, &bfd_elf32_sh64l_vec,
+ &bfd_elf64_sh64_vec, &bfd_elf64_sh64l_vec,
+ NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_sh64_associated
+
#include "elf32-target.h"
/* NetBSD support. */
@@ -761,6 +773,18 @@ sh64_elf_final_write_processing (abfd, l
#define elf32_bed elf32_sh64_nbsd_bed
+extern const bfd_target bfd_elf32_sh64nbsd_vec, bfd_elf32_sh64lnbsd_vec;
+extern const bfd_target bfd_elf64_sh64nbsd_vec, bfd_elf64_sh64lnbsd_vec;
+static const bfd_target *sh_elf32_sh64nbsd_associated[] =
+{
+ &bfd_elf32_sh64nbsd_vec, &bfd_elf32_sh64lnbsd_vec,
+ &bfd_elf64_sh64nbsd_vec, &bfd_elf64_sh64lnbsd_vec,
+ NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_sh64nbsd_associated
+
#include "elf32-target.h"
#undef elf32_bed
@@ -776,6 +800,18 @@ sh64_elf_final_write_processing (abfd, l
#define TARGET_LITTLE_NAME "elf32-sh64-linux"
#define elf32_bed elf32_sh64_lin_bed
+
+extern const bfd_target bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec;
+extern const bfd_target bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec;
+static const bfd_target *sh_elf32_sh64lin_associated[] =
+{
+ &bfd_elf32_sh64lin_vec, &bfd_elf32_sh64blin_vec,
+ &bfd_elf64_sh64lin_vec, &bfd_elf64_sh64blin_vec,
+ NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf32_sh64lin_associated
#include "elf32-target.h"
diff -u3prN ORIG/src/bfd/elf64-sh64.c LOCAL/src/bfd/elf64-sh64.c
--- ORIG/src/bfd/elf64-sh64.c Sat Oct 26 11:59:56 2002
+++ LOCAL/src/bfd/elf64-sh64.c Sun Oct 27 14:13:42 2002
@@ -4220,6 +4220,18 @@ sh64_elf64_finish_dynamic_sections (outp
#define elf_backend_got_header_size 24
#define elf_backend_plt_header_size PLT_ENTRY_SIZE
+extern const bfd_target bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec;
+extern const bfd_target bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec;
+static const bfd_target *sh_elf64_sh64_associated[] =
+{
+ &bfd_elf64_sh64_vec, &bfd_elf64_sh64l_vec,
+ &bfd_elf32_sh64_vec, &bfd_elf32_sh64l_vec,
+ NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf64_sh64_associated
+
#include "elf64-target.h"
/* NetBSD support. */
@@ -4238,6 +4250,18 @@ sh64_elf64_finish_dynamic_sections (outp
#define elf64_bed elf64_sh64_nbsd_bed
+extern const bfd_target bfd_elf32_sh64nbsd_vec, bfd_elf32_sh64lnbsd_vec;
+extern const bfd_target bfd_elf64_sh64nbsd_vec, bfd_elf64_sh64lnbsd_vec;
+static const bfd_target *sh_elf64_sh64nbsd_associated[] =
+{
+ &bfd_elf64_sh64nbsd_vec, &bfd_elf64_sh64lnbsd_vec,
+ &bfd_elf32_sh64nbsd_vec, &bfd_elf32_sh64lnbsd_vec,
+ NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf64_sh64nbsd_associated
+
#include "elf64-target.h"
/* Linux support. */
@@ -4249,6 +4273,18 @@ sh64_elf64_finish_dynamic_sections (outp
#define TARGET_LITTLE_SYM bfd_elf64_sh64lin_vec
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elf64-sh64-linux"
+
+extern const bfd_target bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec;
+extern const bfd_target bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec;
+static const bfd_target *sh_elf64_sh64lin_associated[] =
+{
+ &bfd_elf64_sh64lin_vec, &bfd_elf64_sh64blin_vec,
+ &bfd_elf32_sh64lin_vec, &bfd_elf32_sh64blin_vec,
+ NULL
+};
+
+#undef ASSOCIATED_TARGETS
+#define ASSOCIATED_TARGETS sh_elf64_sh64lin_associated
#define INCLUDED_TARGET_FILE
#include "elf64-target.h"
diff -u3prN ORIG/src/bfd/elfxx-target.h LOCAL/src/bfd/elfxx-target.h
--- ORIG/src/bfd/elfxx-target.h Wed Oct 23 21:05:20 2002
+++ LOCAL/src/bfd/elfxx-target.h Sun Oct 27 13:19:08 2002
@@ -620,6 +620,12 @@ const bfd_target TARGET_BIG_SYM =
NULL,
#endif
+#ifdef ASSOCIATED_TARGETS
+ ASSOCIATED_TARGETS,
+#else
+ NULL,
+#endif
+
/* backend_data: */
(PTR) &elfNN_bed
};
@@ -712,6 +718,12 @@ const bfd_target TARGET_LITTLE_SYM =
/* Alternative endian target. */
#ifdef TARGET_BIG_SYM
& TARGET_BIG_SYM,
+#else
+ NULL,
+#endif
+
+#ifdef ASSOCIATED_TARGETS
+ ASSOCIATED_TARGETS,
#else
NULL,
#endif
diff -u3prN ORIG/src/bfd/format.c LOCAL/src/bfd/format.c
--- ORIG/src/bfd/format.c Sat Oct 26 11:59:56 2002
+++ LOCAL/src/bfd/format.c Sun Oct 27 14:03:00 2002
@@ -235,6 +235,27 @@ bfd_check_format_matches (abfd, format,
break;
}
+ /* Permit also if it is an associated target of the default
+ target. */
+ if (bfd_default_vector[0]->associated_targets)
+ {
+ const bfd_target **assoc;
+
+ assoc = bfd_default_vector[0]->associated_targets;
+ while (*assoc)
+ {
+ if (temp == *assoc)
+ break;
+ ++assoc;
+ }
+
+ if (*assoc)
+ {
+ match_count = 1;
+ break;
+ }
+ }
+
if (matching)
matching_vector[match_count] = temp->name;
diff -u3prN ORIG/src/bfd/targets.c LOCAL/src/bfd/targets.c
--- ORIG/src/bfd/targets.c Wed Oct 23 21:05:20 2002
+++ LOCAL/src/bfd/targets.c Sun Oct 27 13:58:19 2002
@@ -467,6 +467,13 @@ to find an alternative output format tha
. const struct bfd_target * alternative_target;
.
+A pointer to the list of associated bfd_targets in case the current one
+is not satisfactory.
+
+. {* Associated targets of this target. *}
+. const struct bfd_target ** associated_targets;
+.
+
. {* Data for use by back-end routines, which isn't
. generic enough to belong in this structure. *}
. PTR backend_data;
@@ -859,6 +866,8 @@ static const bfd_target * const _bfd_tar
&bfd_elf32_sh64l_vec,
&bfd_elf32_sh64lnbsd_vec,
&bfd_elf32_sh64nbsd_vec,
+ &bfd_elf32_sh64lin_vec,
+ &bfd_elf32_sh64blin_vec,
#endif
&bfd_elf32_sparc_vec,
&bfd_elf32_tradbigmips_vec,
@@ -889,6 +898,8 @@ static const bfd_target * const _bfd_tar
&bfd_elf64_sh64l_vec,
&bfd_elf64_sh64lnbsd_vec,
&bfd_elf64_sh64nbsd_vec,
+ &bfd_elf64_sh64lin_vec,
+ &bfd_elf64_sh64blin_vec,
#if 0
&bfd_elf64_sparc_vec,
#endif
diff -u3prN ORIG/src/bfd/aout-adobe.c LOCAL/src/bfd/aout-adobe.c
--- ORIG/src/bfd/aout-adobe.c Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/aout-adobe.c Sun Oct 27 12:46:34 2002
@@ -560,5 +560,7 @@ const bfd_target a_out_adobe_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/aout-arm.c LOCAL/src/bfd/aout-arm.c
--- ORIG/src/bfd/aout-arm.c Tue Oct 2 14:58:41 2001
+++ LOCAL/src/bfd/aout-arm.c Sun Oct 27 12:47:09 2002
@@ -520,6 +520,8 @@ const bfd_target aout_arm_little_vec =
& aout_arm_big_vec,
+ NULL,
+
(PTR) MY_backend_data,
};
@@ -560,6 +562,8 @@ const bfd_target aout_arm_big_vec =
BFD_JUMP_TABLE_DYNAMIC (MY),
& aout_arm_little_vec,
+
+ NULL,
(PTR) MY_backend_data,
};
diff -u3prN ORIG/src/bfd/aout-target.h LOCAL/src/bfd/aout-target.h
--- ORIG/src/bfd/aout-target.h Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/aout-target.h Sun Oct 27 12:45:06 2002
@@ -657,6 +657,8 @@ const bfd_target MY(vec) =
/* Alternative_target */
NULL,
+ NULL,
+
(PTR) MY_backend_data
};
#endif /* MY_BFD_TARGET */
diff -u3prN ORIG/src/bfd/aout-tic30.c LOCAL/src/bfd/aout-tic30.c
--- ORIG/src/bfd/aout-tic30.c Wed Jun 5 12:43:09 2002
+++ LOCAL/src/bfd/aout-tic30.c Sun Oct 27 12:48:02 2002
@@ -1093,6 +1093,8 @@ const bfd_target tic30_aout_vec =
NULL,
+ NULL,
+
(PTR) MY_backend_data
};
#endif /* MY_BFD_TARGET */
diff -u3prN ORIG/src/bfd/binary.c LOCAL/src/bfd/binary.c
--- ORIG/src/bfd/binary.c Sat Oct 26 11:59:55 2002
+++ LOCAL/src/bfd/binary.c Sun Oct 27 12:42:33 2002
@@ -396,5 +396,7 @@ const bfd_target binary_vec =
NULL,
+ NULL,
+
NULL
};
diff -u3prN ORIG/src/bfd/bout.c LOCAL/src/bfd/bout.c
--- ORIG/src/bfd/bout.c Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/bout.c Sun Oct 27 12:48:40 2002
@@ -1502,6 +1502,8 @@ const bfd_target b_out_vec_big_host =
& b_out_vec_little_host,
+ NULL,
+
(PTR) 0,
};
@@ -1543,6 +1545,8 @@ const bfd_target b_out_vec_little_host =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& b_out_vec_big_host,
+
+ NULL,
(PTR) 0
};
diff -u3prN ORIG/src/bfd/coff-alpha.c LOCAL/src/bfd/coff-alpha.c
--- ORIG/src/bfd/coff-alpha.c Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/coff-alpha.c Sun Oct 27 12:31:23 2002
@@ -2399,5 +2399,7 @@ const bfd_target ecoffalpha_little_vec =
NULL,
+ NULL,
+
(PTR) &alpha_ecoff_backend_data
};
diff -u3prN ORIG/src/bfd/coff-i386.c LOCAL/src/bfd/coff-i386.c
--- ORIG/src/bfd/coff-i386.c Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/coff-i386.c Sun Oct 27 12:49:00 2002
@@ -619,5 +619,7 @@ const bfd_target
NULL,
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-i860.c LOCAL/src/bfd/coff-i860.c
--- ORIG/src/bfd/coff-i860.c Tue Sep 18 18:57:22 2001
+++ LOCAL/src/bfd/coff-i860.c Sun Oct 27 12:49:30 2002
@@ -419,5 +419,7 @@ const bfd_target
NULL,
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-i960.c LOCAL/src/bfd/coff-i960.c
--- ORIG/src/bfd/coff-i960.c Tue Sep 18 18:57:22 2001
+++ LOCAL/src/bfd/coff-i960.c Sun Oct 27 12:49:47 2002
@@ -660,5 +660,7 @@ bfd_getb64, bfd_getb_signed_64, bfd_putb
& icoff_little_vec,
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-ia64.c LOCAL/src/bfd/coff-ia64.c
--- ORIG/src/bfd/coff-ia64.c Tue Sep 18 18:57:22 2001
+++ LOCAL/src/bfd/coff-ia64.c Sun Oct 27 12:45:19 2002
@@ -198,5 +198,7 @@ const bfd_target
NULL,
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-mips.c LOCAL/src/bfd/coff-mips.c
--- ORIG/src/bfd/coff-mips.c Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/coff-mips.c Sun Oct 27 12:50:29 2002
@@ -2645,6 +2645,8 @@ const bfd_target ecoff_little_vec =
& ecoff_big_vec,
+ NULL,
+
(PTR) &mips_ecoff_backend_data
};
@@ -2688,6 +2690,8 @@ const bfd_target ecoff_big_vec =
& ecoff_little_vec,
+ NULL,
+
(PTR) &mips_ecoff_backend_data
};
@@ -2729,6 +2733,8 @@ const bfd_target ecoff_biglittle_vec =
BFD_JUMP_TABLE_WRITE (_bfd_ecoff),
BFD_JUMP_TABLE_LINK (_bfd_ecoff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
+
+ NULL,
NULL,
diff -u3prN ORIG/src/bfd/coff-or32.c LOCAL/src/bfd/coff-or32.c
--- ORIG/src/bfd/coff-or32.c Tue Jun 25 15:21:47 2002
+++ LOCAL/src/bfd/coff-or32.c Sun Oct 27 12:50:52 2002
@@ -651,5 +651,7 @@ const bfd_target or32coff_big_vec =
NULL,
#endif
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-ppc.c LOCAL/src/bfd/coff-ppc.c
--- ORIG/src/bfd/coff-ppc.c Fri Apr 5 04:53:35 2002
+++ LOCAL/src/bfd/coff-ppc.c Sun Oct 27 12:57:49 2002
@@ -2878,6 +2878,8 @@ const bfd_target TARGET_LITTLE_SYM =
NULL,
#endif
+ NULL,
+
COFF_SWAP_TABLE
};
#endif
@@ -2936,6 +2938,8 @@ const bfd_target TARGET_BIG_SYM =
#else
NULL,
#endif
+
+ NULL,
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-rs6000.c LOCAL/src/bfd/coff-rs6000.c
--- ORIG/src/bfd/coff-rs6000.c Thu Aug 22 14:13:04 2002
+++ LOCAL/src/bfd/coff-rs6000.c Sun Oct 27 12:51:27 2002
@@ -4178,6 +4178,8 @@ const bfd_target rs6000coff_vec =
/* Opposite endian version, none exists */
NULL,
+ NULL,
+
(void *) &bfd_xcoff_backend_data,
};
@@ -4418,6 +4420,8 @@ const bfd_target pmac_xcoff_vec =
_bfd_xcoff_canonicalize_dynamic_reloc,
/* Opposite endian version, none exists */
+ NULL,
+
NULL,
(void *) &bfd_pmac_xcoff_backend_data,
diff -u3prN ORIG/src/bfd/coff-sh.c LOCAL/src/bfd/coff-sh.c
--- ORIG/src/bfd/coff-sh.c Sun May 12 02:15:53 2002
+++ LOCAL/src/bfd/coff-sh.c Sun Oct 27 12:30:23 2002
@@ -3294,6 +3294,8 @@ const bfd_target shcoff_small_vec =
& shlcoff_small_vec,
+ NULL,
+
(PTR) &bfd_coff_small_swap_table
};
@@ -3337,6 +3339,8 @@ const bfd_target shlcoff_small_vec =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& shcoff_small_vec,
+
+ NULL,
(PTR) &bfd_coff_small_swap_table
};
diff -u3prN ORIG/src/bfd/coff-tic30.c LOCAL/src/bfd/coff-tic30.c
--- ORIG/src/bfd/coff-tic30.c Tue Sep 18 18:57:22 2001
+++ LOCAL/src/bfd/coff-tic30.c Sun Oct 27 13:44:46 2002
@@ -206,5 +206,7 @@ const bfd_target tic30_coff_vec =
NULL,
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-tic4x.c LOCAL/src/bfd/coff-tic4x.c
--- ORIG/src/bfd/coff-tic4x.c Tue Sep 17 17:33:13 2002
+++ LOCAL/src/bfd/coff-tic4x.c Sun Oct 27 12:52:53 2002
@@ -403,6 +403,8 @@ const bfd_target tic4x_coff0_vec =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
NULL,
+ NULL,
+
(PTR)&ticoff0_swap_table
};
@@ -448,6 +450,8 @@ const bfd_target tic4x_coff0_beh_vec =
&tic4x_coff0_vec,
+ NULL,
+
(PTR)&ticoff0_swap_table
};
@@ -493,6 +497,8 @@ const bfd_target tic4x_coff1_vec =
&tic4x_coff0_beh_vec,
+ NULL,
+
(PTR)&ticoff1_swap_table
};
@@ -538,6 +544,8 @@ const bfd_target tic4x_coff1_beh_vec =
&tic4x_coff1_vec,
+ NULL,
+
(PTR)&ticoff1_swap_table
};
@@ -583,6 +591,8 @@ const bfd_target tic4x_coff2_vec =
&tic4x_coff1_beh_vec,
+ NULL,
+
COFF_SWAP_TABLE
};
@@ -627,6 +637,8 @@ const bfd_target tic4x_coff2_beh_vec =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
&tic4x_coff2_vec,
+
+ NULL,
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff-tic54x.c LOCAL/src/bfd/coff-tic54x.c
--- ORIG/src/bfd/coff-tic54x.c Fri Sep 21 08:30:34 2001
+++ LOCAL/src/bfd/coff-tic54x.c Sun Oct 27 12:54:19 2002
@@ -545,6 +545,8 @@ const bfd_target tic54x_coff0_vec =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
NULL,
+ NULL,
+
(PTR) & ticoff0_swap_table
};
@@ -590,6 +592,8 @@ const bfd_target tic54x_coff0_beh_vec =
& tic54x_coff0_vec,
+ NULL,
+
(PTR) & ticoff0_swap_table
};
@@ -635,6 +639,8 @@ const bfd_target tic54x_coff1_vec =
& tic54x_coff0_beh_vec,
+ NULL,
+
(PTR) & ticoff1_swap_table
};
@@ -680,6 +686,8 @@ const bfd_target tic54x_coff1_beh_vec =
& tic54x_coff1_vec,
+ NULL,
+
(PTR) & ticoff1_swap_table
};
@@ -725,6 +733,8 @@ const bfd_target tic54x_coff2_vec =
& tic54x_coff1_beh_vec,
+ NULL,
+
COFF_SWAP_TABLE
};
@@ -769,6 +779,8 @@ const bfd_target tic54x_coff2_beh_vec =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& tic54x_coff2_vec,
+
+ NULL,
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/coff64-rs6000.c LOCAL/src/bfd/coff64-rs6000.c
--- ORIG/src/bfd/coff64-rs6000.c Mon Sep 2 20:47:42 2002
+++ LOCAL/src/bfd/coff64-rs6000.c Sun Oct 27 12:44:35 2002
@@ -2720,6 +2720,8 @@ const bfd_target rs6000coff64_vec =
/* Opposite endian version, none exists */
NULL,
+ NULL,
+
(void *) &bfd_xcoff_backend_data,
};
@@ -2957,6 +2959,8 @@ const bfd_target aix5coff64_vec =
_bfd_xcoff_canonicalize_dynamic_reloc,
/* Opposite endian version, none exists. */
+ NULL,
+
NULL,
(void *) & bfd_xcoff_aix5_backend_data,
diff -u3prN ORIG/src/bfd/coffcode.h LOCAL/src/bfd/coffcode.h
--- ORIG/src/bfd/coffcode.h Mon Sep 2 20:47:42 2002
+++ LOCAL/src/bfd/coffcode.h Sun Oct 27 12:29:23 2002
@@ -5424,6 +5424,8 @@ const bfd_target VAR = \
\
ALTERNATIVE, \
\
+ NULL, \
+ \
COFF_SWAP_TABLE \
};
@@ -5471,6 +5473,8 @@ const bfd_target VAR = \
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), \
\
ALTERNATIVE, \
+ \
+ NULL, \
\
COFF_SWAP_TABLE \
};
diff -u3prN ORIG/src/bfd/i386msdos.c LOCAL/src/bfd/i386msdos.c
--- ORIG/src/bfd/i386msdos.c Wed Jun 5 12:43:10 2002
+++ LOCAL/src/bfd/i386msdos.c Sun Oct 27 12:55:02 2002
@@ -247,6 +247,8 @@ const bfd_target i386msdos_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/i386os9k.c LOCAL/src/bfd/i386os9k.c
--- ORIG/src/bfd/i386os9k.c Tue Jun 25 15:21:54 2002
+++ LOCAL/src/bfd/i386os9k.c Sun Oct 27 12:55:28 2002
@@ -374,5 +374,7 @@ const bfd_target i386os9k_vec =
NULL,
+ NULL,
+
(PTR) 0,
};
diff -u3prN ORIG/src/bfd/ieee.c LOCAL/src/bfd/ieee.c
--- ORIG/src/bfd/ieee.c Tue Jul 30 14:49:24 2002
+++ LOCAL/src/bfd/ieee.c Sun Oct 27 12:55:41 2002
@@ -4096,5 +4096,7 @@ const bfd_target ieee_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/ihex.c LOCAL/src/bfd/ihex.c
--- ORIG/src/bfd/ihex.c Tue Jul 30 14:49:24 2002
+++ LOCAL/src/bfd/ihex.c Sun Oct 27 12:43:15 2002
@@ -1039,5 +1039,7 @@ const bfd_target ihex_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/mipsbsd.c LOCAL/src/bfd/mipsbsd.c
--- ORIG/src/bfd/mipsbsd.c Mon Sep 2 20:47:42 2002
+++ LOCAL/src/bfd/mipsbsd.c Sun Oct 27 12:56:18 2002
@@ -442,6 +442,8 @@ const bfd_target aout_mips_little_vec =
& aout_mips_big_vec,
+ NULL,
+
(PTR) MY_backend_data
};
@@ -482,6 +484,8 @@ const bfd_target aout_mips_big_vec =
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
& aout_mips_little_vec,
+
+ NULL,
(PTR) MY_backend_data
};
diff -u3prN ORIG/src/bfd/mmo.c LOCAL/src/bfd/mmo.c
--- ORIG/src/bfd/mmo.c Sun Jun 30 06:45:09 2002
+++ LOCAL/src/bfd/mmo.c Sun Oct 27 12:45:45 2002
@@ -3339,5 +3339,7 @@ const bfd_target bfd_mmo_vec =
NULL,
+ NULL,
+
NULL
};
diff -u3prN ORIG/src/bfd/nlm-target.h LOCAL/src/bfd/nlm-target.h
--- ORIG/src/bfd/nlm-target.h Wed Jun 5 12:43:11 2002
+++ LOCAL/src/bfd/nlm-target.h Sun Oct 27 13:45:15 2002
@@ -153,6 +153,8 @@ const bfd_target TARGET_BIG_SYM =
NULL,
#endif
+ NULL,
+
/* backend_data: */
(PTR) TARGET_BACKEND_DATA
};
@@ -245,6 +247,8 @@ const bfd_target TARGET_LITTLE_SYM =
#else
NULL,
#endif
+
+ NULL,
/* backend_data: */
(PTR) TARGET_BACKEND_DATA
diff -u3prN ORIG/src/bfd/oasys.c LOCAL/src/bfd/oasys.c
--- ORIG/src/bfd/oasys.c Tue Jun 25 15:21:54 2002
+++ LOCAL/src/bfd/oasys.c Sun Oct 27 12:57:00 2002
@@ -1543,5 +1543,7 @@ const bfd_target oasys_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/pdp11.c LOCAL/src/bfd/pdp11.c
--- ORIG/src/bfd/pdp11.c Mon Sep 2 20:47:42 2002
+++ LOCAL/src/bfd/pdp11.c Sun Oct 27 12:57:16 2002
@@ -181,6 +181,8 @@ const bfd_target MY(vec) =
/* Alternative_target */
NULL,
+ NULL,
+
(PTR) MY_backend_data,
};
diff -u3prN ORIG/src/bfd/pe-mips.c LOCAL/src/bfd/pe-mips.c
--- ORIG/src/bfd/pe-mips.c Sun Dec 2 22:14:48 2001
+++ LOCAL/src/bfd/pe-mips.c Sun Oct 27 12:58:12 2002
@@ -994,5 +994,7 @@ const bfd_target
NULL,
+ NULL,
+
COFF_SWAP_TABLE
};
diff -u3prN ORIG/src/bfd/ppcboot.c LOCAL/src/bfd/ppcboot.c
--- ORIG/src/bfd/ppcboot.c Wed Jun 5 12:43:11 2002
+++ LOCAL/src/bfd/ppcboot.c Sun Oct 27 12:58:50 2002
@@ -535,5 +535,7 @@ const bfd_target ppcboot_vec =
NULL,
+ NULL,
+
NULL
};
diff -u3prN ORIG/src/bfd/srec.c LOCAL/src/bfd/srec.c
--- ORIG/src/bfd/srec.c Sat Oct 26 11:59:56 2002
+++ LOCAL/src/bfd/srec.c Sun Oct 27 12:42:17 2002
@@ -1343,6 +1343,8 @@ const bfd_target srec_vec =
NULL,
+ NULL,
+
(PTR) 0
};
@@ -1395,6 +1397,8 @@ const bfd_target symbolsrec_vec =
BFD_JUMP_TABLE_WRITE (srec),
BFD_JUMP_TABLE_LINK (srec),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
+
+ NULL,
NULL,
diff -u3prN ORIG/src/bfd/tekhex.c LOCAL/src/bfd/tekhex.c
--- ORIG/src/bfd/tekhex.c Tue Jun 25 15:21:54 2002
+++ LOCAL/src/bfd/tekhex.c Sun Oct 27 12:42:51 2002
@@ -1064,5 +1064,7 @@ const bfd_target tekhex_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/versados.c LOCAL/src/bfd/versados.c
--- ORIG/src/bfd/versados.c Tue Jul 30 14:49:24 2002
+++ LOCAL/src/bfd/versados.c Sun Oct 27 12:59:18 2002
@@ -931,5 +931,7 @@ const bfd_target versados_vec =
NULL,
+ NULL,
+
(PTR) 0
};
diff -u3prN ORIG/src/bfd/vms.c LOCAL/src/bfd/vms.c
--- ORIG/src/bfd/vms.c Tue Jul 30 14:49:24 2002
+++ LOCAL/src/bfd/vms.c Sun Oct 27 12:59:40 2002
@@ -178,6 +178,8 @@ const bfd_target vms_alpha_vec =
NULL,
+ NULL,
+
(PTR) 0
};
@@ -221,6 +223,8 @@ const bfd_target vms_vax_vec =
BFD_JUMP_TABLE_WRITE (vms),
BFD_JUMP_TABLE_LINK (vms),
BFD_JUMP_TABLE_DYNAMIC (vms),
+
+ NULL,
NULL,
diff -u3prN ORIG/src/opcodes/sh-dis.c LOCAL/src/opcodes/sh-dis.c
--- ORIG/src/opcodes/sh-dis.c Thu May 23 03:16:45 2002
+++ LOCAL/src/opcodes/sh-dis.c Sun Oct 27 12:16:10 2002
@@ -24,6 +24,10 @@ Foundation, Inc., 59 Temple Place - Suit
#include "sh-opc.h"
#include "dis-asm.h"
+#ifdef ARCH_all
+#define INCLUDE_SHMEDIA
+#endif
+
static void print_movxy
PARAMS ((sh_opcode_info *, int, int, fprintf_ftype, void *));
static void print_insn_ddt PARAMS ((int, struct disassemble_info *));