2001-04-05 Steven J. Hill <sjhill@cotw.com>
* config.bfd (mips*el*-*-linux-gnu*): Use traditional little endian MIPS ELF target. * config.bfd (mips*-*-linux-gnu*): Use traditional big endian MIPS ELF target. * configure.in (bfd_elf64_tradbigmips_vec): New. Traditional 64bit big endian MIPS ELF target. (bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little endian MIPS ELF target. * configure: Regenerated. * elf32-mips.c (IRIX_COMPAT): Handle traditional 64bit and little endian targets. (mips_elf_sym_is_global): Handle traditional targets. * elf64-mips.c (bfd_elf64_tradbigmips_vec): New. Traditional 64bit big endian MIPS ELF target. (bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little endian MIPS ELF target. * targets.c: (_bfd_target_vector): Add bfd_elf64_tradbigmips_vec and bfd_elf64_tradlittlemips_vec.
This commit is contained in:
parent
af9539e4e5
commit
fdbafa100f
@ -1,3 +1,28 @@
|
||||
2001-04-05 Steven J. Hill <sjhill@cotw.com>
|
||||
|
||||
* config.bfd (mips*el*-*-linux-gnu*): Use traditional little
|
||||
endian MIPS ELF target.
|
||||
* config.bfd (mips*-*-linux-gnu*): Use traditional big endian
|
||||
MIPS ELF target.
|
||||
|
||||
* configure.in (bfd_elf64_tradbigmips_vec): New. Traditional
|
||||
64bit big endian MIPS ELF target.
|
||||
(bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
|
||||
endian MIPS ELF target.
|
||||
* configure: Regenerated.
|
||||
|
||||
* elf32-mips.c (IRIX_COMPAT): Handle traditional 64bit and
|
||||
little endian targets.
|
||||
(mips_elf_sym_is_global): Handle traditional targets.
|
||||
|
||||
* elf64-mips.c (bfd_elf64_tradbigmips_vec): New. Traditional
|
||||
64bit big endian MIPS ELF target.
|
||||
(bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
|
||||
endian MIPS ELF target.
|
||||
|
||||
* targets.c: (_bfd_target_vector): Add bfd_elf64_tradbigmips_vec
|
||||
and bfd_elf64_tradlittlemips_vec.
|
||||
|
||||
2001-04-05 David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* elf32-i386.c (elf_i386_fake_sections): Treat ".reloc" as an
|
||||
|
||||
@ -663,15 +663,22 @@ case "${targ}" in
|
||||
targ_defvec=bfd_elf32_bigmips_vec
|
||||
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
|
||||
;;
|
||||
mips*el*-*-linux-gnu* | mips*el*-*-openbsd*)
|
||||
mips*el*-*-openbsd*)
|
||||
targ_defvec=bfd_elf32_littlemips_vec
|
||||
targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec"
|
||||
;;
|
||||
mips*-*-linux-gnu* | mips*-*-openbsd*)
|
||||
mips*el*-*-linux-gnu*)
|
||||
targ_defvec=bfd_elf32_tradlittlemips_vec
|
||||
targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec ecoff_little_vec ecoff_big_vec"
|
||||
;;
|
||||
mips*-*-openbsd*)
|
||||
targ_defvec=bfd_elf32_bigmips_vec
|
||||
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec"
|
||||
;;
|
||||
|
||||
mips*-*-linux-gnu*)
|
||||
targ_defvec=bfd_elf32_tradbigmips_vec
|
||||
targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec"
|
||||
;;
|
||||
mn10200-*-*)
|
||||
targ_defvec=bfd_elf32_mn10200_vec
|
||||
;;
|
||||
|
||||
547
bfd/configure
vendored
547
bfd/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -561,6 +561,10 @@ do
|
||||
target64=true ;;
|
||||
bfd_elf64_sparc_vec) tb="$tb elf64-sparc.lo elf64.lo $elf"
|
||||
target64=true ;;
|
||||
bfd_elf64_tradbigmips_vec) tb="$tb elf64-mips.lo elf64.lo $elf ecofflink.lo"
|
||||
target64=true ;;
|
||||
bfd_elf64_tradlittlemips_vec) tb="$tb elf64-mips.lo elf64.lo $elf ecofflink.lo"
|
||||
target64=true ;;
|
||||
cisco_core_big_vec) tb="$tb cisco-core.lo" ;;
|
||||
cisco_core_little_vec) tb="$tb cisco-core.lo" ;;
|
||||
cris_aout_vec) tb="$tb aout-cris.lo" ;;
|
||||
|
||||
@ -208,6 +208,9 @@ static int sort_dynamic_relocs
|
||||
PARAMS ((const void *, const void *));
|
||||
|
||||
extern const bfd_target bfd_elf32_tradbigmips_vec;
|
||||
extern const bfd_target bfd_elf32_tradlittlemips_vec;
|
||||
extern const bfd_target bfd_elf64_tradbigmips_vec;
|
||||
extern const bfd_target bfd_elf64_tradlittlemips_vec;
|
||||
|
||||
/* The level of IRIX compatibility we're striving for. */
|
||||
|
||||
@ -225,8 +228,7 @@ static bfd *reldyn_sorting_bfd;
|
||||
#define ABI_N32_P(abfd) \
|
||||
((elf_elfheader (abfd)->e_flags & EF_MIPS_ABI2) != 0)
|
||||
|
||||
/* Nonzero if ABFD is using the 64-bit ABI. FIXME: This is never
|
||||
true, yet. */
|
||||
/* Nonzero if ABFD is using the 64-bit ABI. */
|
||||
#define ABI_64_P(abfd) \
|
||||
((elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64) != 0)
|
||||
|
||||
@ -234,7 +236,10 @@ static bfd *reldyn_sorting_bfd;
|
||||
executables or "normal" MIPS ELF ABI executables. */
|
||||
|
||||
#define IRIX_COMPAT(abfd) \
|
||||
(abfd->xvec == &bfd_elf32_tradbigmips_vec ? ict_none : \
|
||||
(((abfd->xvec == &bfd_elf64_tradbigmips_vec) || \
|
||||
(abfd->xvec == &bfd_elf64_tradlittlemips_vec) || \
|
||||
(abfd->xvec == &bfd_elf32_tradbigmips_vec) || \
|
||||
(abfd->xvec == &bfd_elf32_tradlittlemips_vec)) ? ict_none : \
|
||||
((ABI_N32_P (abfd) || ABI_64_P (abfd)) ? ict_irix6 : ict_irix5))
|
||||
|
||||
/* Whether we are trying to be compatible with IRIX at all. */
|
||||
@ -2301,7 +2306,12 @@ mips_elf_sym_is_global (abfd, sym)
|
||||
bfd *abfd ATTRIBUTE_UNUSED;
|
||||
asymbol *sym;
|
||||
{
|
||||
return (sym->flags & BSF_SECTION_SYM) == 0 ? true : false;
|
||||
if (SGI_COMPAT(abfd))
|
||||
return (sym->flags & BSF_SECTION_SYM) == 0 ? true : false;
|
||||
else
|
||||
return ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
|
||||
|| bfd_is_und_section (bfd_get_section (sym))
|
||||
|| bfd_is_com_section (bfd_get_section (sym)));
|
||||
}
|
||||
|
||||
/* Set the right machine number for a MIPS ELF file. This is used for
|
||||
|
||||
@ -2189,3 +2189,20 @@ const struct elf_size_info mips_elf64_size_info =
|
||||
_bfd_archive_coff_update_armap_timestamp
|
||||
|
||||
#include "elf64-target.h"
|
||||
|
||||
/* Support for traditional mips targets */
|
||||
|
||||
#define INCLUDED_TARGET_FILE /* More a type of flag */
|
||||
|
||||
#undef TARGET_LITTLE_SYM
|
||||
#undef TARGET_LITTLE_NAME
|
||||
#undef TARGET_BIG_SYM
|
||||
#undef TARGET_BIG_NAME
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elf64_tradlittlemips_vec
|
||||
#define TARGET_LITTLE_NAME "elf64-tradlittlemips"
|
||||
#define TARGET_BIG_SYM bfd_elf64_tradbigmips_vec
|
||||
#define TARGET_BIG_NAME "elf64-tradbigmips"
|
||||
|
||||
/* Include the target file again for this target */
|
||||
#include "elf64-target.h"
|
||||
|
||||
@ -564,6 +564,8 @@ extern const bfd_target bfd_elf64_ia64_big_vec;
|
||||
extern const bfd_target bfd_elf64_ia64_little_vec;
|
||||
extern const bfd_target bfd_elf64_little_generic_vec;
|
||||
extern const bfd_target bfd_elf64_littlemips_vec;
|
||||
extern const bfd_target bfd_elf64_tradbigmips_vec;
|
||||
extern const bfd_target bfd_elf64_tradlittlemips_vec;
|
||||
extern const bfd_target bfd_elf64_s390_vec;
|
||||
extern const bfd_target bfd_elf64_sparc_vec;
|
||||
extern const bfd_target bfd_elf64_x86_64_vec;
|
||||
@ -781,7 +783,10 @@ static const bfd_target * const _bfd_target_vector[] = {
|
||||
&bfd_elf32_mcore_little_vec,
|
||||
&bfd_elf32_tradbigmips_vec,
|
||||
&bfd_elf32_tradlittlemips_vec,
|
||||
#ifdef BFD64 /* No one seems to use this. */
|
||||
#ifdef BFD64
|
||||
&bfd_elf64_tradbigmips_vec,
|
||||
&bfd_elf64_tradlittlemips_vec,
|
||||
/* No one seems to use this. */
|
||||
&bfd_elf64_big_generic_vec,
|
||||
&bfd_elf64_little_generic_vec,
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user