From 68b702127954c1776acf90c4f2e11403f2ade9db Mon Sep 17 00:00:00 2001
From: John Gilmore <gnu@cygnus>
Date: Fri, 23 Aug 1991 20:55:23 +0000
Subject: [PATCH] 	* configure.in:  Tix typo.         * ecoff.c:  If
 compiling for DEC3100, use trad_unix core files,         else dummy out the
 core file support.         * trad-core.c (trad_unix_core_file_p):  If
 HOST_DATA_START_ADDR is         specified, use it to locate the data section.
         * coffcode.h (coff_write_symbols):  Declare buffer as bfd_bytes      
   rather than as chars (lint).

---
 bfd/ChangeLog   | 10 ++++++++
 bfd/coff-mips.c | 63 ++++++++++++++++++++++++++++++++++++-------------
 2 files changed, 56 insertions(+), 17 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 292420b40b..af5bf45ff3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+Fri Aug 23 13:51:06 1991  John Gilmore  (gnu at cygint.cygnus.com)
+
+	* configure.in:  Tix typo.
+	* ecoff.c:  If compiling for DEC3100, use trad_unix core files,
+	else dummy out the core file support.
+	* trad-core.c (trad_unix_core_file_p):  If HOST_DATA_START_ADDR is
+	specified, use it to locate the data section.
+	* coffcode.h (coff_write_symbols):  Declare buffer as bfd_bytes
+	rather than as chars (lint).
+
 Thu Aug 22 22:20:19 1991  Stu Grossman  (grossman at cygint.cygnus.com)
 
 	* aoutx.h, coffcode.h:  saberized.
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index da5816e73c..e66f6a9915 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1,41 +1,64 @@
-/* MIPS Extended-Coff handler for Binary File Diddling.
-   Written by Per Bothner.  */
+/* MIPS Extended-Coff back-end for BFD.
+   Copyright (C) 1990-1991 Free Software Foundation, Inc.
+   Written by Per Bothner.
 
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
+This file is part of BFD, the Binary File Descriptor library.
 
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify
+This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
 
-BFD is distributed in the hope that it will be useful,
+This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with BFD; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* This does not compile on anything but a MIPS yet (and I haven't been
-   able to test it there either since the latest merge!).  So it stays
-   out by default.  */
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include <sysdep.h>
 #define MIPS 1
 #include "bfd.h"
 #include "libbfd.h"
 
-
 #include "ecoff.h"
 #include "internalcoff.h"
 #include "libcoff.h"		/* to allow easier abstraction-breaking */
+#include "trad-core.h"
 
 #define BADMAG(x) ECOFFBADMAG(x)
 
+/* Define NO_COFF_SYMBOLS and NO_COFF_LINENOS to avoid coffcode.h
+   defining a mess of useless functions.  */
+#define	NO_COFF_SYMBOLS
+#define	NO_COFF_LINENOS
 #include "coffcode.h"
+
+#if HOST_SYS==DEC3100_SYS
+/* If compiling on host, implement traditional Unix core files with upage */
+#undef	coff_core_file_failing_command
+#define	coff_core_file_failing_command 	trad_unix_core_file_failing_command
+#undef	coff_core_file_failing_signal
+#define	coff_core_file_failing_signal	trad_unix_core_file_failing_signal
+#undef	coff_core_file_matches_executable_p
+#define	coff_core_file_matches_executable_p	trad_unix_core_file_matches_executable_p
+#endif
+
+/* We do not implement symbols for ecoff. */
+#define	coff_get_symtab_upper_bound (PROTO(unsigned int, (*),(bfd *)))bfd_false
+#define	coff_get_symtab	 (PROTO(unsigned int, (*), (bfd *, asymbol **)))bfd_0
+#define coff_print_symbol \
+    (PROTO(void,(*),(bfd *, PTR, asymbol *, enum bfd_print_symbol))) bfd_void
+#define	coff_swap_sym_in (PROTO(void,(*),(bfd *,PTR,PTR))) bfd_void
+#define	coff_swap_aux_in (PROTO(void,(*),(bfd *,PTR,PTR))) bfd_void
+
+/* We do not implement linenos for ecoff. */
+#define coff_get_lineno (struct lineno_cache_entry *(*)()) bfd_nullvoidptr
+#define	coff_swap_lineno_in (PROTO(void,(*),(bfd *,PTR,PTR))) bfd_void
+#define coff_find_nearest_line (PROTO(boolean, (*),(bfd*,asection*,asymbol**,bfd_vma, CONST char**, CONST char**, unsigned int *))) bfd_false
+
 bfd_target ecoff_little_vec =
     {"ecoff-littlemips",      /* name */
 	bfd_target_coff_flavour_enum,
@@ -78,7 +101,13 @@ bfd_target ecoff_big_vec =
 _do_getb64, _do_putb64,	_do_getb32, _do_putb32, _do_getb16, _do_putb16, /* data */
 _do_getb64, _do_putb64,	_do_getb32, _do_putb32, _do_getb16, _do_putb16, /* hdrs */
 	{_bfd_dummy_target, coff_object_p, /* bfd_check_format */
-	  bfd_generic_archive_p, _bfd_dummy_target},
+	  bfd_generic_archive_p,
+#if HOST_SYS==DEC3100_SYS
+	  trad_unix_core_file_p		/* On host, this works */
+#else
+	  _bfd_dummy_target		/* Other folks get no core support */
+#endif
+	},
 	{bfd_false, coff_mkobject, bfd_false, /* bfd_set_format */
 	  bfd_false},
 	{bfd_false, coff_write_object_contents, /* bfd_write_contents */