This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Patch: Switch Linux/mips to stabs
- To: binutils at sourceware dot cygnus dot com
- Subject: Patch: Switch Linux/mips to stabs
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Thu, 7 Jun 2001 10:35:46 -0700
- Cc: GDB <gdb at sourceware dot cygnus dot com>, linux-mips at oss dot sgi dot com
Based on the recommendations from Ian and Daniel, I checked in the
following patches to switch Linux/mips to stabs.
Thanks.
---
2001-06-07 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (_bfd_mips_elf_object_p): Set the bad symtab
for SGI only.
* config.bfd: Remove ecoff from Linux/mips.
Index: config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.58
diff -u -p -r1.58 config.bfd
--- config.bfd 2001/06/02 17:32:09 1.58
+++ config.bfd 2001/06/07 17:28:52
@@ -675,7 +675,7 @@ case "${targ}" in
;;
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"
+ targ_selvecs="bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
;;
mips*-*-openbsd*)
targ_defvec=bfd_elf32_bigmips_vec
@@ -683,7 +683,7 @@ case "${targ}" in
;;
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"
+ targ_selvecs="bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
;;
mn10200-*-*)
targ_defvec=bfd_elf32_mn10200_vec
Index: elf32-mips.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-mips.c,v
retrieving revision 1.97
diff -u -p -r1.97 elf32-mips.c
--- elf32-mips.c 2001/05/23 17:26:35 1.97
+++ elf32-mips.c 2001/06/07 17:29:12
@@ -2331,7 +2331,8 @@ _bfd_mips_elf_object_p (abfd)
/* Irix 5 and 6 is broken. Object file symbol tables are not always
sorted correctly such that local symbols precede global symbols,
and the sh_info field in the symbol table is not always right. */
- elf_bad_symtab (abfd) = true;
+ if (SGI_COMPAT(abfd))
+ elf_bad_symtab (abfd) = true;
bfd_default_set_arch_mach (abfd, bfd_arch_mips,
elf_mips_mach (elf_elfheader (abfd)->e_flags));
2001-06-07 H.J. Lu <hjl@gnu.org>
* configure.in: Use MIPS_STABS_ELF for Linux/mips and remove
ecoff emulation.
* configure: Regenerate.
Index: configure.in
===================================================================
RCS file: /cvs/src/src/gas/configure.in,v
retrieving revision 1.69
diff -u -p -r1.69 configure.in
--- configure.in 2001/05/25 07:21:00 1.69
+++ configure.in 2001/06/07 17:20:54
@@ -346,8 +346,13 @@ changequote([,])dnl
mips-*-irix*) fmt=ecoff ;;
mips-*-lnews*) fmt=ecoff em=lnews ;;
mips-*-riscos*) fmt=ecoff ;;
- mips-*-sysv4*MP* | mips-*-linux-gnu* | mips-*-gnu*)
+ mips-*-sysv4*MP* | mips-*-gnu*)
fmt=elf em=tmips ;;
+ mips-*-linux-gnu*)
+ fmt=elf em=tmips
+ AC_DEFINE(MIPS_STABS_ELF, 1,
+ [Use ELF stabs for MIPS, not ECOFF stabs])
+ ;;
mips-*-sysv*) fmt=ecoff ;;
mips-*-elf* | mips-*-rtems* | mips-*-openbsd*)
fmt=elf ;;
@@ -602,8 +607,8 @@ changequote([,])dnl
case ${generic_target}-${fmt} in
mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
mips-*-linux-gnu*-*) case "$endian" in
- big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
- *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
+ big) emulation="mipsbelf mipslelf mipself" ;;
+ *) emulation="mipslelf mipsbelf mipself" ;;
esac ;;
mips-*-lnews*-ecoff) ;;
mips-*-*-ecoff) case "$endian" in