* 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.
This commit is contained in:
parent
7ed5e9704b
commit
9deaaaf1b3
27 changed files with 330 additions and 171 deletions
|
@ -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)
|
Thu Mar 31 11:52:15 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||||
|
|
||||||
Added some support for Irix 4 shared libraries.
|
Added some support for Irix 4 shared libraries.
|
||||||
|
|
|
@ -309,6 +309,7 @@ aix386_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define aix386_bfd_is_local_label \
|
#define aix386_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asection *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asection *))) bfd_false)
|
||||||
|
#define aix386_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
void
|
void
|
||||||
|
|
|
@ -32,7 +32,7 @@ extern bfd_target a_out_adobe_vec; /* Forward decl */
|
||||||
PROTO (static bfd_target *, aout_adobe_callback, (bfd *));
|
PROTO (static bfd_target *, aout_adobe_callback, (bfd *));
|
||||||
|
|
||||||
PROTO (boolean, aout_32_slurp_symbol_table, (bfd *abfd));
|
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));
|
PROTO (static void, aout_adobe_write_section, (bfd *abfd, sec_ptr sect));
|
||||||
|
|
||||||
/* Swaps the information in an executable header taken from a raw byte
|
/* 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));
|
struct internal_exec *execp));
|
||||||
|
|
||||||
void
|
void
|
||||||
DEFUN(aout_adobe_swap_exec_header_in,(abfd, raw_bytes, execp),
|
aout_adobe_swap_exec_header_in (abfd, raw_bytes, execp)
|
||||||
bfd *abfd AND
|
bfd *abfd;
|
||||||
struct external_exec *raw_bytes AND
|
struct external_exec *raw_bytes;
|
||||||
struct internal_exec *execp)
|
struct internal_exec *execp;
|
||||||
{
|
{
|
||||||
struct external_exec *bytes = (struct external_exec *)raw_bytes;
|
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 internal_exec *execp,
|
||||||
struct external_exec *raw_bytes));
|
struct external_exec *raw_bytes));
|
||||||
void
|
void
|
||||||
DEFUN(aout_adobe_swap_exec_header_out,(abfd, execp, raw_bytes),
|
aout_adobe_swap_exec_header_out (abfd, execp, raw_bytes)
|
||||||
bfd *abfd AND
|
bfd *abfd;
|
||||||
struct internal_exec *execp AND
|
struct internal_exec *execp;
|
||||||
struct external_exec *raw_bytes)
|
struct external_exec *raw_bytes;
|
||||||
{
|
{
|
||||||
struct external_exec *bytes = (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)
|
if (bfd_read ((PTR) &exec_bytes, 1, EXEC_BYTES_SIZE, abfd)
|
||||||
!= EXEC_BYTES_SIZE) {
|
!= EXEC_BYTES_SIZE) {
|
||||||
bfd_error = wrong_format;
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ aout_adobe_object_p (abfd)
|
||||||
; /* Just continue anyway, if specifically set to this format */
|
; /* Just continue anyway, if specifically set to this format */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bfd_error = wrong_format;
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ aout_adobe_callback (abfd)
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (bfd_read ((PTR) ext, 1, sizeof (*ext), abfd) != sizeof (*ext)) {
|
if (bfd_read ((PTR) ext, 1, sizeof (*ext), abfd) != sizeof (*ext)) {
|
||||||
bfd_error = wrong_format;
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
switch (ext->e_type[0]) {
|
switch (ext->e_type[0]) {
|
||||||
|
@ -187,11 +187,11 @@ aout_adobe_callback (abfd)
|
||||||
/* First one is called ".text" or whatever; subsequent ones are
|
/* First one is called ".text" or whatever; subsequent ones are
|
||||||
".text1", ".text2", ... */
|
".text1", ".text2", ... */
|
||||||
|
|
||||||
bfd_error = no_error;
|
bfd_set_error (bfd_error_no_error);
|
||||||
sect = bfd_make_section (abfd, section_name);
|
sect = bfd_make_section (abfd, section_name);
|
||||||
trynum = 0;
|
trynum = 0;
|
||||||
while (!sect) {
|
while (!sect) {
|
||||||
if (bfd_error != no_error)
|
if (bfd_get_error () != bfd_error_no_error)
|
||||||
return 0; /* Some other error -- slide into the sunset */
|
return 0; /* Some other error -- slide into the sunset */
|
||||||
sprintf (try_again, "%s%d", section_name, ++trynum);
|
sprintf (try_again, "%s%d", section_name, ++trynum);
|
||||||
sect = bfd_make_section (abfd, try_again);
|
sect = bfd_make_section (abfd, try_again);
|
||||||
|
@ -201,7 +201,7 @@ aout_adobe_callback (abfd)
|
||||||
if (sect->name == try_again) {
|
if (sect->name == try_again) {
|
||||||
newname = (char *) bfd_zalloc(abfd, strlen (sect->name));
|
newname = (char *) bfd_zalloc(abfd, strlen (sect->name));
|
||||||
if (newname == NULL) {
|
if (newname == NULL) {
|
||||||
bfd_error = no_memory;
|
bfd_set_error (bfd_error_no_memory);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
strcpy (newname, sect->name);
|
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));
|
rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, sizeof (struct bout_data_struct));
|
||||||
if (rawptr == NULL) {
|
if (rawptr == NULL) {
|
||||||
bfd_error = no_memory;
|
bfd_set_error (bfd_error_no_memory);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +340,8 @@ aout_adobe_write_object_contents (abfd)
|
||||||
{
|
{
|
||||||
bfd_seek (abfd, (file_ptr)(N_SYMOFF(*exec_hdr(abfd))), SEEK_SET);
|
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);
|
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
|
static int
|
||||||
DEFUN(aout_adobe_sizeof_headers,(ignore_abfd, ignore),
|
aout_adobe_sizeof_headers (ignore_abfd, ignore)
|
||||||
bfd *ignore_abfd AND
|
bfd *ignore_abfd;
|
||||||
boolean ignore)
|
boolean ignore;
|
||||||
{
|
{
|
||||||
return sizeof(struct internal_exec);
|
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_get_relocated_section_contents bfd_generic_get_relocated_section_contents
|
||||||
#define aout_32_bfd_relax_section bfd_generic_relax_section
|
#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 \
|
#define aout_32_bfd_reloc_type_lookup \
|
||||||
((CONST struct reloc_howto_struct *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) bfd_nullvoidptr)
|
((CONST struct reloc_howto_struct *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) bfd_nullvoidptr)
|
||||||
#define aout_32_bfd_make_debug_symbol \
|
#define aout_32_bfd_make_debug_symbol \
|
||||||
((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
|
((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 =
|
bfd_target a_out_adobe_vec =
|
||||||
{
|
{
|
||||||
|
@ -490,7 +494,7 @@ bfd_target a_out_adobe_vec =
|
||||||
true, /* hdr byte order is big */
|
true, /* hdr byte order is big */
|
||||||
(HAS_RELOC | EXEC_P | /* object flags */
|
(HAS_RELOC | EXEC_P | /* object flags */
|
||||||
HAS_LINENO | HAS_DEBUG |
|
HAS_LINENO | HAS_DEBUG |
|
||||||
HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT ),
|
HAS_SYMS | HAS_LOCALS | WP_TEXT ),
|
||||||
/* section flags */
|
/* section flags */
|
||||||
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_DATA | SEC_RELOC),
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_DATA | SEC_RELOC),
|
||||||
'_', /* symbol leading char */
|
'_', /* symbol leading char */
|
||||||
|
@ -498,8 +502,12 @@ bfd_target a_out_adobe_vec =
|
||||||
16, /* ar_max_namelen */
|
16, /* ar_max_namelen */
|
||||||
2, /* minumum alignment power */
|
2, /* minumum alignment power */
|
||||||
|
|
||||||
_do_getb64, _do_putb64, _do_getb32, _do_putb32, _do_getb16, _do_putb16, /* data */
|
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
|
||||||
_do_getb64, _do_putb64, _do_getb32, _do_putb32, _do_getb16, _do_putb16, /* hdrs */
|
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_dummy_target, aout_adobe_object_p, /* bfd_check_format */
|
||||||
bfd_generic_archive_p, _bfd_dummy_target},
|
bfd_generic_archive_p, _bfd_dummy_target},
|
||||||
{bfd_false, aout_adobe_mkobject, /* bfd_set_format */
|
{bfd_false, aout_adobe_mkobject, /* bfd_set_format */
|
||||||
|
|
|
@ -387,6 +387,23 @@ MY_bfd_final_link (abfd, info)
|
||||||
#define MY_bfd_link_add_symbols NAME(aout,link_add_symbols)
|
#define MY_bfd_link_add_symbols NAME(aout,link_add_symbols)
|
||||||
#endif
|
#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 */
|
/* Aout symbols normally have leading underscores */
|
||||||
#ifndef MY_symbol_leading_char
|
#ifndef MY_symbol_leading_char
|
||||||
#define MY_symbol_leading_char '_'
|
#define MY_symbol_leading_char '_'
|
||||||
|
|
30
bfd/bfd-in.h
30
bfd/bfd-in.h
|
@ -47,8 +47,8 @@ here. */
|
||||||
#include "ansidecl.h"
|
#include "ansidecl.h"
|
||||||
#include "obstack.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@
|
#define BFD_ARCH_SIZE @WORDSIZE@
|
||||||
|
|
||||||
#if BFD_ARCH_SIZE >= 64
|
#if BFD_ARCH_SIZE >= 64
|
||||||
|
@ -100,9 +100,9 @@ typedef enum bfd_boolean {bfd_false, bfd_true} boolean;
|
||||||
typedef long int file_ptr;
|
typedef long int file_ptr;
|
||||||
|
|
||||||
/* Support for different sizes of target format ints and addresses. If the
|
/* 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
|
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 name by itself or with "unsigned" prefixed. It should be a signed
|
||||||
type by itself.
|
type by itself.
|
||||||
|
|
||||||
|
@ -111,10 +111,10 @@ typedef long int file_ptr;
|
||||||
|
|
||||||
#ifdef BFD64
|
#ifdef BFD64
|
||||||
|
|
||||||
#if defined (__GNUC__) && !defined (HOST_64_BIT)
|
#if defined (__GNUC__) && !defined (BFD_HOST_64_BIT)
|
||||||
#define HOST_64_BIT long long
|
#define BFD_HOST_64_BIT long long
|
||||||
typedef HOST_64_BIT int64_type;
|
typedef BFD_HOST_64_BIT int64_type;
|
||||||
typedef unsigned HOST_64_BIT uint64_type;
|
typedef unsigned BFD_HOST_64_BIT uint64_type;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined (uint64_type) && defined (__GNUC__)
|
#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))
|
#define uint64_typeHIGH(x) ((unsigned long)(((x) >> 32) & 0xffffffff))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef unsigned HOST_64_BIT bfd_vma;
|
typedef unsigned BFD_HOST_64_BIT bfd_vma;
|
||||||
typedef HOST_64_BIT bfd_signed_vma;
|
typedef BFD_HOST_64_BIT bfd_signed_vma;
|
||||||
typedef unsigned HOST_64_BIT bfd_size_type;
|
typedef unsigned BFD_HOST_64_BIT bfd_size_type;
|
||||||
typedef unsigned HOST_64_BIT symvalue;
|
typedef unsigned BFD_HOST_64_BIT symvalue;
|
||||||
#ifndef fprintf_vma
|
#ifndef fprintf_vma
|
||||||
#define fprintf_vma(s,x) \
|
#define fprintf_vma(s,x) \
|
||||||
fprintf(s,"%08lx%08lx", uint64_typeHIGH(x), uint64_typeLOW(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,_set_section_contents),\
|
||||||
CAT(NAME,_get_section_contents),\
|
CAT(NAME,_get_section_contents),\
|
||||||
CAT(NAME,_new_section_hook),\
|
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_upper_bound),\
|
||||||
CAT(NAME,_get_symtab),\
|
CAT(NAME,_get_symtab),\
|
||||||
CAT(NAME,_get_reloc_upper_bound),\
|
CAT(NAME,_get_reloc_upper_bound),\
|
||||||
|
@ -438,6 +440,7 @@ CAT(NAME,_canonicalize_reloc),\
|
||||||
CAT(NAME,_make_empty_symbol),\
|
CAT(NAME,_make_empty_symbol),\
|
||||||
CAT(NAME,_print_symbol),\
|
CAT(NAME,_print_symbol),\
|
||||||
CAT(NAME,_get_symbol_info),\
|
CAT(NAME,_get_symbol_info),\
|
||||||
|
CAT(NAME,_bfd_is_local_label),\
|
||||||
CAT(NAME,_get_lineno),\
|
CAT(NAME,_get_lineno),\
|
||||||
CAT(NAME,_set_arch_mach),\
|
CAT(NAME,_set_arch_mach),\
|
||||||
CAT(NAME,_openr_next_archived_file),\
|
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_make_debug_symbol),\
|
||||||
CAT(NAME,_bfd_link_hash_table_create),\
|
CAT(NAME,_bfd_link_hash_table_create),\
|
||||||
CAT(NAME,_bfd_link_add_symbols),\
|
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
|
#define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table
|
||||||
|
|
||||||
|
|
|
@ -456,7 +456,8 @@ CAT(NAME,_bfd_reloc_type_lookup),\
|
||||||
CAT(NAME,_bfd_make_debug_symbol),\
|
CAT(NAME,_bfd_make_debug_symbol),\
|
||||||
CAT(NAME,_bfd_link_hash_table_create),\
|
CAT(NAME,_bfd_link_hash_table_create),\
|
||||||
CAT(NAME,_bfd_link_add_symbols),\
|
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
|
#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) \
|
#define bfd_final_link(abfd, info) \
|
||||||
BFD_SEND (abfd, _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
|
symindex
|
||||||
bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym));
|
bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym));
|
||||||
|
|
||||||
|
@ -2110,6 +2114,9 @@ typedef struct bfd_target
|
||||||
section of the BFD. */
|
section of the BFD. */
|
||||||
boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
|
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;
|
PTR backend_data;
|
||||||
} bfd_target;
|
} bfd_target;
|
||||||
bfd_target *
|
bfd_target *
|
||||||
|
|
|
@ -806,5 +806,8 @@ DESCRIPTION
|
||||||
.#define bfd_final_link(abfd, info) \
|
.#define bfd_final_link(abfd, info) \
|
||||||
. BFD_SEND (abfd, _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))
|
||||||
|
.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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_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_link_add_symbols _bfd_generic_link_add_symbols
|
||||||
#define aout_32_bfd_final_link _bfd_generic_final_link
|
#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 =
|
bfd_target b_out_vec_big_host =
|
||||||
{
|
{
|
||||||
|
|
|
@ -339,6 +339,7 @@ cisco_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define cisco_bfd_is_local_label \
|
#define cisco_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||||
|
#define cisco_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
bfd_target cisco_core_vec =
|
bfd_target cisco_core_vec =
|
||||||
{
|
{
|
||||||
|
|
|
@ -2526,3 +2526,4 @@ static CONST bfd_coff_backend_data bfd_coff_std_swap_table =
|
||||||
#ifndef coff_bfd_is_local_label
|
#ifndef coff_bfd_is_local_label
|
||||||
#define coff_bfd_is_local_label bfd_generic_is_local_label
|
#define coff_bfd_is_local_label bfd_generic_is_local_label
|
||||||
#endif
|
#endif
|
||||||
|
#define coff_bfd_free_cached_info bfd_true
|
||||||
|
|
|
@ -71,6 +71,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||||
#ifndef bfd_elf32_bfd_is_local_label
|
#ifndef bfd_elf32_bfd_is_local_label
|
||||||
#define bfd_elf32_bfd_is_local_label bfd_generic_is_local_label
|
#define bfd_elf32_bfd_is_local_label bfd_generic_is_local_label
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef bfd_elf32_bfd_free_cached_info
|
||||||
|
#define bfd_elf32_bfd_free_cached_info bfd_true
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef elf_info_to_howto_rel
|
#ifndef elf_info_to_howto_rel
|
||||||
#define elf_info_to_howto_rel 0
|
#define elf_info_to_howto_rel 0
|
||||||
|
|
|
@ -68,10 +68,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||||
#define bfd_elf64_bfd_copy_private_bfd_data \
|
#define bfd_elf64_bfd_copy_private_bfd_data \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef bfd_elf64_bfd_is_local_label
|
#ifndef bfd_elf64_bfd_is_local_label
|
||||||
#define bfd_elf64_bfd_is_local_label bfd_generic_is_local_label
|
#define bfd_elf64_bfd_is_local_label bfd_generic_is_local_label
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef bfd_elf64_bfd_free_cached_info
|
||||||
|
#define bfd_elf64_bfd_free_cached_info bfd_true
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef elf_info_to_howto_rel
|
#ifndef elf_info_to_howto_rel
|
||||||
#define elf_info_to_howto_rel 0
|
#define elf_info_to_howto_rel 0
|
||||||
|
|
|
@ -291,6 +291,7 @@ hppabsd_core_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define hppabsd_core_bfd_is_local_label \
|
#define hppabsd_core_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||||
|
#define hppabsd_core_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -273,6 +273,7 @@ hpux_core_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define hpux_core_bfd_is_local_label \
|
#define hpux_core_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||||
|
#define hpux_core_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
void
|
void
|
||||||
|
|
|
@ -31,10 +31,10 @@ static bfd_target *os9k_callback PARAMS ((bfd *));
|
||||||
/* Swaps the information in an executable header taken from a raw byte
|
/* Swaps the information in an executable header taken from a raw byte
|
||||||
stream memory image, into the internal exec_header structure. */
|
stream memory image, into the internal exec_header structure. */
|
||||||
void
|
void
|
||||||
DEFUN(os9k_swap_exec_header_in,(abfd, raw_bytes, execp),
|
os9k_swap_exec_header_in (abfd, raw_bytes, execp)
|
||||||
bfd *abfd AND
|
bfd *abfd;
|
||||||
mh_com *raw_bytes AND
|
mh_com *raw_bytes;
|
||||||
struct internal_exec *execp)
|
struct internal_exec *execp;
|
||||||
{
|
{
|
||||||
mh_com *bytes = (mh_com *) raw_bytes;
|
mh_com *bytes = (mh_com *) raw_bytes;
|
||||||
unsigned int dload, dmemsize, dmemstart;
|
unsigned int dload, dmemsize, dmemstart;
|
||||||
|
@ -73,10 +73,10 @@ PROTO(void, os9k_swap_exec_header_out,
|
||||||
struct internal_exec * execp,
|
struct internal_exec * execp,
|
||||||
struct mh_com * raw_bytes));
|
struct mh_com * raw_bytes));
|
||||||
void
|
void
|
||||||
DEFUN(os9k_swap_exec_header_out,(abfd, execp, raw_bytes),
|
os9k_swap_exec_header_out (abfd, execp, raw_bytes)
|
||||||
bfd *abfd AND
|
bfd *abfd;
|
||||||
struct internal_exec *execp AND
|
struct internal_exec *execp;
|
||||||
mh_com *raw_bytes)
|
mh_com *raw_bytes;
|
||||||
{
|
{
|
||||||
mh_com *bytes = (mh_com *) raw_bytes;
|
mh_com *bytes = (mh_com *) raw_bytes;
|
||||||
|
|
||||||
|
@ -96,7 +96,8 @@ DEFUN(os9k_swap_exec_header_out,(abfd, execp, raw_bytes),
|
||||||
bytes->e_balign[0] = execp->a_balign;
|
bytes->e_balign[0] = execp->a_balign;
|
||||||
bytes->e_relaxable[0] = execp->a_relaxable;
|
bytes->e_relaxable[0] = execp->a_relaxable;
|
||||||
}
|
}
|
||||||
#endif 0
|
|
||||||
|
#endif /* 0 */
|
||||||
|
|
||||||
static bfd_target *
|
static bfd_target *
|
||||||
os9k_object_p (abfd)
|
os9k_object_p (abfd)
|
||||||
|
@ -106,13 +107,15 @@ os9k_object_p (abfd)
|
||||||
mh_com exec_bytes;
|
mh_com exec_bytes;
|
||||||
|
|
||||||
if (bfd_read ((PTR) & exec_bytes, MHCOM_BYTES_SIZE, 1, abfd)
|
if (bfd_read ((PTR) & exec_bytes, MHCOM_BYTES_SIZE, 1, abfd)
|
||||||
!= MHCOM_BYTES_SIZE) {
|
!= MHCOM_BYTES_SIZE)
|
||||||
|
{
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
anexec.a_info = bfd_h_get_16 (abfd, exec_bytes.m_sync);
|
anexec.a_info = bfd_h_get_16 (abfd, exec_bytes.m_sync);
|
||||||
if (N_BADMAG (anexec)) {
|
if (N_BADMAG (anexec))
|
||||||
|
{
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -171,7 +174,8 @@ os9k_callback (abfd)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
struct bout_data_struct {
|
struct bout_data_struct
|
||||||
|
{
|
||||||
struct aoutdata a;
|
struct aoutdata a;
|
||||||
struct internal_exec e;
|
struct internal_exec e;
|
||||||
};
|
};
|
||||||
|
@ -183,7 +187,8 @@ os9k_mkobject (abfd)
|
||||||
struct bout_data_struct *rawptr;
|
struct bout_data_struct *rawptr;
|
||||||
|
|
||||||
rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, sizeof (struct bout_data_struct));
|
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);
|
bfd_set_error (bfd_error_no_memory);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -243,10 +248,12 @@ os9k_write_object_contents (abfd)
|
||||||
|
|
||||||
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;
|
if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd)))
|
||||||
|
return false;
|
||||||
bfd_seek (abfd, (file_ptr) (N_DROFF (*exec_hdr (abfd))), SEEK_SET);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -260,9 +267,11 @@ os9k_set_section_contents (abfd, section, location, offset, count)
|
||||||
int count;
|
int count;
|
||||||
{
|
{
|
||||||
|
|
||||||
if (abfd->output_has_begun == false) { /* set by bfd.c handler */
|
if (abfd->output_has_begun == false)
|
||||||
|
{ /* set by bfd.c handler */
|
||||||
if ((obj_textsec (abfd) == NULL) || (obj_datasec (abfd) == NULL) /*||
|
if ((obj_textsec (abfd) == NULL) || (obj_datasec (abfd) == NULL) /*||
|
||||||
(obj_textsec (abfd)->_cooked_size == 0) || (obj_datasec (abfd)->_cooked_size == 0)*/) {
|
(obj_textsec (abfd)->_cooked_size == 0) || (obj_datasec (abfd)->_cooked_size == 0)*/ )
|
||||||
|
{
|
||||||
bfd_set_error (bfd_error_invalid_operation);
|
bfd_set_error (bfd_error_invalid_operation);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -275,17 +284,18 @@ os9k_set_section_contents (abfd, section, location, offset, count)
|
||||||
/* regardless, once we know what we're doing, we might as well get going */
|
/* regardless, once we know what we're doing, we might as well get going */
|
||||||
bfd_seek (abfd, section->filepos + offset, SEEK_SET);
|
bfd_seek (abfd, section->filepos + offset, SEEK_SET);
|
||||||
|
|
||||||
if (count != 0) {
|
if (count != 0)
|
||||||
|
{
|
||||||
return (bfd_write ((PTR) location, 1, count, abfd) == count) ? true : false;
|
return (bfd_write ((PTR) location, 1, count, abfd) == count) ? true : false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif 0
|
#endif /* 0 */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
DEFUN(os9k_sizeof_headers,(ignore_abfd, ignore),
|
os9k_sizeof_headers (ignore_abfd, ignore)
|
||||||
bfd *ignore_abfd AND
|
bfd *ignore_abfd;
|
||||||
boolean ignore)
|
boolean ignore;
|
||||||
{
|
{
|
||||||
return sizeof (struct internal_exec);
|
return sizeof (struct internal_exec);
|
||||||
}
|
}
|
||||||
|
@ -328,6 +338,7 @@ DEFUN(os9k_sizeof_headers,(ignore_abfd, ignore),
|
||||||
#define aout_32_bfd_reloc_type_lookup \
|
#define aout_32_bfd_reloc_type_lookup \
|
||||||
((CONST struct reloc_howto_struct *(*) PARAMS \
|
((CONST struct reloc_howto_struct *(*) PARAMS \
|
||||||
((bfd *, bfd_reloc_code_real_type))) bfd_nullvoidptr)
|
((bfd *, bfd_reloc_code_real_type))) bfd_nullvoidptr)
|
||||||
|
#define aout_32_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
bfd_target i386os9k_vec =
|
bfd_target i386os9k_vec =
|
||||||
{
|
{
|
||||||
|
@ -358,4 +369,3 @@ bfd_target i386os9k_vec =
|
||||||
JUMP_TABLE (aout_32),
|
JUMP_TABLE (aout_32),
|
||||||
(PTR) 0,
|
(PTR) 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3325,6 +3325,7 @@ ieee_bfd_debug_info_accumulate (abfd, section)
|
||||||
#define ieee_bfd_copy_private_bfd_data \
|
#define ieee_bfd_copy_private_bfd_data \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
||||||
#define ieee_bfd_is_local_label bfd_generic_is_local_label
|
#define ieee_bfd_is_local_label bfd_generic_is_local_label
|
||||||
|
#define ieee_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/*SUPPRESS 460 */
|
/*SUPPRESS 460 */
|
||||||
bfd_target ieee_vec =
|
bfd_target ieee_vec =
|
||||||
|
|
|
@ -246,6 +246,7 @@ irix_core_make_empty_symbol (abfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define irix_core_bfd_is_local_label \
|
#define irix_core_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||||
|
#define irix_core_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
void
|
void
|
||||||
|
|
|
@ -276,18 +276,12 @@ extern struct bfd_link_hash_table *ecoff_bfd_link_hash_table_create
|
||||||
extern boolean ecoff_bfd_link_add_symbols
|
extern boolean ecoff_bfd_link_add_symbols
|
||||||
PARAMS ((bfd *, struct bfd_link_info *));
|
PARAMS ((bfd *, struct bfd_link_info *));
|
||||||
extern boolean ecoff_bfd_final_link 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 \
|
#define ecoff_bfd_copy_private_section_data \
|
||||||
((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
|
||||||
#endif
|
|
||||||
#ifndef ecoff_bfd_copy_private_bfd_data
|
|
||||||
#define ecoff_bfd_copy_private_bfd_data \
|
#define ecoff_bfd_copy_private_bfd_data \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
||||||
#endif
|
|
||||||
#ifndef ecoff_bfd_is_local_label
|
|
||||||
#define ecoff_bfd_is_local_label bfd_generic_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. */
|
/* Hook functions for the generic COFF section reading code. */
|
||||||
extern PTR ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr));
|
extern PTR ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr));
|
||||||
|
|
120
bfd/nlm-target.h
120
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
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
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.
|
/* This structure contains everything that BFD knows about a target.
|
||||||
It includes things like its byte order, name, what routines to call
|
It includes things like its byte order, name, what routines to call
|
||||||
to do various operations, etc. Every BFD points to a target structure
|
to do various operations, etc. Every BFD points to a target structure
|
||||||
|
@ -42,8 +118,8 @@ bfd_target TARGET_BIG_SYM =
|
||||||
true,
|
true,
|
||||||
|
|
||||||
/* object_flags: mask of all file flags */
|
/* object_flags: mask of all file flags */
|
||||||
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS |
|
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
|
||||||
DYNAMIC | WP_TEXT),
|
| WP_TEXT),
|
||||||
|
|
||||||
/* section_flags: mask of all section flags */
|
/* section_flags: mask of all section flags */
|
||||||
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
|
||||||
|
@ -69,20 +145,20 @@ bfd_target TARGET_BIG_SYM =
|
||||||
3,
|
3,
|
||||||
|
|
||||||
/* Routines to byte-swap various sized integers from the data sections */
|
/* Routines to byte-swap various sized integers from the data sections */
|
||||||
_do_getb64, _do_getb_signed_64, _do_putb64,
|
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
|
||||||
_do_getb32, _do_getb_signed_32, _do_putb32,
|
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
|
||||||
_do_getb16, _do_getb_signed_16, _do_putb16,
|
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
|
||||||
|
|
||||||
/* Routines to byte-swap various sized integers from the file headers */
|
/* Routines to byte-swap various sized integers from the file headers */
|
||||||
_do_getb64, _do_getb_signed_64, _do_putb64,
|
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
|
||||||
_do_getb32, _do_getb_signed_32, _do_putb32,
|
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
|
||||||
_do_getb16, _do_getb_signed_16, _do_putb16,
|
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
|
||||||
|
|
||||||
/* bfd_check_format: check the format of a file being read */
|
/* bfd_check_format: check the format of a file being read */
|
||||||
{ _bfd_dummy_target, /* unknown format */
|
{ _bfd_dummy_target, /* unknown format */
|
||||||
nlmNAME(object_p), /* assembler/linker output (object file) */
|
nlmNAME(object_p), /* assembler/linker output (object file) */
|
||||||
bfd_generic_archive_p, /* an archive */
|
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 */
|
/* 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
|
/* Initialize a jump table with the standard macro. All names start with
|
||||||
"nlm" */
|
"nlm" */
|
||||||
JUMP_TABLE(JUMP_TABLE_PREFIX),
|
JUMP_TABLE(nlm),
|
||||||
|
|
||||||
/* backend_data: */
|
/* backend_data: */
|
||||||
(PTR) NULL,
|
(PTR) TARGET_BACKEND_DATA
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -124,8 +200,8 @@ bfd_target TARGET_LITTLE_SYM =
|
||||||
false, /* Nope -- this one's little endian */
|
false, /* Nope -- this one's little endian */
|
||||||
|
|
||||||
/* object_flags: mask of all file flags */
|
/* object_flags: mask of all file flags */
|
||||||
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS |
|
(HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
|
||||||
DYNAMIC | WP_TEXT),
|
| WP_TEXT),
|
||||||
|
|
||||||
/* section_flags: mask of all section flags */
|
/* section_flags: mask of all section flags */
|
||||||
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
|
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
|
||||||
|
@ -151,20 +227,20 @@ bfd_target TARGET_LITTLE_SYM =
|
||||||
3,
|
3,
|
||||||
|
|
||||||
/* Routines to byte-swap various sized integers from the data sections */
|
/* Routines to byte-swap various sized integers from the data sections */
|
||||||
_do_getl64, _do_getl_signed_64, _do_putl64,
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
|
||||||
_do_getl32, _do_getl_signed_32, _do_putl32,
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
|
||||||
_do_getl16, _do_getl_signed_16, _do_putl16,
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16,
|
||||||
|
|
||||||
/* Routines to byte-swap various sized integers from the file headers */
|
/* Routines to byte-swap various sized integers from the file headers */
|
||||||
_do_getl64, _do_getl_signed_64, _do_putl64,
|
bfd_getl64, bfd_getl_signed_64, bfd_putl64,
|
||||||
_do_getl32, _do_getl_signed_32, _do_putl32,
|
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
|
||||||
_do_getl16, _do_getl_signed_16, _do_putl16,
|
bfd_getl16, bfd_getl_signed_16, bfd_putl16,
|
||||||
|
|
||||||
/* bfd_check_format: check the format of a file being read */
|
/* bfd_check_format: check the format of a file being read */
|
||||||
{ _bfd_dummy_target, /* unknown format */
|
{ _bfd_dummy_target, /* unknown format */
|
||||||
nlmNAME(object_p), /* assembler/linker output (object file) */
|
nlmNAME(object_p), /* assembler/linker output (object file) */
|
||||||
bfd_generic_archive_p, /* an archive */
|
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 */
|
/* 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
|
/* Initialize a jump table with the standard macro. All names start with
|
||||||
"nlm" */
|
"nlm" */
|
||||||
JUMP_TABLE(JUMP_TABLE_PREFIX),
|
JUMP_TABLE(nlm),
|
||||||
|
|
||||||
/* backend_data: */
|
/* backend_data: */
|
||||||
(PTR) NULL,
|
(PTR) TARGET_BACKEND_DATA
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1442,6 +1442,7 @@ oasys_sizeof_headers (abfd, exec)
|
||||||
#define oasys_bfd_copy_private_bfd_data \
|
#define oasys_bfd_copy_private_bfd_data \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
||||||
#define oasys_bfd_is_local_label bfd_generic_is_local_label
|
#define oasys_bfd_is_local_label bfd_generic_is_local_label
|
||||||
|
#define oasys_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/*SUPPRESS 460 */
|
/*SUPPRESS 460 */
|
||||||
bfd_target oasys_vec =
|
bfd_target oasys_vec =
|
||||||
|
|
|
@ -258,6 +258,7 @@ osf_core_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define osf_core_bfd_is_local_label \
|
#define osf_core_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||||
|
#define osf_core_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -255,6 +255,7 @@ ptrace_unix_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define ptrace_unix_bfd_is_local_label \
|
#define ptrace_unix_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
|
#define ptrace_unix_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
void
|
void
|
||||||
|
|
|
@ -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_hash_table_create _bfd_generic_link_hash_table_create
|
||||||
#define som_bfd_link_add_symbols _bfd_generic_link_add_symbols
|
#define som_bfd_link_add_symbols _bfd_generic_link_add_symbols
|
||||||
#define som_bfd_final_link _bfd_generic_final_link
|
#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. */
|
/* Core file support is in the hpux-core backend. */
|
||||||
#define som_core_file_failing_command _bfd_dummy_core_file_failing_command
|
#define som_core_file_failing_command _bfd_dummy_core_file_failing_command
|
||||||
|
|
|
@ -957,6 +957,7 @@ srec_print_symbol (ignore_abfd, afile, symbol, how)
|
||||||
#define srec_bfd_copy_private_bfd_data \
|
#define srec_bfd_copy_private_bfd_data \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
||||||
#define srec_bfd_is_local_label bfd_generic_is_local_label
|
#define srec_bfd_is_local_label bfd_generic_is_local_label
|
||||||
|
#define srec_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
bfd_target srec_vec =
|
bfd_target srec_vec =
|
||||||
{
|
{
|
||||||
|
|
|
@ -345,6 +345,9 @@ Symbols and relocations.
|
||||||
. section of the BFD. *}
|
. section of the BFD. *}
|
||||||
. boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
|
. 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
|
Data for use by back-end routines, which isn't generic enough to belong
|
||||||
in this structure.
|
in this structure.
|
||||||
|
|
|
@ -1028,6 +1028,7 @@ tekhex_print_symbol (ignore_abfd, filep, symbol, how)
|
||||||
#define tekhex_bfd_copy_private_bfd_data \
|
#define tekhex_bfd_copy_private_bfd_data \
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
|
||||||
#define tekhex_bfd_is_local_label bfd_generic_is_local_label
|
#define tekhex_bfd_is_local_label bfd_generic_is_local_label
|
||||||
|
#define tekhex_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
bfd_target tekhex_vec =
|
bfd_target tekhex_vec =
|
||||||
{
|
{
|
||||||
|
|
|
@ -345,6 +345,7 @@ trad_unix_core_file_matches_executable_p (core_bfd, exec_bfd)
|
||||||
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_false)
|
||||||
#define trad_unix_bfd_is_local_label \
|
#define trad_unix_bfd_is_local_label \
|
||||||
((boolean (*) PARAMS ((bfd *, asection *))) bfd_false)
|
((boolean (*) PARAMS ((bfd *, asection *))) bfd_false)
|
||||||
|
#define trad_unix_bfd_free_cached_info bfd_true
|
||||||
|
|
||||||
/* If somebody calls any byte-swapping routines, shoot them. */
|
/* If somebody calls any byte-swapping routines, shoot them. */
|
||||||
void
|
void
|
||||||
|
|
Loading…
Add table
Reference in a new issue