aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1994-04-01 17:55:47 +0000
committerIan Lance Taylor <ian@airs.com>1994-04-01 17:55:47 +0000
commit9deaaaf1b35a54f776957492c4300ea993a3961c (patch)
tree31e0c78e242ef082c5ab7045180df9fcfd8980fd
parent7ed5e9704bba4b5c5a85368655acd36f8751a1b1 (diff)
downloadgdb-9deaaaf1b35a54f776957492c4300ea993a3961c.zip
gdb-9deaaaf1b35a54f776957492c4300ea993a3961c.tar.gz
gdb-9deaaaf1b35a54f776957492c4300ea993a3961c.tar.bz2
* targets.c (bfd_target): Add _bfd_free_cached_info field.
* bfd.c (bfd_free_cached_info): Define. * bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info. * bfd-in2.h: Rebuilt. * All backends: Initialize bfd_free_cached_info entry point to bfd_true.
-rw-r--r--bfd/ChangeLog17
-rw-r--r--bfd/aix386-core.c1
-rw-r--r--bfd/aout-adobe.c56
-rw-r--r--bfd/aout-target.h17
-rw-r--r--bfd/bfd-in.h30
-rw-r--r--bfd/bfd-in2.h9
-rw-r--r--bfd/bfd.c3
-rw-r--r--bfd/bout.c1
-rw-r--r--bfd/cisco-core.c1
-rw-r--r--bfd/coffcode.h1
-rw-r--r--bfd/elf32-target.h3
-rw-r--r--bfd/elf64-target.h4
-rw-r--r--bfd/hppabsd-core.c1
-rw-r--r--bfd/hpux-core.c1
-rw-r--r--bfd/i386os9k.c214
-rw-r--r--bfd/ieee.c1
-rw-r--r--bfd/irix-core.c1
-rw-r--r--bfd/libecoff.h8
-rw-r--r--bfd/nlm-target.h120
-rw-r--r--bfd/oasys.c1
-rw-r--r--bfd/osf-core.c1
-rw-r--r--bfd/ptrace-core.c1
-rw-r--r--bfd/som.c1
-rw-r--r--bfd/srec.c1
-rw-r--r--bfd/targets.c3
-rw-r--r--bfd/tekhex.c1
-rw-r--r--bfd/trad-core.c1
27 files changed, 329 insertions, 170 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e679366..4f25e82 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,20 @@
+Fri Apr 1 12:40:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
+
+ * targets.c (bfd_target): Add _bfd_free_cached_info field.
+ * bfd.c (bfd_free_cached_info): Define.
+ * bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info.
+ * bfd-in2.h: Rebuilt.
+ * All backends: Initialize bfd_free_cached_info entry point to
+ bfd_true.
+
+ * elf32-hppa.c (elf_hppa_reloc_type_lookup): Correct type of
+ first, unused, argument.
+ (hppa_elf_is_local_label): Declare instead of
+ som_bfd_is_local_label.
+
+ * coff-a29k.c (a29k_reloc): Add reloc_entry->address to value of
+ absolute R_IREL reloc.
+
Thu Mar 31 11:52:15 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Added some support for Irix 4 shared libraries.
diff --git a/bfd/aix386-core.c b/bfd/aix386-core.c
index bf9c1af..d566546 100644
--- a/bfd/aix386-core.c
+++ b/bfd/aix386-core.c
@@ -309,6 +309,7 @@ aix386_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define aix386_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asection *))) bfd_false)
+#define aix386_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
void
diff --git a/bfd/aout-adobe.c b/bfd/aout-adobe.c
index 96c48ec..3de6af6 100644
--- a/bfd/aout-adobe.c
+++ b/bfd/aout-adobe.c
@@ -32,7 +32,7 @@ extern bfd_target a_out_adobe_vec; /* Forward decl */
PROTO (static bfd_target *, aout_adobe_callback, (bfd *));
PROTO (boolean, aout_32_slurp_symbol_table, (bfd *abfd));
-PROTO (void , aout_32_write_syms, ());
+PROTO (boolean , aout_32_write_syms, ());
PROTO (static void, aout_adobe_write_section, (bfd *abfd, sec_ptr sect));
/* Swaps the information in an executable header taken from a raw byte
@@ -44,10 +44,10 @@ PROTO(void, aout_adobe_swap_exec_header_in,
struct internal_exec *execp));
void
-DEFUN(aout_adobe_swap_exec_header_in,(abfd, raw_bytes, execp),
- bfd *abfd AND
- struct external_exec *raw_bytes AND
- struct internal_exec *execp)
+aout_adobe_swap_exec_header_in (abfd, raw_bytes, execp)
+ bfd *abfd;
+ struct external_exec *raw_bytes;
+ struct internal_exec *execp;
{
struct external_exec *bytes = (struct external_exec *)raw_bytes;
@@ -70,10 +70,10 @@ PROTO(void, aout_adobe_swap_exec_header_out,
struct internal_exec *execp,
struct external_exec *raw_bytes));
void
-DEFUN(aout_adobe_swap_exec_header_out,(abfd, execp, raw_bytes),
- bfd *abfd AND
- struct internal_exec *execp AND
- struct external_exec *raw_bytes)
+aout_adobe_swap_exec_header_out (abfd, execp, raw_bytes)
+ bfd *abfd;
+ struct internal_exec *execp;
+ struct external_exec *raw_bytes;
{
struct external_exec *bytes = (struct external_exec *)raw_bytes;
@@ -99,7 +99,7 @@ aout_adobe_object_p (abfd)
if (bfd_read ((PTR) &exec_bytes, 1, EXEC_BYTES_SIZE, abfd)
!= EXEC_BYTES_SIZE) {
- bfd_error = wrong_format;
+ bfd_set_error (bfd_error_wrong_format);
return 0;
}
@@ -119,7 +119,7 @@ aout_adobe_object_p (abfd)
; /* Just continue anyway, if specifically set to this format */
else
{
- bfd_error = wrong_format;
+ bfd_set_error (bfd_error_wrong_format);
return 0;
}
}
@@ -156,7 +156,7 @@ aout_adobe_callback (abfd)
for (;;) {
if (bfd_read ((PTR) ext, 1, sizeof (*ext), abfd) != sizeof (*ext)) {
- bfd_error = wrong_format;
+ bfd_set_error (bfd_error_wrong_format);
return 0;
}
switch (ext->e_type[0]) {
@@ -187,11 +187,11 @@ aout_adobe_callback (abfd)
/* First one is called ".text" or whatever; subsequent ones are
".text1", ".text2", ... */
- bfd_error = no_error;
+ bfd_set_error (bfd_error_no_error);
sect = bfd_make_section (abfd, section_name);
trynum = 0;
while (!sect) {
- if (bfd_error != no_error)
+ if (bfd_get_error () != bfd_error_no_error)
return 0; /* Some other error -- slide into the sunset */
sprintf (try_again, "%s%d", section_name, ++trynum);
sect = bfd_make_section (abfd, try_again);
@@ -201,7 +201,7 @@ aout_adobe_callback (abfd)
if (sect->name == try_again) {
newname = (char *) bfd_zalloc(abfd, strlen (sect->name));
if (newname == NULL) {
- bfd_error = no_memory;
+ bfd_set_error (bfd_error_no_memory);
return 0;
}
strcpy (newname, sect->name);
@@ -255,7 +255,7 @@ aout_adobe_mkobject (abfd)
rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, sizeof (struct bout_data_struct));
if (rawptr == NULL) {
- bfd_error = no_memory;
+ bfd_set_error (bfd_error_no_memory);
return false;
}
@@ -340,7 +340,8 @@ aout_adobe_write_object_contents (abfd)
{
bfd_seek (abfd, (file_ptr)(N_SYMOFF(*exec_hdr(abfd))), SEEK_SET);
- aout_32_write_syms (abfd);
+ if (! aout_32_write_syms (abfd))
+ return false;
bfd_seek (abfd, (file_ptr)(N_TRELOFF(*exec_hdr(abfd))), SEEK_SET);
@@ -439,9 +440,9 @@ aout_adobe_set_arch_mach (abfd, arch, machine)
}
static int
-DEFUN(aout_adobe_sizeof_headers,(ignore_abfd, ignore),
- bfd *ignore_abfd AND
- boolean ignore)
+aout_adobe_sizeof_headers (ignore_abfd, ignore)
+ bfd *ignore_abfd;
+ boolean ignore;
{
return sizeof(struct internal_exec);
}
@@ -476,11 +477,14 @@ DEFUN(aout_adobe_sizeof_headers,(ignore_abfd, ignore),
#define aout_32_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents
#define aout_32_bfd_relax_section bfd_generic_relax_section
-#define aout_32_bfd_seclet_link bfd_generic_seclet_link
#define aout_32_bfd_reloc_type_lookup \
((CONST struct reloc_howto_struct *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) bfd_nullvoidptr)
#define aout_32_bfd_make_debug_symbol \
((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
+#define aout_32_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
+#define aout_32_bfd_link_add_symbols _bfd_generic_link_add_symbols
+#define aout_32_bfd_final_link _bfd_generic_final_link
+#define aout_32_bfd_free_cached_info bfd_true
bfd_target a_out_adobe_vec =
{
@@ -490,7 +494,7 @@ bfd_target a_out_adobe_vec =
true, /* hdr byte order is big */
(HAS_RELOC | EXEC_P | /* object flags */
HAS_LINENO | HAS_DEBUG |
- HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT ),
+ HAS_SYMS | HAS_LOCALS | WP_TEXT ),
/* section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_DATA | SEC_RELOC),
'_', /* symbol leading char */
@@ -498,8 +502,12 @@ bfd_target a_out_adobe_vec =
16, /* ar_max_namelen */
2, /* minumum alignment power */
- _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_getb64, bfd_getb_signed_64, bfd_putb64,
+ bfd_getb32, bfd_getb_signed_32, bfd_putb32,
+ bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */
+ bfd_getb64, bfd_getb_signed_64, bfd_putb64,
+ bfd_getb32, bfd_getb_signed_32, bfd_putb32,
+ bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */
{_bfd_dummy_target, aout_adobe_object_p, /* bfd_check_format */
bfd_generic_archive_p, _bfd_dummy_target},
{bfd_false, aout_adobe_mkobject, /* bfd_set_format */
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index 906f5f1..dc59e27 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -387,6 +387,23 @@ MY_bfd_final_link (abfd, info)
#define MY_bfd_link_add_symbols NAME(aout,link_add_symbols)
#endif
+#ifndef MY_bfd_copy_private_section_data
+#define MY_bfd_copy_private_section_data \
+ ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
+#endif
+#ifndef MY_bfd_copy_private_bfd_data
+#define MY_bfd_copy_private_bfd_data \
+ ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+#endif
+
+#ifndef MY_bfd_is_local_label
+#define MY_bfd_is_local_label bfd_generic_is_local_label
+#endif
+
+#ifndef MY_bfd_free_cached_info
+#define MY_bfd_free_cached_info bfd_true
+#endif
+
/* Aout symbols normally have leading underscores */
#ifndef MY_symbol_leading_char
#define MY_symbol_leading_char '_'
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 6b0bc8c..d42d2c5 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -47,8 +47,8 @@ here. */
#include "ansidecl.h"
#include "obstack.h"
-#define BFD_VERSION "2.2"
-
+/* These two lines get substitutions done by commands in Makefile.in. */
+#define BFD_VERSION "@VERSION@"
#define BFD_ARCH_SIZE @WORDSIZE@
#if BFD_ARCH_SIZE >= 64
@@ -100,9 +100,9 @@ typedef enum bfd_boolean {bfd_false, bfd_true} boolean;
typedef long int file_ptr;
/* Support for different sizes of target format ints and addresses. If the
- host implements 64-bit values, it defines HOST_64_BIT to be the appropriate
+ host implements 64-bit values, it defines BFD_HOST_64_BIT to be the appropriate
type. Otherwise, this code will fall back on gcc's "long long" type if gcc
- is being used. HOST_64_BIT must be defined in such a way as to be a valid
+ is being used. BFD_HOST_64_BIT must be defined in such a way as to be a valid
type name by itself or with "unsigned" prefixed. It should be a signed
type by itself.
@@ -111,10 +111,10 @@ typedef long int file_ptr;
#ifdef BFD64
-#if defined (__GNUC__) && !defined (HOST_64_BIT)
-#define HOST_64_BIT long long
-typedef HOST_64_BIT int64_type;
-typedef unsigned HOST_64_BIT uint64_type;
+#if defined (__GNUC__) && !defined (BFD_HOST_64_BIT)
+#define BFD_HOST_64_BIT long long
+typedef BFD_HOST_64_BIT int64_type;
+typedef unsigned BFD_HOST_64_BIT uint64_type;
#endif
#if !defined (uint64_type) && defined (__GNUC__)
@@ -126,10 +126,10 @@ typedef unsigned HOST_64_BIT uint64_type;
#define uint64_typeHIGH(x) ((unsigned long)(((x) >> 32) & 0xffffffff))
#endif
-typedef unsigned HOST_64_BIT bfd_vma;
-typedef HOST_64_BIT bfd_signed_vma;
-typedef unsigned HOST_64_BIT bfd_size_type;
-typedef unsigned HOST_64_BIT symvalue;
+typedef unsigned BFD_HOST_64_BIT bfd_vma;
+typedef BFD_HOST_64_BIT bfd_signed_vma;
+typedef unsigned BFD_HOST_64_BIT bfd_size_type;
+typedef unsigned BFD_HOST_64_BIT symvalue;
#ifndef fprintf_vma
#define fprintf_vma(s,x) \
fprintf(s,"%08lx%08lx", uint64_typeHIGH(x), uint64_typeLOW(x))
@@ -431,6 +431,8 @@ CAT(NAME,_close_and_cleanup),\
CAT(NAME,_set_section_contents),\
CAT(NAME,_get_section_contents),\
CAT(NAME,_new_section_hook),\
+CAT(NAME,_bfd_copy_private_section_data),\
+CAT(NAME,_bfd_copy_private_bfd_data),\
CAT(NAME,_get_symtab_upper_bound),\
CAT(NAME,_get_symtab),\
CAT(NAME,_get_reloc_upper_bound),\
@@ -438,6 +440,7 @@ CAT(NAME,_canonicalize_reloc),\
CAT(NAME,_make_empty_symbol),\
CAT(NAME,_print_symbol),\
CAT(NAME,_get_symbol_info),\
+CAT(NAME,_bfd_is_local_label),\
CAT(NAME,_get_lineno),\
CAT(NAME,_set_arch_mach),\
CAT(NAME,_openr_next_archived_file),\
@@ -453,7 +456,8 @@ CAT(NAME,_bfd_reloc_type_lookup),\
CAT(NAME,_bfd_make_debug_symbol),\
CAT(NAME,_bfd_link_hash_table_create),\
CAT(NAME,_bfd_link_add_symbols),\
-CAT(NAME,_bfd_final_link)
+CAT(NAME,_bfd_final_link),\
+CAT(NAME,_bfd_free_cached_info)
#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 25adc05..248c04f 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -456,7 +456,8 @@ CAT(NAME,_bfd_reloc_type_lookup),\
CAT(NAME,_bfd_make_debug_symbol),\
CAT(NAME,_bfd_link_hash_table_create),\
CAT(NAME,_bfd_link_add_symbols),\
-CAT(NAME,_bfd_final_link)
+CAT(NAME,_bfd_final_link),\
+CAT(NAME,_bfd_free_cached_info)
#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
@@ -1929,6 +1930,9 @@ bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd));
#define bfd_final_link(abfd, info) \
BFD_SEND (abfd, _bfd_final_link, (abfd, info))
+#define bfd_free_cached_info(abfd) \
+ BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
+
symindex
bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym));
@@ -2110,6 +2114,9 @@ typedef struct bfd_target
section of the BFD. */
boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
+ /* Ask the BFD to free all cached information. */
+ boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
+
PTR backend_data;
} bfd_target;
bfd_target *
diff --git a/bfd/bfd.c b/bfd/bfd.c
index d772e5e..91bac07 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -806,5 +806,8 @@ DESCRIPTION
.#define bfd_final_link(abfd, info) \
. BFD_SEND (abfd, _bfd_final_link, (abfd, info))
.
+.#define bfd_free_cached_info(abfd) \
+. BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
+.
*/
diff --git a/bfd/bout.c b/bfd/bout.c
index 5dcc29d..971247c 100644
--- a/bfd/bout.c
+++ b/bfd/bout.c
@@ -1379,6 +1379,7 @@ b_out_get_relocated_section_contents (in_abfd, link_info, link_order, data,
#define aout_32_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
#define aout_32_bfd_link_add_symbols _bfd_generic_link_add_symbols
#define aout_32_bfd_final_link _bfd_generic_final_link
+#define aout_32_bfd_free_cached_info bfd_true
bfd_target b_out_vec_big_host =
{
diff --git a/bfd/cisco-core.c b/bfd/cisco-core.c
index dc9775f..2a916bf 100644
--- a/bfd/cisco-core.c
+++ b/bfd/cisco-core.c
@@ -339,6 +339,7 @@ cisco_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define cisco_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
+#define cisco_bfd_free_cached_info bfd_true
bfd_target cisco_core_vec =
{
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 66e5ce5..f320450 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -2526,3 +2526,4 @@ static CONST bfd_coff_backend_data bfd_coff_std_swap_table =
#ifndef coff_bfd_is_local_label
#define coff_bfd_is_local_label bfd_generic_is_local_label
#endif
+#define coff_bfd_free_cached_info bfd_true
diff --git a/bfd/elf32-target.h b/bfd/elf32-target.h
index 79bacb6..951913c 100644
--- a/bfd/elf32-target.h
+++ b/bfd/elf32-target.h
@@ -71,6 +71,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef bfd_elf32_bfd_is_local_label
#define bfd_elf32_bfd_is_local_label bfd_generic_is_local_label
#endif
+#ifndef bfd_elf32_bfd_free_cached_info
+#define bfd_elf32_bfd_free_cached_info bfd_true
+#endif
#ifndef elf_info_to_howto_rel
#define elf_info_to_howto_rel 0
diff --git a/bfd/elf64-target.h b/bfd/elf64-target.h
index 75ba998..454f0d5 100644
--- a/bfd/elf64-target.h
+++ b/bfd/elf64-target.h
@@ -68,10 +68,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define bfd_elf64_bfd_copy_private_bfd_data \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
#endif
-
#ifndef bfd_elf64_bfd_is_local_label
#define bfd_elf64_bfd_is_local_label bfd_generic_is_local_label
#endif
+#ifndef bfd_elf64_bfd_free_cached_info
+#define bfd_elf64_bfd_free_cached_info bfd_true
+#endif
#ifndef elf_info_to_howto_rel
#define elf_info_to_howto_rel 0
diff --git a/bfd/hppabsd-core.c b/bfd/hppabsd-core.c
index 70270ae..96b82d0 100644
--- a/bfd/hppabsd-core.c
+++ b/bfd/hppabsd-core.c
@@ -291,6 +291,7 @@ hppabsd_core_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define hppabsd_core_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
+#define hppabsd_core_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
static void
diff --git a/bfd/hpux-core.c b/bfd/hpux-core.c
index 86555de..ef9f32d 100644
--- a/bfd/hpux-core.c
+++ b/bfd/hpux-core.c
@@ -273,6 +273,7 @@ hpux_core_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define hpux_core_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
+#define hpux_core_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
void
diff --git a/bfd/i386os9k.c b/bfd/i386os9k.c
index 14e8366..c6955fe 100644
--- a/bfd/i386os9k.c
+++ b/bfd/i386os9k.c
@@ -31,33 +31,33 @@ static bfd_target *os9k_callback PARAMS ((bfd *));
/* Swaps the information in an executable header taken from a raw byte
stream memory image, into the internal exec_header structure. */
void
-DEFUN(os9k_swap_exec_header_in,(abfd, raw_bytes, execp),
- bfd *abfd AND
- mh_com *raw_bytes AND
- struct internal_exec *execp)
+os9k_swap_exec_header_in (abfd, raw_bytes, execp)
+ bfd *abfd;
+ mh_com *raw_bytes;
+ struct internal_exec *execp;
{
- mh_com *bytes = (mh_com *)raw_bytes;
+ mh_com *bytes = (mh_com *) raw_bytes;
unsigned int dload, dmemsize, dmemstart;
/* Now fill in fields in the execp, from the bytes in the raw data. */
- execp->a_info = bfd_h_get_16 (abfd, bytes->m_sync);
- execp->a_syms = 0;
- execp->a_entry = bfd_h_get_32 (abfd, bytes->m_exec);
+ execp->a_info = bfd_h_get_16 (abfd, bytes->m_sync);
+ execp->a_syms = 0;
+ execp->a_entry = bfd_h_get_32 (abfd, bytes->m_exec);
execp->a_talign = 2;
execp->a_dalign = 2;
execp->a_balign = 2;
- dload = bfd_h_get_32 (abfd, bytes->m_idata);
+ dload = bfd_h_get_32 (abfd, bytes->m_idata);
execp->a_data = dload + 8;
- bfd_seek(abfd, (file_ptr)dload, SEEK_SET);
- bfd_read(&dmemstart, sizeof(dmemstart), 1, abfd);
- bfd_read(&dmemsize, sizeof(dmemsize), 1, abfd);
+ bfd_seek (abfd, (file_ptr) dload, SEEK_SET);
+ bfd_read (&dmemstart, sizeof (dmemstart), 1, abfd);
+ bfd_read (&dmemsize, sizeof (dmemsize), 1, abfd);
- execp->a_tload = 0;
- execp->a_dload = bfd_h_get_32 (abfd, (unsigned char *)&dmemstart);
+ execp->a_tload = 0;
+ execp->a_dload = bfd_h_get_32 (abfd, (unsigned char *) &dmemstart);
execp->a_text = dload - execp->a_tload;
- execp->a_data = bfd_h_get_32 (abfd, (unsigned char *)&dmemsize);
+ execp->a_data = bfd_h_get_32 (abfd, (unsigned char *) &dmemsize);
execp->a_bss = bfd_h_get_32 (abfd, bytes->m_data) - execp->a_data;
execp->a_trsize = 0;
@@ -68,35 +68,36 @@ DEFUN(os9k_swap_exec_header_in,(abfd, raw_bytes, execp),
/* Swaps the information in an internal exec header structure into the
supplied buffer ready for writing to disk. */
-PROTO(void, os9k_swap_exec_header_out,
- (bfd *abfd,
- struct internal_exec *execp,
- struct mh_com *raw_bytes));
+PROTO (void, os9k_swap_exec_header_out,
+ (bfd * abfd,
+ struct internal_exec * execp,
+ struct mh_com * raw_bytes));
void
-DEFUN(os9k_swap_exec_header_out,(abfd, execp, raw_bytes),
- bfd *abfd AND
- struct internal_exec *execp AND
- mh_com *raw_bytes)
+os9k_swap_exec_header_out (abfd, execp, raw_bytes)
+ bfd *abfd;
+ struct internal_exec *execp;
+ mh_com *raw_bytes;
{
- mh_com *bytes = (mh_com *)raw_bytes;
+ mh_com *bytes = (mh_com *) raw_bytes;
/* Now fill in fields in the raw data, from the fields in the exec struct. */
- bfd_h_put_32 (abfd, execp->a_info , bytes->e_info);
- bfd_h_put_32 (abfd, execp->a_text , bytes->e_text);
- bfd_h_put_32 (abfd, execp->a_data , bytes->e_data);
- bfd_h_put_32 (abfd, execp->a_bss , bytes->e_bss);
- bfd_h_put_32 (abfd, execp->a_syms , bytes->e_syms);
- bfd_h_put_32 (abfd, execp->a_entry , bytes->e_entry);
+ bfd_h_put_32 (abfd, execp->a_info, bytes->e_info);
+ bfd_h_put_32 (abfd, execp->a_text, bytes->e_text);
+ bfd_h_put_32 (abfd, execp->a_data, bytes->e_data);
+ bfd_h_put_32 (abfd, execp->a_bss, bytes->e_bss);
+ bfd_h_put_32 (abfd, execp->a_syms, bytes->e_syms);
+ bfd_h_put_32 (abfd, execp->a_entry, bytes->e_entry);
bfd_h_put_32 (abfd, execp->a_trsize, bytes->e_trsize);
bfd_h_put_32 (abfd, execp->a_drsize, bytes->e_drsize);
- bfd_h_put_32 (abfd, execp->a_tload , bytes->e_tload);
- bfd_h_put_32 (abfd, execp->a_dload , bytes->e_dload);
+ bfd_h_put_32 (abfd, execp->a_tload, bytes->e_tload);
+ bfd_h_put_32 (abfd, execp->a_dload, bytes->e_dload);
bytes->e_talign[0] = execp->a_talign;
bytes->e_dalign[0] = execp->a_dalign;
bytes->e_balign[0] = execp->a_balign;
bytes->e_relaxable[0] = execp->a_relaxable;
}
-#endif 0
+
+#endif /* 0 */
static bfd_target *
os9k_object_p (abfd)
@@ -105,17 +106,19 @@ os9k_object_p (abfd)
struct internal_exec anexec;
mh_com exec_bytes;
- if (bfd_read ((PTR) &exec_bytes, MHCOM_BYTES_SIZE, 1, abfd)
- != MHCOM_BYTES_SIZE) {
- bfd_set_error (bfd_error_wrong_format);
- return 0;
- }
+ if (bfd_read ((PTR) & exec_bytes, MHCOM_BYTES_SIZE, 1, abfd)
+ != MHCOM_BYTES_SIZE)
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return 0;
+ }
anexec.a_info = bfd_h_get_16 (abfd, exec_bytes.m_sync);
- if (N_BADMAG (anexec)) {
- bfd_set_error (bfd_error_wrong_format);
- return 0;
- }
+ if (N_BADMAG (anexec))
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ return 0;
+ }
os9k_swap_exec_header_in (abfd, &exec_bytes, &anexec);
return aout_32_some_aout_object_p (abfd, &anexec, os9k_callback);
@@ -133,7 +136,7 @@ os9k_callback (abfd)
unsigned long bss_start;
/* Architecture and machine type */
- bfd_set_arch_mach(abfd, bfd_arch_i386, 0);
+ bfd_set_arch_mach (abfd, bfd_arch_i386, 0);
/* The positions of the string table and symbol table. */
obj_str_filepos (abfd) = 0;
@@ -142,7 +145,7 @@ os9k_callback (abfd)
/* The alignments of the sections */
obj_textsec (abfd)->alignment_power = execp->a_talign;
obj_datasec (abfd)->alignment_power = execp->a_dalign;
- obj_bsssec (abfd)->alignment_power = execp->a_balign;
+ obj_bsssec (abfd)->alignment_power = execp->a_balign;
/* The starting addresses of the sections. */
obj_textsec (abfd)->vma = execp->a_tload;
@@ -151,7 +154,7 @@ os9k_callback (abfd)
/* And reload the sizes, since the aout module zaps them */
obj_textsec (abfd)->_raw_size = execp->a_text;
- bss_start = execp->a_dload + execp->a_data; /* BSS = end of data section */
+ bss_start = execp->a_dload + execp->a_data; /* BSS = end of data section */
obj_bsssec (abfd)->vma = align_power (bss_start, execp->a_balign);
/* The file positions of the sections */
@@ -163,17 +166,18 @@ os9k_callback (abfd)
obj_datasec (abfd)->rel_filepos = N_DROFF(*execp);
*/
- adata(abfd).page_size = 1; /* Not applicable. */
- adata(abfd).segment_size = 1; /* Not applicable. */
- adata(abfd).exec_bytes_size = MHCOM_BYTES_SIZE;
+ adata (abfd).page_size = 1; /* Not applicable. */
+ adata (abfd).segment_size = 1;/* Not applicable. */
+ adata (abfd).exec_bytes_size = MHCOM_BYTES_SIZE;
return abfd->xvec;
}
#if 0
-struct bout_data_struct {
- struct aoutdata a;
- struct internal_exec e;
+struct bout_data_struct
+{
+ struct aoutdata a;
+ struct internal_exec e;
};
static boolean
@@ -183,7 +187,8 @@ os9k_mkobject (abfd)
struct bout_data_struct *rawptr;
rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, sizeof (struct bout_data_struct));
- if (rawptr == NULL) {
+ if (rawptr == NULL)
+ {
bfd_set_error (bfd_error_no_memory);
return false;
}
@@ -192,9 +197,9 @@ os9k_mkobject (abfd)
exec_hdr (abfd) = &rawptr->e;
/* For simplicity's sake we just make all the sections right here. */
- obj_textsec (abfd) = (asection *)NULL;
- obj_datasec (abfd) = (asection *)NULL;
- obj_bsssec (abfd) = (asection *)NULL;
+ obj_textsec (abfd) = (asection *) NULL;
+ obj_datasec (abfd) = (asection *) NULL;
+ obj_bsssec (abfd) = (asection *) NULL;
bfd_make_section (abfd, ".text");
bfd_make_section (abfd, ".data");
@@ -217,9 +222,9 @@ os9k_write_object_contents (abfd)
exec_hdr (abfd)->a_syms = bfd_get_symcount (abfd) * sizeof (struct nlist);
exec_hdr (abfd)->a_entry = bfd_get_start_address (abfd);
exec_hdr (abfd)->a_trsize = ((obj_textsec (abfd)->reloc_count) *
- sizeof (struct relocation_info));
+ sizeof (struct relocation_info));
exec_hdr (abfd)->a_drsize = ((obj_datasec (abfd)->reloc_count) *
- sizeof (struct relocation_info));
+ sizeof (struct relocation_info));
exec_hdr (abfd)->a_talign = obj_textsec (abfd)->alignment_power;
exec_hdr (abfd)->a_dalign = obj_datasec (abfd)->alignment_power;
@@ -231,22 +236,24 @@ os9k_write_object_contents (abfd)
bout_swap_exec_header_out (abfd, exec_hdr (abfd), &swapped_hdr);
bfd_seek (abfd, (file_ptr) 0, SEEK_SET);
- bfd_write ((PTR) &swapped_hdr, 1, EXEC_BYTES_SIZE, abfd);
+ bfd_write ((PTR) & swapped_hdr, 1, EXEC_BYTES_SIZE, abfd);
/* Now write out reloc info, followed by syms and strings */
- if (bfd_get_symcount (abfd) != 0)
+ if (bfd_get_symcount (abfd) != 0)
{
- bfd_seek (abfd, (file_ptr)(N_SYMOFF(*exec_hdr(abfd))), SEEK_SET);
+ bfd_seek (abfd, (file_ptr) (N_SYMOFF (*exec_hdr (abfd))), SEEK_SET);
- if (! aout_32_write_syms (abfd))
+ if (!aout_32_write_syms (abfd))
return false;
- bfd_seek (abfd, (file_ptr)(N_TROFF(*exec_hdr(abfd))), SEEK_SET);
+ bfd_seek (abfd, (file_ptr) (N_TROFF (*exec_hdr (abfd))), SEEK_SET);
- if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd))) return false;
- bfd_seek (abfd, (file_ptr)(N_DROFF(*exec_hdr(abfd))), SEEK_SET);
+ if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd)))
+ return false;
+ bfd_seek (abfd, (file_ptr) (N_DROFF (*exec_hdr (abfd))), SEEK_SET);
- if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd))) return false;
+ if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd)))
+ return false;
}
return true;
}
@@ -257,37 +264,40 @@ os9k_set_section_contents (abfd, section, location, offset, count)
sec_ptr section;
unsigned char *location;
file_ptr offset;
- int count;
+ int count;
{
- if (abfd->output_has_begun == false) { /* set by bfd.c handler */
- if ((obj_textsec (abfd) == NULL) || (obj_datasec (abfd) == NULL) /*||
- (obj_textsec (abfd)->_cooked_size == 0) || (obj_datasec (abfd)->_cooked_size == 0)*/) {
- bfd_set_error (bfd_error_invalid_operation);
- return false;
- }
+ if (abfd->output_has_begun == false)
+ { /* set by bfd.c handler */
+ if ((obj_textsec (abfd) == NULL) || (obj_datasec (abfd) == NULL) /*||
+ (obj_textsec (abfd)->_cooked_size == 0) || (obj_datasec (abfd)->_cooked_size == 0)*/ )
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ return false;
+ }
- obj_textsec (abfd)->filepos = sizeof(struct internal_exec);
- obj_datasec(abfd)->filepos = obj_textsec(abfd)->filepos
- + obj_textsec (abfd)->_raw_size;
+ obj_textsec (abfd)->filepos = sizeof (struct internal_exec);
+ obj_datasec (abfd)->filepos = obj_textsec (abfd)->filepos
+ + obj_textsec (abfd)->_raw_size;
- }
+ }
/* regardless, once we know what we're doing, we might as well get going */
bfd_seek (abfd, section->filepos + offset, SEEK_SET);
- if (count != 0) {
- return (bfd_write ((PTR)location, 1, count, abfd) == count) ?true:false;
- }
+ if (count != 0)
+ {
+ return (bfd_write ((PTR) location, 1, count, abfd) == count) ? true : false;
+ }
return true;
}
-#endif 0
+#endif /* 0 */
-static int
-DEFUN(os9k_sizeof_headers,(ignore_abfd, ignore),
- bfd *ignore_abfd AND
- boolean ignore)
+static int
+os9k_sizeof_headers (ignore_abfd, ignore)
+ bfd *ignore_abfd;
+ boolean ignore;
{
- return sizeof(struct internal_exec);
+ return sizeof (struct internal_exec);
}
@@ -328,34 +338,34 @@ DEFUN(os9k_sizeof_headers,(ignore_abfd, ignore),
#define aout_32_bfd_reloc_type_lookup \
((CONST struct reloc_howto_struct *(*) PARAMS \
((bfd *, bfd_reloc_code_real_type))) bfd_nullvoidptr)
+#define aout_32_bfd_free_cached_info bfd_true
bfd_target i386os9k_vec =
{
- "i386os9k", /* name */
+ "i386os9k", /* name */
bfd_target_os9k_flavour,
- false, /* data byte order is little */
- false, /* hdr byte order is big */
+ false, /* data byte order is little */
+ false, /* hdr byte order is big */
(HAS_RELOC | EXEC_P | WP_TEXT), /* object flags */
- (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD ), /* section flags */
- 0, /* symbol leading char */
- ' ', /* ar_pad_char */
- 16, /* ar_max_namelen */
- 2, /* minumum alignment power */
+ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD), /* section flags */
+ 0, /* symbol leading char */
+ ' ', /* ar_pad_char */
+ 16, /* ar_max_namelen */
+ 2, /* minumum alignment power */
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
- bfd_getl32, bfd_getl_signed_32, bfd_putl32,
- bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
- bfd_getl32, bfd_getl_signed_32, bfd_putl32,
- bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
- {_bfd_dummy_target, os9k_object_p, /* bfd_check_format */
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
+ {_bfd_dummy_target, os9k_object_p, /* bfd_check_format */
bfd_generic_archive_p, _bfd_dummy_target},
- {bfd_false, bfd_false, /* bfd_set_format */
+ {bfd_false, bfd_false, /* bfd_set_format */
_bfd_generic_mkarchive, bfd_false},
- {bfd_false, bfd_false, /* bfd_write_contents */
+ {bfd_false, bfd_false, /* bfd_write_contents */
_bfd_write_archive_contents, bfd_false},
- JUMP_TABLE(aout_32),
+ JUMP_TABLE (aout_32),
(PTR) 0,
};
-
diff --git a/bfd/ieee.c b/bfd/ieee.c
index 24b394e..45c76e1 100644
--- a/bfd/ieee.c
+++ b/bfd/ieee.c
@@ -3325,6 +3325,7 @@ ieee_bfd_debug_info_accumulate (abfd, section)
#define ieee_bfd_copy_private_bfd_data \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
#define ieee_bfd_is_local_label bfd_generic_is_local_label
+#define ieee_bfd_free_cached_info bfd_true
/*SUPPRESS 460 */
bfd_target ieee_vec =
diff --git a/bfd/irix-core.c b/bfd/irix-core.c
index 08f2a12..279fb4a 100644
--- a/bfd/irix-core.c
+++ b/bfd/irix-core.c
@@ -246,6 +246,7 @@ irix_core_make_empty_symbol (abfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define irix_core_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
+#define irix_core_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
void
diff --git a/bfd/libecoff.h b/bfd/libecoff.h
index f413837..cbd9347 100644
--- a/bfd/libecoff.h
+++ b/bfd/libecoff.h
@@ -276,18 +276,12 @@ extern struct bfd_link_hash_table *ecoff_bfd_link_hash_table_create
extern boolean ecoff_bfd_link_add_symbols
PARAMS ((bfd *, struct bfd_link_info *));
extern boolean ecoff_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *));
-
-#ifndef ecoff_bfd_copy_private_section_data
#define ecoff_bfd_copy_private_section_data \
((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
-#endif
-#ifndef ecoff_bfd_copy_private_bfd_data
#define ecoff_bfd_copy_private_bfd_data \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
-#endif
-#ifndef ecoff_bfd_is_local_label
#define ecoff_bfd_is_local_label bfd_generic_is_local_label
-#endif
+#define ecoff_bfd_free_cached_info bfd_true
/* Hook functions for the generic COFF section reading code. */
extern PTR ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr));
diff --git a/bfd/nlm-target.h b/bfd/nlm-target.h
index 147e4d4..4cbc8a7 100644
--- a/bfd/nlm-target.h
+++ b/bfd/nlm-target.h
@@ -17,6 +17,82 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+#define nlm_core_file_p \
+ ((bfd_target *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
+
+/* The JUMP_TABLE macro is used in the target structure to get names
+ for all the functions. We use JUMP_TABLE(nlm) to get a prefix of
+ nlm for all the functions. Here we redefine those names. Many of
+ the functions are the same for any NLM target. The others are
+ defined in terms of the nlmNAME macro. */
+
+#define nlm_core_file_failing_command \
+ _bfd_dummy_core_file_failing_command
+#define nlm_core_file_failing_signal \
+ _bfd_dummy_core_file_failing_signal
+#define nlm_core_file_matches_executable_p \
+ _bfd_dummy_core_file_matches_executable_p
+#define nlm_slurp_armap bfd_slurp_coff_armap
+#define nlm_slurp_extended_name_table \
+ _bfd_slurp_extended_name_table
+#define nlm_truncate_arname bfd_dont_truncate_arname
+#define nlm_write_armap coff_write_armap
+#define nlm_close_and_cleanup bfd_generic_close_and_cleanup
+#define nlm_set_section_contents \
+ nlmNAME(set_section_contents)
+#define nlm_get_section_contents \
+ bfd_generic_get_section_contents
+#define nlm_new_section_hook _bfd_dummy_new_section_hook
+#define nlm_get_symtab_upper_bound \
+ nlmNAME(get_symtab_upper_bound)
+#define nlm_get_symtab nlmNAME(get_symtab)
+#define nlm_get_reloc_upper_bound \
+ nlmNAME(get_reloc_upper_bound)
+#define nlm_canonicalize_reloc nlmNAME(canonicalize_reloc)
+#define nlm_make_empty_symbol nlmNAME(make_empty_symbol)
+#define nlm_print_symbol nlmNAME(print_symbol)
+#define nlm_get_symbol_info nlmNAME(get_symbol_info)
+#define nlm_get_lineno ((alent * (*) PARAMS ((bfd *, asymbol *))) \
+ bfd_false)
+/* We use the generic function nlm_set_arch_mach. */
+#define nlm_openr_next_archived_file \
+ bfd_generic_openr_next_archived_file
+#define nlm_find_nearest_line \
+ ((boolean (*) PARAMS ((bfd *, asection *, \
+ asymbol **, bfd_vma, \
+ CONST char **, \
+ CONST char **, \
+ unsigned int *))) \
+ bfd_false)
+#define nlm_generic_stat_arch_elt \
+ bfd_generic_stat_arch_elt
+#define nlm_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0u)
+#define nlm_bfd_debug_info_start \
+ bfd_void
+#define nlm_bfd_debug_info_end bfd_void
+#define nlm_bfd_debug_info_accumulate \
+ ((void (*) PARAMS ((bfd*, struct sec *))) \
+ bfd_void)
+#define nlm_bfd_get_relocated_section_contents \
+ bfd_generic_get_relocated_section_contents
+#define nlm_bfd_relax_section bfd_generic_relax_section
+#define nlm_bfd_reloc_type_lookup \
+ bfd_default_reloc_type_lookup
+#define nlm_bfd_make_debug_symbol \
+ ((asymbol *(*) PARAMS ((bfd *, void *, \
+ unsigned long))) \
+ bfd_nullvoidptr)
+#define nlm_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
+#define nlm_bfd_link_add_symbols _bfd_generic_link_add_symbols
+#define nlm_bfd_final_link _bfd_generic_final_link
+
+#define nlm_bfd_copy_private_section_data \
+ ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
+#define nlm_bfd_copy_private_bfd_data \
+ ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+#define nlm_bfd_is_local_label bfd_generic_is_local_label
+#define nlm_bfd_free_cached_info bfd_true
+
/* This structure contains everything that BFD knows about a target.
It includes things like its byte order, name, what routines to call
to do various operations, etc. Every BFD points to a target structure
@@ -42,8 +118,8 @@ bfd_target TARGET_BIG_SYM =
true,
/* object_flags: mask of all file flags */
- (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS |
- DYNAMIC | WP_TEXT),
+ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
+ | WP_TEXT),
/* section_flags: mask of all section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
@@ -69,20 +145,20 @@ bfd_target TARGET_BIG_SYM =
3,
/* Routines to byte-swap various sized integers from the data sections */
- _do_getb64, _do_getb_signed_64, _do_putb64,
- _do_getb32, _do_getb_signed_32, _do_putb32,
- _do_getb16, _do_getb_signed_16, _do_putb16,
+ bfd_getb64, bfd_getb_signed_64, bfd_putb64,
+ bfd_getb32, bfd_getb_signed_32, bfd_putb32,
+ bfd_getb16, bfd_getb_signed_16, bfd_putb16,
/* Routines to byte-swap various sized integers from the file headers */
- _do_getb64, _do_getb_signed_64, _do_putb64,
- _do_getb32, _do_getb_signed_32, _do_putb32,
- _do_getb16, _do_getb_signed_16, _do_putb16,
+ bfd_getb64, bfd_getb_signed_64, bfd_putb64,
+ bfd_getb32, bfd_getb_signed_32, bfd_putb32,
+ bfd_getb16, bfd_getb_signed_16, bfd_putb16,
/* bfd_check_format: check the format of a file being read */
{ _bfd_dummy_target, /* unknown format */
nlmNAME(object_p), /* assembler/linker output (object file) */
bfd_generic_archive_p, /* an archive */
- nlmNAME(core_file_p) /* a core file */
+ nlm_core_file_p /* a core file */
},
/* bfd_set_format: set the format of a file being written */
@@ -101,10 +177,10 @@ bfd_target TARGET_BIG_SYM =
/* Initialize a jump table with the standard macro. All names start with
"nlm" */
- JUMP_TABLE(JUMP_TABLE_PREFIX),
+ JUMP_TABLE(nlm),
/* backend_data: */
- (PTR) NULL,
+ (PTR) TARGET_BACKEND_DATA
};
#endif
@@ -124,8 +200,8 @@ bfd_target TARGET_LITTLE_SYM =
false, /* Nope -- this one's little endian */
/* object_flags: mask of all file flags */
- (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS |
- DYNAMIC | WP_TEXT),
+ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
+ | WP_TEXT),
/* section_flags: mask of all section flags */
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
@@ -151,20 +227,20 @@ bfd_target TARGET_LITTLE_SYM =
3,
/* Routines to byte-swap various sized integers from the data sections */
- _do_getl64, _do_getl_signed_64, _do_putl64,
- _do_getl32, _do_getl_signed_32, _do_putl32,
- _do_getl16, _do_getl_signed_16, _do_putl16,
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64,
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16,
/* Routines to byte-swap various sized integers from the file headers */
- _do_getl64, _do_getl_signed_64, _do_putl64,
- _do_getl32, _do_getl_signed_32, _do_putl32,
- _do_getl16, _do_getl_signed_16, _do_putl16,
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64,
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32,
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16,
/* bfd_check_format: check the format of a file being read */
{ _bfd_dummy_target, /* unknown format */
nlmNAME(object_p), /* assembler/linker output (object file) */
bfd_generic_archive_p, /* an archive */
- nlmNAME(core_file_p) /* a core file */
+ nlm_core_file_p /* a core file */
},
/* bfd_set_format: set the format of a file being written */
@@ -183,9 +259,9 @@ bfd_target TARGET_LITTLE_SYM =
/* Initialize a jump table with the standard macro. All names start with
"nlm" */
- JUMP_TABLE(JUMP_TABLE_PREFIX),
+ JUMP_TABLE(nlm),
/* backend_data: */
- (PTR) NULL,
+ (PTR) TARGET_BACKEND_DATA
};
#endif
diff --git a/bfd/oasys.c b/bfd/oasys.c
index a8f3bb8..e538861 100644
--- a/bfd/oasys.c
+++ b/bfd/oasys.c
@@ -1442,6 +1442,7 @@ oasys_sizeof_headers (abfd, exec)
#define oasys_bfd_copy_private_bfd_data \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
#define oasys_bfd_is_local_label bfd_generic_is_local_label
+#define oasys_bfd_free_cached_info bfd_true
/*SUPPRESS 460 */
bfd_target oasys_vec =
diff --git a/bfd/osf-core.c b/bfd/osf-core.c
index 33e4d4a..28693db 100644
--- a/bfd/osf-core.c
+++ b/bfd/osf-core.c
@@ -258,6 +258,7 @@ osf_core_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define osf_core_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
+#define osf_core_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
static void
diff --git a/bfd/ptrace-core.c b/bfd/ptrace-core.c
index bfc97e5..ba9a54a 100644
--- a/bfd/ptrace-core.c
+++ b/bfd/ptrace-core.c
@@ -255,6 +255,7 @@ ptrace_unix_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define ptrace_unix_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
+#define ptrace_unix_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
void
diff --git a/bfd/som.c b/bfd/som.c
index 98991e1..ac7057d 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -5464,6 +5464,7 @@ som_write_armap (abfd)
#define som_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
#define som_bfd_link_add_symbols _bfd_generic_link_add_symbols
#define som_bfd_final_link _bfd_generic_final_link
+#define som_bfd_free_cached_info bfd_true
/* Core file support is in the hpux-core backend. */
#define som_core_file_failing_command _bfd_dummy_core_file_failing_command
diff --git a/bfd/srec.c b/bfd/srec.c
index 1f4a8be..e79460c 100644
--- a/bfd/srec.c
+++ b/bfd/srec.c
@@ -957,6 +957,7 @@ srec_print_symbol (ignore_abfd, afile, symbol, how)
#define srec_bfd_copy_private_bfd_data \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
#define srec_bfd_is_local_label bfd_generic_is_local_label
+#define srec_bfd_free_cached_info bfd_true
bfd_target srec_vec =
{
diff --git a/bfd/targets.c b/bfd/targets.c
index 0b45534..c034c15 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -345,6 +345,9 @@ Symbols and relocations.
. section of the BFD. *}
. boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
.
+. {* Ask the BFD to free all cached information. *}
+. boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
+.
Data for use by back-end routines, which isn't generic enough to belong
in this structure.
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index 874a87e..cf9af54 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -1028,6 +1028,7 @@ tekhex_print_symbol (ignore_abfd, filep, symbol, how)
#define tekhex_bfd_copy_private_bfd_data \
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
#define tekhex_bfd_is_local_label bfd_generic_is_local_label
+#define tekhex_bfd_free_cached_info bfd_true
bfd_target tekhex_vec =
{
diff --git a/bfd/trad-core.c b/bfd/trad-core.c
index 6d57bbb..1dbd881 100644
--- a/bfd/trad-core.c
+++ b/bfd/trad-core.c
@@ -345,6 +345,7 @@ trad_unix_core_file_matches_executable_p (core_bfd, exec_bfd)
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
#define trad_unix_bfd_is_local_label \
((boolean (*) PARAMS ((bfd *, asection *))) bfd_false)
+#define trad_unix_bfd_free_cached_info bfd_true
/* If somebody calls any byte-swapping routines, shoot them. */
void