* Patch for binutils (GAS-980329) for VxWorks on MIPS, take 2
@ 1998-03-30 17:50 Don Bowman
0 siblings, 0 replies; only message in thread
From: Don Bowman @ 1998-03-30 17:50 UTC (permalink / raw)
To: 'gas2@cygnus.com'
I'm resubmitting this patch, there was an error in the previous one
regarding the use of ecoff_stabs.
Under VxWorks 5.3.1 [The Tornado 1.0.1 release] for the MIPS targets,
gas cannot create a debuggable image. This occurs since the Tornado
target server requires a separate .stab & .stabstr section. It cannot
deal with the .mdebug ecoff section.
The fix is to two main areas:
1: configure: accept 'mips-wrs-vxworks' as a valid configuration target
2: obj-elf.h: allow output to separate sections. The comment that was
there indicated this had been removed due to an Irix 6 limitation. This
may not affect any of the other ELF targets, but I cannot say for certain:
it certainly does not affect the VxWorks MIPS platform.
This patch is against GAS-980329
The Changelog entries would be something like:
bfd:
Sun Mar 29 18:32:00 1998 Don Bowman <don@pixsci.com>
* config.bfd: add mips*el-wrs-vxworks and mips*-wrs-vxworks
gas:
Sun Mar 29 18:32:00 1998 Don Bowman <don@pixsci.com>
* configure: add mips*el-wrs-vxworks and mips*-wrs-vxworks
* configure.in: add mips*el-wrs-vxworks and mips*-wrs-vxworks
* obj-elf.h: allow separate stab sections and non-ecoff debugging for MIPS
* acconfig.h: add MIPS_STABS_ELF as a configurable option
The following patch was generated by running:
$ diff -up -r gas-980329 gas-980329.modified
--------------START OF PATCH-----------------
diff -r -up gas-980329/bfd/config.bfd gas-980329.modified/bfd/config.bfd
--- gas-980329/bfd/config.bfd Sun Mar 29 04:18:24 1998
+++ gas-980329.modified/bfd/config.bfd Sun Mar 29 14:21:33 1998
@@ -423,11 +423,11 @@ case "${targ}" in
targ_defvec=ecoff_big_vec
targ_selvecs=ecoff_little_vec
;;
- mips*el-*-elf*)
+ mips*el-*-elf* | mips*el-wrs-vxworks)
targ_defvec=bfd_elf32_littlemips_vec
targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
;;
- mips*-*-elf* | mips*-*-rtems*)
+ mips*-*-elf* | mips*-*-rtems* | mips*-wrs-vxworks)
targ_defvec=bfd_elf32_bigmips_vec
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
;;
diff -r -up gas-980329/gas/acconfig.h gas-980329.modified/gas/acconfig.h
--- gas-980329/gas/acconfig.h Sun Mar 29 04:10:13 1998
+++ gas-980329.modified/gas/acconfig.h Mon Mar 30 20:01:41 1998
@@ -77,3 +77,6 @@
/* Needed only for SCO 5. */
#undef SCO_ELF
+
+/* needed for non irix ELF targets */
+#undef MIPS_STABS_ELF
Only in gas-980329.modified/gas/config: a.out
diff -r -up gas-980329/gas/config/obj-elf.h gas-980329.modified/gas/config/obj-elf.h
--- gas-980329/gas/config/obj-elf.h Sun Mar 29 04:10:25 1998
+++ gas-980329.modified/gas/config/obj-elf.h Mon Mar 30 20:12:33 1998
@@ -141,12 +141,17 @@ extern void obj_elf_init_stab_section PA
#define ECOFF_DEBUGGING 1
#endif
+
/* For now, always set ECOFF_DEBUGGING for a MIPS target. */
#ifdef TC_MIPS
+#ifdef MIPS_STABS_ELF
+#define ECOFF_DEBUGGING 0
+#else
#define ECOFF_DEBUGGING 1
-#endif
+#endif /* MIPS_STABS_ELF */
+#endif /* TC_MIPS */
-#if ECOFF_DEBUGGING
+#if (ECOFF_DEBUGGING == 1) || defined(MIPS_STABS_ELF)
/* If we are generating ECOFF debugging information, we need some
additional fields for each symbol. */
@@ -157,6 +162,7 @@ extern void obj_elf_init_stab_section PA
struct localsym *ecoff_symbol; \
valueT ecoff_extern_size;
+#ifndef MIPS_STABS_ELF
/* We smuggle stabs in ECOFF rather than using a separate section.
The Irix linker can not handle a separate stabs section. */
#undef SEPARATE_STAB_SECTIONS
@@ -167,6 +173,7 @@ extern void obj_elf_init_stab_section PA
#define OBJ_GENERATE_ASM_LINENO(filename, lineno) \
ecoff_generate_asm_lineno ((filename), (lineno))
+#endif /* MIPS_STABS_ELF */
#endif /* ECOFF_DEBUGGING */
extern void elf_frob_symbol PARAMS ((struct symbol *, int *));
diff -r -up gas-980329/gas/config.in gas-980329.modified/gas/config.in
--- gas-980329/gas/config.in Sun Mar 29 04:10:14 1998
+++ gas-980329.modified/gas/config.in Mon Mar 30 20:01:49 1998
@@ -108,6 +108,9 @@
/* Needed only for SCO 5. */
#undef SCO_ELF
+/* needed for non irix ELF targets */
+#undef MIPS_STABS_ELF
+
/* Define if you have the remove function. */
#undef HAVE_REMOVE
diff -r -up gas-980329/gas/configure gas-980329.modified/gas/configure
--- gas-980329/gas/configure Sun Mar 29 04:30:23 1998
+++ gas-980329.modified/gas/configure Sun Mar 29 17:45:55 1998
@@ -1559,6 +1559,11 @@ EOF
mips-*-lnews*) fmt=ecoff em=lnews ;;
mips-*-riscos*) fmt=ecoff ;;
mips-*-sysv*) fmt=ecoff ;;
+ mips-*-vxworks) fmt=elf
+ cat >> confdefs.h <<\EOF
+#define MIPS_STABS_ELF 1
+EOF
+;;
mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
fmt=elf ;;
mn10200-*-*) fmt=elf bfd_gas=yes ;;
diff -r -up gas-980329/gas/configure.in gas-980329.modified/gas/configure.in
--- gas-980329/gas/configure.in Sun Mar 29 04:30:23 1998
+++ gas-980329.modified/gas/configure.in Sun Mar 29 17:46:02 1998
@@ -230,6 +230,9 @@ changequote([,])dnl
mips-*-lnews*) fmt=ecoff em=lnews ;;
mips-*-riscos*) fmt=ecoff ;;
mips-*-sysv*) fmt=ecoff ;;
+ mips-*-vxworks) fmt=elf
+ AC_DEFINE(MIPS_STABS_ELF)
+ ;;
mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
fmt=elf ;;
mn10200-*-*) fmt=elf bfd_gas=yes ;;
diff -r -up gas-980329/ld/configure.tgt gas-980329.modified/ld/configure.tgt
--- gas-980329/ld/configure.tgt Sun Mar 29 04:28:00 1998
+++ gas-980329.modified/ld/configure.tgt Sun Mar 29 13:17:27 1998
@@ -157,6 +157,7 @@ mips*vr5000el-*-elf*) targ_emul=elf32l43
mips*vr5000-*-elf*) targ_emul=elf32b4300 ;;
mips*el-*-elf*) targ_emul=elf32elmip ;;
mips*-*-elf*) targ_emul=elf32ebmip ;;
+mips*-wrs-vxworks*) targ_emul=elf32ebmip ;;
mips*-*-rtems*) targ_emul=elf32ebmip ;;
mips*el-*-linux-gnu*) targ_emul=elf32lsmip
targ_extra_emuls="elf32bsmip mipslit mipsbig"
--------------END OF PATCH------------------
--don bowman ( don@pixsci.com 519-884-4196 x2235 )
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~1998-03-30 17:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-03-30 17:50 Patch for binutils (GAS-980329) for VxWorks on MIPS, take 2 Don Bowman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).