diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ab546b9cde..5eb8fa493d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,15 @@ +Thu Apr 15 09:09:18 1993 Jim Kingdon (kingdon@cygnus.com) + + * bfd-in.h (bfd_error), bfd.c (bfd_errmsgs): Add file_truncated. + + * format.c (bfd_check_error): Check error return from + _bfd_check_format routines. + +Wed Apr 14 23:48:25 1993 Jim Kingdon (kingdon@cygnus.com) + + * rs6000-core.c (rs6000coff_core_p): Improve error checking and + recognize .data section if present. + Thu Apr 15 01:00:29 1993 John Gilmore (gnu@cygnus.com) * aoutx.h (aout_*_adjust_sizes_and_vmas): Avoid `sanity' diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index 50e52461b9..a1e00dde96 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -203,6 +203,10 @@ typedef enum bfd_error { file_ambiguously_recognized, no_contents, bfd_error_nonrepresentable_section, no_debug_section, bad_value, + + /* An input file is shorter than expected. */ + file_truncated, + invalid_error_code} bfd_ec; extern bfd_ec bfd_error; diff --git a/bfd/bfd.c b/bfd/bfd.c index 8910ca80c8..53dee5d60d 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -1,5 +1,5 @@ /* Generic BFD library interface and support routines. - Copyright (C) 1990-1991 Free Software Foundation, Inc. + Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -175,6 +175,8 @@ CODE_FRAGMENT #include "bfd.h" #include "sysdep.h" #include "libbfd.h" +#include "coff/sym.h" +#include "libecoff.h" #undef strerror extern char *strerror(); @@ -196,7 +198,8 @@ CONST short _bfd_host_big_endian = 0x0100; bfd_ec bfd_error = no_error; -CONST char *CONST bfd_errmsgs[] = { "No error", +CONST char *CONST bfd_errmsgs[] = { + "No error", "System call error", "Invalid target", "File in wrong format", @@ -213,6 +216,7 @@ CONST char *CONST bfd_errmsgs[] = { "No error", "Nonrepresentable section on output", "Symbol needs debug section which does not exist", "Bad value", + "File truncated", "#" }; @@ -565,6 +569,50 @@ bfd_get_size (abfd) return buf.st_size; } +/* +FUNCTION + The bfd_get_gp_size function + +SYNOPSIS + int bfd_get_gp_size(bfd *); + +DESCRIPTION + Get the maximum size of objects to be optimized using the GP + register under MIPS ECOFF. This is typically set by the -G + argument to the compiler, assembler or linker. +*/ + +int +bfd_get_gp_size (abfd) + bfd *abfd; +{ + if (abfd->xvec->flavour == bfd_target_ecoff_flavour) + return ecoff_data (abfd)->gp_size; + return 0; +} + +/* +FUNCTION + The bfd_set_gp_size function + +SYNOPSIS + void bfd_set_gp_size(bfd *, int); + +DESCRIPTION + Set the maximum size of objects to be optimized using the GP + register under MIPS ECOFF. This is typically set by the -G + argument to the compiler, assembler or linker. +*/ + +void +bfd_set_gp_size (abfd, i) + bfd *abfd; + int i; +{ + if (abfd->xvec->flavour == bfd_target_ecoff_flavour) + ecoff_data (abfd)->gp_size = i; +} + /* FUNCTION stuff @@ -595,16 +643,13 @@ DESCRIPTION .#define bfd_set_arch_mach(abfd, arch, mach)\ . BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) . -.#define bfd_get_relocated_section_contents(abfd, seclet, data) \ -. BFD_SEND (abfd, _bfd_get_relocated_section_contents, (abfd, seclet, data)) +.#define bfd_get_relocated_section_contents(abfd, seclet, data, relocateable) \ +. BFD_SEND (abfd, _bfd_get_relocated_section_contents, (abfd, seclet, data, relocateable)) . .#define bfd_relax_section(abfd, section, symbols) \ . BFD_SEND (abfd, _bfd_relax_section, (abfd, section, symbols)) +. +.#define bfd_seclet_link(abfd, data, relocateable) \ +. BFD_SEND (abfd, _bfd_seclet_link, (abfd, data, relocateable)) */ - - - - - -