Eric Fisher
2006-02-28 03:03:33 UTC
Hi,
I really need your help. I'm confused by mips target formats. Here is
the function from tc-mips.c.
/* The default target format to use. */
const char *
mips_target_format ()
{
switch (OUTPUT_FLAVOR)
{
case bfd_target_aout_flavour:
return target_big_endian ? "a.out-mips-big" : "a.out-mips-little";
case bfd_target_ecoff_flavour:
return target_big_endian ? "ecoff-bigmips" : ECOFF_LITTLE_FORMAT;
case bfd_target_coff_flavour:
return "pe-mips";
case bfd_target_elf_flavour:
#ifdef TE_TMIPS
/* This is traditional mips. */
return (target_big_endian
? (HAVE_64BIT_OBJECTS
? "elf64-tradbigmips"
: (HAVE_NEWABI
? "elf32-ntradbigmips" : "elf32-tradbigmips"))
: (HAVE_64BIT_OBJECTS
? "elf64-tradlittlemips"
: (HAVE_NEWABI
? "elf32-ntradlittlemips" : "elf32-tradlittlemips")));
#else
return (target_big_endian
? (HAVE_64BIT_OBJECTS
? "elf64-bigmips"
: (HAVE_NEWABI
? "elf32-nbigmips" : "elf32-bigmips"))
: (HAVE_64BIT_OBJECTS
? "elf64-littlemips"
: (HAVE_NEWABI
? "elf32-nlittlemips" : "elf32-littlemips")));
#endif
default:
abort ();
return NULL;
}
}
Let's just talk about elf flavour. What are the traditional mips,
non-traditional mips and newabi? Why do both traditional mips and
non-traditional mips contain newabi?
Why does the object file assembled by mips-linux-as have elf32-tradbigmips
format? While one by mips-elf-as has elf32-bigmips?
Thanks.
Eric.
I really need your help. I'm confused by mips target formats. Here is
the function from tc-mips.c.
/* The default target format to use. */
const char *
mips_target_format ()
{
switch (OUTPUT_FLAVOR)
{
case bfd_target_aout_flavour:
return target_big_endian ? "a.out-mips-big" : "a.out-mips-little";
case bfd_target_ecoff_flavour:
return target_big_endian ? "ecoff-bigmips" : ECOFF_LITTLE_FORMAT;
case bfd_target_coff_flavour:
return "pe-mips";
case bfd_target_elf_flavour:
#ifdef TE_TMIPS
/* This is traditional mips. */
return (target_big_endian
? (HAVE_64BIT_OBJECTS
? "elf64-tradbigmips"
: (HAVE_NEWABI
? "elf32-ntradbigmips" : "elf32-tradbigmips"))
: (HAVE_64BIT_OBJECTS
? "elf64-tradlittlemips"
: (HAVE_NEWABI
? "elf32-ntradlittlemips" : "elf32-tradlittlemips")));
#else
return (target_big_endian
? (HAVE_64BIT_OBJECTS
? "elf64-bigmips"
: (HAVE_NEWABI
? "elf32-nbigmips" : "elf32-bigmips"))
: (HAVE_64BIT_OBJECTS
? "elf64-littlemips"
: (HAVE_NEWABI
? "elf32-nlittlemips" : "elf32-littlemips")));
#endif
default:
abort ();
return NULL;
}
}
Let's just talk about elf flavour. What are the traditional mips,
non-traditional mips and newabi? Why do both traditional mips and
non-traditional mips contain newabi?
Why does the object file assembled by mips-linux-as have elf32-tradbigmips
format? While one by mips-elf-as has elf32-bigmips?
Thanks.
Eric.