mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 16:53:50 +08:00
2000-11-06 Kazu Hirata <kazu@hxi.com>
* aout-adobe.c: Fix formatting. * aout-arm.c: Likewise. * aout-cris.c: Likewise. * aout-encap.c: Likewise. * aout-ns32k.c: Likewise. * aout-target.h: Likewise. * aout-tic30.c: Likewise.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
2000-11-06 Kazu Hirata <kazu@hxi.com>
|
||||||
|
|
||||||
|
* aout-adobe.c: Fix formatting.
|
||||||
|
* aout-arm.c: Likewise.
|
||||||
|
* aout-cris.c: Likewise.
|
||||||
|
* aout-encap.c: Likewise.
|
||||||
|
* aout-ns32k.c: Likewise.
|
||||||
|
* aout-target.h: Likewise.
|
||||||
|
* aout-tic30.c: Likewise.
|
||||||
|
|
||||||
2000-11-05 Philip Blundell <philb@gnu.org>
|
2000-11-05 Philip Blundell <philb@gnu.org>
|
||||||
|
|
||||||
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Always permit
|
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Always permit
|
||||||
|
@ -42,7 +42,7 @@ static void aout_adobe_write_section PARAMS ((bfd *abfd, sec_ptr sect));
|
|||||||
void aout_adobe_swap_exec_header_in
|
void aout_adobe_swap_exec_header_in
|
||||||
PARAMS ((bfd *abfd, struct external_exec *raw_bytes,
|
PARAMS ((bfd *abfd, struct external_exec *raw_bytes,
|
||||||
struct internal_exec *execp));
|
struct internal_exec *execp));
|
||||||
|
|
||||||
void
|
void
|
||||||
aout_adobe_swap_exec_header_in (abfd, raw_bytes, execp)
|
aout_adobe_swap_exec_header_in (abfd, raw_bytes, execp)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -77,7 +77,7 @@ aout_adobe_swap_exec_header_out (abfd, execp, raw_bytes)
|
|||||||
{
|
{
|
||||||
struct external_exec *bytes = (struct external_exec *)raw_bytes;
|
struct external_exec *bytes = (struct external_exec *)raw_bytes;
|
||||||
|
|
||||||
/* Now fill in fields in the raw data, from the fields in the exec struct. */
|
/* 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_info , bytes->e_info);
|
||||||
PUT_WORD (abfd, execp->a_text , bytes->e_text);
|
PUT_WORD (abfd, execp->a_text , bytes->e_text);
|
||||||
PUT_WORD (abfd, execp->a_data , bytes->e_data);
|
PUT_WORD (abfd, execp->a_data , bytes->e_data);
|
||||||
@ -88,7 +88,6 @@ aout_adobe_swap_exec_header_out (abfd, execp, raw_bytes)
|
|||||||
PUT_WORD (abfd, execp->a_drsize, bytes->e_drsize);
|
PUT_WORD (abfd, execp->a_drsize, bytes->e_drsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const bfd_target *
|
static const bfd_target *
|
||||||
aout_adobe_object_p (abfd)
|
aout_adobe_object_p (abfd)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -127,7 +126,6 @@ aout_adobe_object_p (abfd)
|
|||||||
return aout_32_some_aout_object_p (abfd, &anexec, aout_adobe_callback);
|
return aout_32_some_aout_object_p (abfd, &anexec, aout_adobe_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Finish up the opening of a b.out file for reading. Fill in all the
|
/* Finish up the opening of a b.out file for reading. Fill in all the
|
||||||
fields that are not handled by common code. */
|
fields that are not handled by common code. */
|
||||||
|
|
||||||
@ -180,13 +178,13 @@ aout_adobe_callback (abfd)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
||||||
(_("%s: Unknown section type in a.out.adobe file: %x\n"),
|
(_("%s: Unknown section type in a.out.adobe file: %x\n"),
|
||||||
bfd_get_filename (abfd), ext->e_type[0]);
|
bfd_get_filename (abfd), ext->e_type[0]);
|
||||||
goto no_more_sections;
|
goto no_more_sections;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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_set_error (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);
|
||||||
@ -230,12 +228,12 @@ aout_adobe_callback (abfd)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
no_more_sections:
|
no_more_sections:
|
||||||
|
|
||||||
adata(abfd).reloc_entry_size = sizeof (struct reloc_std_external);
|
adata(abfd).reloc_entry_size = sizeof (struct reloc_std_external);
|
||||||
adata(abfd).symbol_entry_size = sizeof (struct external_nlist);
|
adata(abfd).symbol_entry_size = sizeof (struct external_nlist);
|
||||||
adata(abfd).page_size = 1; /* Not applicable. */
|
adata(abfd).page_size = 1; /* Not applicable. */
|
||||||
adata(abfd).segment_size = 1; /* Not applicable. */
|
adata(abfd).segment_size = 1; /* Not applicable. */
|
||||||
adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
|
adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
|
||||||
|
|
||||||
return abfd->xvec;
|
return abfd->xvec;
|
||||||
@ -261,14 +259,13 @@ aout_adobe_mkobject (abfd)
|
|||||||
|
|
||||||
adata(abfd).reloc_entry_size = sizeof (struct reloc_std_external);
|
adata(abfd).reloc_entry_size = sizeof (struct reloc_std_external);
|
||||||
adata(abfd).symbol_entry_size = sizeof (struct external_nlist);
|
adata(abfd).symbol_entry_size = sizeof (struct external_nlist);
|
||||||
adata(abfd).page_size = 1; /* Not applicable. */
|
adata(abfd).page_size = 1; /* Not applicable. */
|
||||||
adata(abfd).segment_size = 1; /* Not applicable. */
|
adata(abfd).segment_size = 1; /* Not applicable. */
|
||||||
adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
|
adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
aout_adobe_write_object_contents (abfd)
|
aout_adobe_write_object_contents (abfd)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -279,7 +276,7 @@ aout_adobe_write_object_contents (abfd)
|
|||||||
|
|
||||||
exec_hdr (abfd)->a_info = ZMAGIC;
|
exec_hdr (abfd)->a_info = ZMAGIC;
|
||||||
|
|
||||||
/* Calculate text size as total of text sections, etc. */
|
/* Calculate text size as total of text sections, etc. */
|
||||||
|
|
||||||
exec_hdr (abfd)->a_text = 0;
|
exec_hdr (abfd)->a_text = 0;
|
||||||
exec_hdr (abfd)->a_data = 0;
|
exec_hdr (abfd)->a_data = 0;
|
||||||
@ -337,7 +334,7 @@ aout_adobe_write_object_contents (abfd)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Now write out reloc info, followed by syms and strings */
|
/* Now write out reloc info, followed by syms and strings */
|
||||||
if (bfd_get_symcount (abfd) != 0)
|
if (bfd_get_symcount (abfd) != 0)
|
||||||
{
|
{
|
||||||
if (bfd_seek (abfd, (file_ptr)(N_SYMOFF(*exec_hdr(abfd))), SEEK_SET)
|
if (bfd_seek (abfd, (file_ptr)(N_SYMOFF(*exec_hdr(abfd))), SEEK_SET)
|
||||||
!= 0)
|
!= 0)
|
||||||
@ -449,7 +446,7 @@ aout_adobe_set_arch_mach (abfd, arch, machine)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
aout_adobe_sizeof_headers (ignore_abfd, ignore)
|
aout_adobe_sizeof_headers (ignore_abfd, ignore)
|
||||||
bfd *ignore_abfd ATTRIBUTE_UNUSED;
|
bfd *ignore_abfd ATTRIBUTE_UNUSED;
|
||||||
boolean ignore ATTRIBUTE_UNUSED;
|
boolean ignore ATTRIBUTE_UNUSED;
|
||||||
@ -457,9 +454,6 @@ aout_adobe_sizeof_headers (ignore_abfd, ignore)
|
|||||||
return sizeof(struct internal_exec);
|
return sizeof(struct internal_exec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Build the transfer vector for Adobe A.Out files. */
|
/* Build the transfer vector for Adobe A.Out files. */
|
||||||
|
|
||||||
#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info
|
#define aout_32_close_and_cleanup aout_32_bfd_free_cached_info
|
||||||
@ -525,6 +519,6 @@ const bfd_target a_out_adobe_vec =
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
|
||||||
|
|
||||||
NULL,
|
NULL,
|
||||||
|
|
||||||
(PTR) 0
|
(PTR) 0
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* BFD back-end for raw ARM a.out binaries.
|
/* BFD back-end for raw ARM a.out binaries.
|
||||||
Copyright (C) 1994, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1994, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
|
||||||
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
This file is part of BFD, the Binary File Descriptor library.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
@ -18,7 +18,6 @@ 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
|
||||||
#define N_TXTADDR(x) \
|
#define N_TXTADDR(x) \
|
||||||
((N_MAGIC(x) == NMAGIC) ? 0x8000 : \
|
((N_MAGIC(x) == NMAGIC) ? 0x8000 : \
|
||||||
(N_MAGIC(x) != ZMAGIC) ? 0 : \
|
(N_MAGIC(x) != ZMAGIC) ? 0 : \
|
||||||
@ -44,7 +43,7 @@ reloc_howto_type *MYARM(bfd_reloc_type_lookup)
|
|||||||
PARAMS((bfd *, bfd_reloc_code_real_type));
|
PARAMS((bfd *, bfd_reloc_code_real_type));
|
||||||
static boolean MYARM(write_object_contents) PARAMS((bfd *));
|
static boolean MYARM(write_object_contents) PARAMS((bfd *));
|
||||||
|
|
||||||
/* Avoid multiple defininitions from aoutx if supporting standarad a.out
|
/* Avoid multiple defininitions from aoutx if supporting standarad a.out
|
||||||
as well as our own. */
|
as well as our own. */
|
||||||
#define NAME(x,y) CAT3(aoutarm,_32_,y)
|
#define NAME(x,y) CAT3(aoutarm,_32_,y)
|
||||||
|
|
||||||
@ -63,7 +62,7 @@ MY(fix_pcrel_26) PARAMS ((bfd *, arelent *, asymbol *, PTR,
|
|||||||
static void MY(swap_std_reloc_in) PARAMS ((bfd *, struct reloc_std_external *,
|
static void MY(swap_std_reloc_in) PARAMS ((bfd *, struct reloc_std_external *,
|
||||||
arelent *, asymbol **,
|
arelent *, asymbol **,
|
||||||
bfd_size_type));
|
bfd_size_type));
|
||||||
void MY(swap_std_reloc_out) PARAMS ((bfd *, arelent *,
|
void MY(swap_std_reloc_out) PARAMS ((bfd *, arelent *,
|
||||||
struct reloc_std_external *));
|
struct reloc_std_external *));
|
||||||
|
|
||||||
reloc_howto_type MY(howto_table)[] =
|
reloc_howto_type MY(howto_table)[] =
|
||||||
@ -139,7 +138,7 @@ MY(reloc_howto)(abfd, rel, r_index, r_extern, r_pcrel)
|
|||||||
|
|
||||||
return MY(howto_table) + index;
|
return MY(howto_table) + index;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MY_reloc_howto(BFD, REL, IN, EX, PC) \
|
#define MY_reloc_howto(BFD, REL, IN, EX, PC) \
|
||||||
MY(reloc_howto) (BFD, REL, &IN, &EX, &PC)
|
MY(reloc_howto) (BFD, REL, &IN, &EX, &PC)
|
||||||
|
|
||||||
@ -159,7 +158,7 @@ MY(put_reloc)(abfd, r_extern, r_index, value, howto, reloc)
|
|||||||
PUT_WORD (abfd, value, reloc->r_address);
|
PUT_WORD (abfd, value, reloc->r_address);
|
||||||
r_length = howto->size ; /* Size as a power of two */
|
r_length = howto->size ; /* Size as a power of two */
|
||||||
|
|
||||||
/* Special case for branch relocations. */
|
/* Special case for branch relocations. */
|
||||||
if (howto->type == 3 || howto->type == 7)
|
if (howto->type == 3 || howto->type == 7)
|
||||||
r_length = 3;
|
r_length = 3;
|
||||||
|
|
||||||
@ -188,7 +187,7 @@ MY(put_reloc)(abfd, r_extern, r_index, value, howto, reloc)
|
|||||||
| (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE));
|
| (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MY_put_reloc(BFD, EXT, IDX, VAL, HOWTO, RELOC) \
|
#define MY_put_reloc(BFD, EXT, IDX, VAL, HOWTO, RELOC) \
|
||||||
MY(put_reloc)(BFD, EXT, IDX, VAL, HOWTO, RELOC)
|
MY(put_reloc)(BFD, EXT, IDX, VAL, HOWTO, RELOC)
|
||||||
|
|
||||||
@ -202,11 +201,11 @@ MY(relocatable_reloc)(howto, abfd, reloc, amount, r_addr)
|
|||||||
{
|
{
|
||||||
if (howto->type == 3)
|
if (howto->type == 3)
|
||||||
{
|
{
|
||||||
if (reloc->r_type[0]
|
if (reloc->r_type[0]
|
||||||
& (bfd_header_big_endian (abfd)
|
& (bfd_header_big_endian (abfd)
|
||||||
? RELOC_STD_BITS_EXTERN_BIG : RELOC_STD_BITS_EXTERN_LITTLE))
|
? RELOC_STD_BITS_EXTERN_BIG : RELOC_STD_BITS_EXTERN_LITTLE))
|
||||||
{
|
{
|
||||||
/* The reloc is still external, so don't modify anything. */
|
/* The reloc is still external, so don't modify anything. */
|
||||||
*amount = 0;
|
*amount = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -257,7 +256,7 @@ MY(fix_pcrel_26) (abfd, reloc_entry, symbol, data, input_section,
|
|||||||
bfd_size_type addr = reloc_entry->address;
|
bfd_size_type addr = reloc_entry->address;
|
||||||
long target = bfd_get_32 (abfd, (bfd_byte *) data + addr);
|
long target = bfd_get_32 (abfd, (bfd_byte *) data + addr);
|
||||||
bfd_reloc_status_type flag = bfd_reloc_ok;
|
bfd_reloc_status_type flag = bfd_reloc_ok;
|
||||||
|
|
||||||
/* If this is an undefined symbol, return error */
|
/* If this is an undefined symbol, return error */
|
||||||
if (symbol->section == &bfd_und_section
|
if (symbol->section == &bfd_und_section
|
||||||
&& (symbol->flags & BSF_WEAK) == 0)
|
&& (symbol->flags & BSF_WEAK) == 0)
|
||||||
@ -297,7 +296,7 @@ MY(fix_pcrel_26) (abfd, reloc_entry, symbol, data, input_section,
|
|||||||
/* Now the ARM magic... Change the reloc type so that it is marked as done.
|
/* Now the ARM magic... Change the reloc type so that it is marked as done.
|
||||||
Strictly this is only necessary if we are doing a partial relocation. */
|
Strictly this is only necessary if we are doing a partial relocation. */
|
||||||
reloc_entry->howto = &MY(howto_table)[7];
|
reloc_entry->howto = &MY(howto_table)[7];
|
||||||
|
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -392,11 +391,10 @@ MY_swap_std_reloc_out (abfd, g, natptr)
|
|||||||
r_pcrel = 0;
|
r_pcrel = 0;
|
||||||
}
|
}
|
||||||
else if (g->howto->type == 7)
|
else if (g->howto->type == 7)
|
||||||
{
|
{
|
||||||
r_length = 3;
|
r_length = 3;
|
||||||
r_pcrel = 1;
|
r_pcrel = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* For a standard reloc, the addend is in the object file. */
|
/* For a standard reloc, the addend is in the object file. */
|
||||||
@ -506,7 +504,7 @@ const bfd_target aout_arm_little_vec =
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (MY),
|
BFD_JUMP_TABLE_DYNAMIC (MY),
|
||||||
|
|
||||||
& aout_arm_big_vec,
|
& aout_arm_big_vec,
|
||||||
|
|
||||||
(PTR) MY_backend_data,
|
(PTR) MY_backend_data,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -547,6 +545,6 @@ const bfd_target aout_arm_big_vec =
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (MY),
|
BFD_JUMP_TABLE_DYNAMIC (MY),
|
||||||
|
|
||||||
& aout_arm_little_vec,
|
& aout_arm_little_vec,
|
||||||
|
|
||||||
(PTR) MY_backend_data,
|
(PTR) MY_backend_data,
|
||||||
};
|
};
|
||||||
|
@ -47,7 +47,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||||||
adata(abfd).zmagic_disk_block_size, even though the exec_header is
|
adata(abfd).zmagic_disk_block_size, even though the exec_header is
|
||||||
*not* included in the text segment. A simple workaround is to
|
*not* included in the text segment. A simple workaround is to
|
||||||
#define ZMAGIC_DISK_BLOCK_SIZE, which is used if defined; otherwise
|
#define ZMAGIC_DISK_BLOCK_SIZE, which is used if defined; otherwise
|
||||||
TARGET_PAGE_SIZE is used. */
|
TARGET_PAGE_SIZE is used. */
|
||||||
#define ZMAGIC_DISK_BLOCK_SIZE N_TXTOFF (0)
|
#define ZMAGIC_DISK_BLOCK_SIZE N_TXTOFF (0)
|
||||||
|
|
||||||
/* It seems odd at first to set a page-size this low, but gives greater
|
/* It seems odd at first to set a page-size this low, but gives greater
|
||||||
@ -116,7 +116,6 @@ static boolean MY(set_sizes) PARAMS ((bfd *));
|
|||||||
#include "aout32.c"
|
#include "aout32.c"
|
||||||
#include "aout-target.h"
|
#include "aout-target.h"
|
||||||
|
|
||||||
|
|
||||||
/* We need our own version to set header flags. */
|
/* We need our own version to set header flags. */
|
||||||
|
|
||||||
static boolean
|
static boolean
|
||||||
@ -144,10 +143,9 @@ MY(write_object_contents) (abfd)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* We need our own for these reasons:
|
/* We need our own for these reasons:
|
||||||
- Assert that a normal 8, 16 or 32 reloc is output.
|
- Assert that a normal 8, 16 or 32 reloc is output.
|
||||||
- Fix what seems to be a weak-bug (perhaps there for valid reasons). */
|
- Fix what seems to be a weak-bug (perhaps there for valid reasons). */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
MY(swap_ext_reloc_out) (abfd, g, natptr)
|
MY(swap_ext_reloc_out) (abfd, g, natptr)
|
||||||
@ -206,7 +204,7 @@ MY(swap_ext_reloc_out) (abfd, g, natptr)
|
|||||||
{
|
{
|
||||||
(*_bfd_error_handler) (_("%s: Invalid relocation type exported: %d"),
|
(*_bfd_error_handler) (_("%s: Invalid relocation type exported: %d"),
|
||||||
bfd_get_filename (abfd), r_type);
|
bfd_get_filename (abfd), r_type);
|
||||||
|
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,7 +219,6 @@ MY(swap_ext_reloc_out) (abfd, g, natptr)
|
|||||||
PUT_WORD (abfd, r_addend, natptr->r_addend);
|
PUT_WORD (abfd, r_addend, natptr->r_addend);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* We need our own to assert that a normal 8, 16 or 32 reloc is input. */
|
/* We need our own to assert that a normal 8, 16 or 32 reloc is input. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -251,10 +248,10 @@ MY(swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
|
|||||||
{
|
{
|
||||||
(*_bfd_error_handler) (_("%s: Invalid relocation type imported: %d"),
|
(*_bfd_error_handler) (_("%s: Invalid relocation type imported: %d"),
|
||||||
bfd_get_filename (abfd), r_type);
|
bfd_get_filename (abfd), r_type);
|
||||||
|
|
||||||
bfd_set_error(bfd_error_wrong_format);
|
bfd_set_error(bfd_error_wrong_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
cache_ptr->howto = howto_table_ext + r_type;
|
cache_ptr->howto = howto_table_ext + r_type;
|
||||||
|
|
||||||
if (r_extern && r_index > symcount)
|
if (r_extern && r_index > symcount)
|
||||||
@ -262,7 +259,7 @@ MY(swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
|
|||||||
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
||||||
(_("%s: Bad relocation record imported: %d"),
|
(_("%s: Bad relocation record imported: %d"),
|
||||||
bfd_get_filename (abfd), r_index);
|
bfd_get_filename (abfd), r_index);
|
||||||
|
|
||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
|
|
||||||
/* We continue, so we can catch further errors. */
|
/* We continue, so we can catch further errors. */
|
||||||
@ -275,7 +272,6 @@ MY(swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
|
|||||||
MOVE_ADDRESS (GET_SWORD (abfd, bytes->r_addend));
|
MOVE_ADDRESS (GET_SWORD (abfd, bytes->r_addend));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* We use the same as the default, except that we also set
|
/* We use the same as the default, except that we also set
|
||||||
"obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;", to avoid changing
|
"obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;", to avoid changing
|
||||||
NAME (aout, set_arch_mach) in aoutx. */
|
NAME (aout, set_arch_mach) in aoutx. */
|
||||||
@ -297,7 +293,7 @@ MY(set_sizes) (abfd)
|
|||||||
target-specific things should not be added there. */
|
target-specific things should not be added there. */
|
||||||
|
|
||||||
obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
|
obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ encap_object_p (abfd)
|
|||||||
bfd_set_error (bfd_error_wrong_format);
|
bfd_set_error (bfd_error_wrong_format);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
coff_magic = bfd_h_get_16 (abfd, magicbuf);
|
coff_magic = bfd_h_get_16 (abfd, magicbuf);
|
||||||
if (coff_magic != COFF_MAGIC)
|
if (coff_magic != COFF_MAGIC)
|
||||||
return 0; /* Not an encap coff file */
|
return 0; /* Not an encap coff file */
|
||||||
@ -83,9 +83,9 @@ encap_real_callback (abfd)
|
|||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
{
|
{
|
||||||
struct internal_exec *execp = exec_hdr (abfd);
|
struct internal_exec *execp = exec_hdr (abfd);
|
||||||
|
|
||||||
MY(callback)(abfd, execp);
|
MY(callback)(abfd, execp);
|
||||||
|
|
||||||
/* If we have a coff header, it can give us better values for
|
/* If we have a coff header, it can give us better values for
|
||||||
text_start and exec_data_start. This is particularly useful
|
text_start and exec_data_start. This is particularly useful
|
||||||
for remote debugging of embedded systems. */
|
for remote debugging of embedded systems. */
|
||||||
|
@ -89,7 +89,7 @@ MY_swap_std_reloc_out PARAMS ((bfd *abfd, arelent *g,
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
reloc_howto_type MY(howto_table)[] =
|
reloc_howto_type MY(howto_table)[] =
|
||||||
{
|
{
|
||||||
/* ns32k immediate operands */
|
/* ns32k immediate operands */
|
||||||
HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, false, 0, true,
|
HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, false, 0, true,
|
||||||
@ -146,7 +146,6 @@ reloc_howto_type MY(howto_table)[] =
|
|||||||
"PCREL_32", true, 0xffffffff,0xffffffff, false),
|
"PCREL_32", true, 0xffffffff,0xffffffff, false),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define CTOR_TABLE_RELOC_HOWTO(BFD) (MY(howto_table) + 14)
|
#define CTOR_TABLE_RELOC_HOWTO(BFD) (MY(howto_table) + 14)
|
||||||
|
|
||||||
#define RELOC_STD_BITS_NS32K_TYPE_BIG 0x06
|
#define RELOC_STD_BITS_NS32K_TYPE_BIG 0x06
|
||||||
@ -259,7 +258,6 @@ MY(bfd_reloc_type_lookup)(abfd,code)
|
|||||||
#undef ENTRY
|
#undef ENTRY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
MY_swap_std_reloc_in (abfd, bytes, cache_ptr, symbols, symcount)
|
MY_swap_std_reloc_in (abfd, bytes, cache_ptr, symbols, symcount)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
@ -295,10 +293,10 @@ MY_swap_std_reloc_out (abfd, g, natptr)
|
|||||||
asection *output_section = sym->section->output_section;
|
asection *output_section = sym->section->output_section;
|
||||||
|
|
||||||
r_addend = g->addend + (*(g->sym_ptr_ptr))->section->output_section->vma;
|
r_addend = g->addend + (*(g->sym_ptr_ptr))->section->output_section->vma;
|
||||||
|
|
||||||
/* name was clobbered by aout_write_syms to be symbol index */
|
/* name was clobbered by aout_write_syms to be symbol index */
|
||||||
|
|
||||||
/* If this relocation is relative to a symbol then set the
|
/* If this relocation is relative to a symbol then set the
|
||||||
r_index to the symbols index, and the r_extern bit.
|
r_index to the symbols index, and the r_extern bit.
|
||||||
|
|
||||||
Absolute symbols can come in in two ways, either as an offset
|
Absolute symbols can come in in two ways, either as an offset
|
||||||
@ -307,7 +305,7 @@ MY_swap_std_reloc_out (abfd, g, natptr)
|
|||||||
|
|
||||||
if (bfd_is_com_section (output_section)
|
if (bfd_is_com_section (output_section)
|
||||||
|| output_section == &bfd_abs_section
|
|| output_section == &bfd_abs_section
|
||||||
|| output_section == &bfd_und_section)
|
|| output_section == &bfd_und_section)
|
||||||
{
|
{
|
||||||
if (bfd_abs_section.symbol == sym)
|
if (bfd_abs_section.symbol == sym)
|
||||||
{
|
{
|
||||||
@ -316,21 +314,21 @@ MY_swap_std_reloc_out (abfd, g, natptr)
|
|||||||
r_index = 0;
|
r_index = 0;
|
||||||
r_extern = 0;
|
r_extern = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Fill in symbol */
|
/* Fill in symbol */
|
||||||
r_extern = 1;
|
r_extern = 1;
|
||||||
#undef KEEPIT
|
#undef KEEPIT
|
||||||
#define KEEPIT udata.i
|
#define KEEPIT udata.i
|
||||||
r_index = (*(g->sym_ptr_ptr))->KEEPIT;
|
r_index = (*(g->sym_ptr_ptr))->KEEPIT;
|
||||||
#undef KEEPIT
|
#undef KEEPIT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Just an ordinary section */
|
/* Just an ordinary section */
|
||||||
r_extern = 0;
|
r_extern = 0;
|
||||||
r_index = output_section->target_index;
|
r_index = output_section->target_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
MY_put_reloc (abfd, r_extern, r_index, g->address, g->howto, natptr);
|
MY_put_reloc (abfd, r_extern, r_index, g->address, g->howto, natptr);
|
||||||
|
@ -61,7 +61,7 @@ MY(callback) (abfd)
|
|||||||
bfd_vma adjust;
|
bfd_vma adjust;
|
||||||
|
|
||||||
adjust = execp->a_entry - obj_textsec (abfd)->vma;
|
adjust = execp->a_entry - obj_textsec (abfd)->vma;
|
||||||
/* Adjust only by whole pages. */
|
/* Adjust only by whole pages. */
|
||||||
adjust &= ~(TARGET_PAGE_SIZE - 1);
|
adjust &= ~(TARGET_PAGE_SIZE - 1);
|
||||||
obj_textsec (abfd)->vma += adjust;
|
obj_textsec (abfd)->vma += adjust;
|
||||||
obj_datasec (abfd)->vma += adjust;
|
obj_datasec (abfd)->vma += adjust;
|
||||||
@ -84,7 +84,7 @@ MY(callback) (abfd)
|
|||||||
/* The file offsets of the string table and symbol table. */
|
/* The file offsets of the string table and symbol table. */
|
||||||
obj_sym_filepos (abfd) = N_SYMOFF (*execp);
|
obj_sym_filepos (abfd) = N_SYMOFF (*execp);
|
||||||
obj_str_filepos (abfd) = N_STROFF (*execp);
|
obj_str_filepos (abfd) = N_STROFF (*execp);
|
||||||
|
|
||||||
/* Determine the architecture and machine type of the object file. */
|
/* Determine the architecture and machine type of the object file. */
|
||||||
#ifdef SET_ARCH_MACH
|
#ifdef SET_ARCH_MACH
|
||||||
SET_ARCH_MACH(abfd, *execp);
|
SET_ARCH_MACH(abfd, *execp);
|
||||||
@ -178,7 +178,7 @@ MY(object_p) (abfd)
|
|||||||
* means that it isn't obvious if EXEC_P should be set.
|
* means that it isn't obvious if EXEC_P should be set.
|
||||||
* All of the following must be true for an executable:
|
* All of the following must be true for an executable:
|
||||||
* There must be no relocations, the bfd can be neither an
|
* There must be no relocations, the bfd can be neither an
|
||||||
* archive nor an archive element, and the file must be executable. */
|
* archive nor an archive element, and the file must be executable. */
|
||||||
|
|
||||||
if (exec.a_trsize + exec.a_drsize == 0
|
if (exec.a_trsize + exec.a_drsize == 0
|
||||||
&& bfd_get_format(abfd) == bfd_object && abfd->my_archive == NULL)
|
&& bfd_get_format(abfd) == bfd_object && abfd->my_archive == NULL)
|
||||||
@ -197,7 +197,6 @@ MY(object_p) (abfd)
|
|||||||
#define MY_object_p MY(object_p)
|
#define MY_object_p MY(object_p)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef MY_mkobject
|
#ifndef MY_mkobject
|
||||||
|
|
||||||
static boolean MY(mkobject) PARAMS ((bfd *));
|
static boolean MY(mkobject) PARAMS ((bfd *));
|
||||||
@ -230,7 +229,6 @@ MY(mkobject) (abfd)
|
|||||||
static boolean MY_bfd_copy_private_section_data
|
static boolean MY_bfd_copy_private_section_data
|
||||||
PARAMS ((bfd *, asection *, bfd *, asection *));
|
PARAMS ((bfd *, asection *, bfd *, asection *));
|
||||||
|
|
||||||
/*ARGSUSED*/
|
|
||||||
static boolean
|
static boolean
|
||||||
MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
|
MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
|
||||||
bfd *ibfd;
|
bfd *ibfd;
|
||||||
@ -530,7 +528,6 @@ MY_bfd_final_link (abfd, info)
|
|||||||
#define MY_bfd_link_split_section _bfd_generic_link_split_section
|
#define MY_bfd_link_split_section _bfd_generic_link_split_section
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef MY_bfd_copy_private_bfd_data
|
#ifndef MY_bfd_copy_private_bfd_data
|
||||||
#define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
|
#define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
|
||||||
#endif
|
#endif
|
||||||
@ -581,7 +578,7 @@ MY_bfd_final_link (abfd, info)
|
|||||||
#endif
|
#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 '_'
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -643,7 +640,7 @@ const bfd_target MY(vec) =
|
|||||||
|
|
||||||
/* Alternative_target */
|
/* Alternative_target */
|
||||||
NULL,
|
NULL,
|
||||||
|
|
||||||
(PTR) MY_backend_data
|
(PTR) MY_backend_data
|
||||||
};
|
};
|
||||||
#endif /* MY_BFD_TARGET */
|
#endif /* MY_BFD_TARGET */
|
||||||
|
@ -128,7 +128,7 @@ static CONST struct aout_backend_data tic30_aout_backend_data =
|
|||||||
/* This table lists the relocation types for the TMS320C30. There are
|
/* This table lists the relocation types for the TMS320C30. There are
|
||||||
only a few relocations required, and all must be divided by 4 (>>
|
only a few relocations required, and all must be divided by 4 (>>
|
||||||
2) to get the 32-bit addresses in the format the TMS320C30 likes
|
2) to get the 32-bit addresses in the format the TMS320C30 likes
|
||||||
it. */
|
it. */
|
||||||
reloc_howto_type tic30_aout_howto_table[] =
|
reloc_howto_type tic30_aout_howto_table[] =
|
||||||
{
|
{
|
||||||
EMPTY_HOWTO (-1),
|
EMPTY_HOWTO (-1),
|
||||||
@ -210,7 +210,7 @@ tic30_aout_reloc_howto (abfd, relocs, r_index, r_extern, r_pcrel)
|
|||||||
requires that any relocations for the data section should point to
|
requires that any relocations for the data section should point to
|
||||||
the end of the aligned text section, plus an offset. By default,
|
the end of the aligned text section, plus an offset. By default,
|
||||||
this does not happen, therefore this function takes care of
|
this does not happen, therefore this function takes care of
|
||||||
that. */
|
that. */
|
||||||
|
|
||||||
static bfd_reloc_status_type
|
static bfd_reloc_status_type
|
||||||
tic30_aout_fix_16 (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message)
|
tic30_aout_fix_16 (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message)
|
||||||
@ -224,11 +224,11 @@ tic30_aout_fix_16 (abfd, reloc_entry, symbol, data, input_section, output_bfd, e
|
|||||||
{
|
{
|
||||||
bfd_vma relocation;
|
bfd_vma relocation;
|
||||||
|
|
||||||
/* Make sure that the symbol's section is defined. */
|
/* Make sure that the symbol's section is defined. */
|
||||||
if (symbol->section == &bfd_und_section && (symbol->flags & BSF_WEAK) == 0)
|
if (symbol->section == &bfd_und_section && (symbol->flags & BSF_WEAK) == 0)
|
||||||
return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined;
|
return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined;
|
||||||
/* Get the size of the input section and turn it into the TMS320C30
|
/* Get the size of the input section and turn it into the TMS320C30
|
||||||
32-bit address format. */
|
32-bit address format. */
|
||||||
relocation = (symbol->section->vma >> 2);
|
relocation = (symbol->section->vma >> 2);
|
||||||
relocation += bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address);
|
relocation += bfd_get_16 (abfd, (bfd_byte *) data + reloc_entry->address);
|
||||||
bfd_put_16 (abfd, relocation, (bfd_byte *) data + reloc_entry->address);
|
bfd_put_16 (abfd, relocation, (bfd_byte *) data + reloc_entry->address);
|
||||||
@ -236,7 +236,7 @@ tic30_aout_fix_16 (abfd, reloc_entry, symbol, data, input_section, output_bfd, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* This function does the same thing as tic30_aout_fix_16 except for 32
|
/* This function does the same thing as tic30_aout_fix_16 except for 32
|
||||||
bit relocations. */
|
bit relocations. */
|
||||||
|
|
||||||
static bfd_reloc_status_type
|
static bfd_reloc_status_type
|
||||||
tic30_aout_fix_32 (abfd, reloc_entry, symbol, data, input_section,
|
tic30_aout_fix_32 (abfd, reloc_entry, symbol, data, input_section,
|
||||||
@ -251,11 +251,11 @@ tic30_aout_fix_32 (abfd, reloc_entry, symbol, data, input_section,
|
|||||||
{
|
{
|
||||||
bfd_vma relocation;
|
bfd_vma relocation;
|
||||||
|
|
||||||
/* Make sure that the symbol's section is defined. */
|
/* Make sure that the symbol's section is defined. */
|
||||||
if (symbol->section == &bfd_und_section && (symbol->flags & BSF_WEAK) == 0)
|
if (symbol->section == &bfd_und_section && (symbol->flags & BSF_WEAK) == 0)
|
||||||
return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined;
|
return output_bfd ? bfd_reloc_ok : bfd_reloc_undefined;
|
||||||
/* Get the size of the input section and turn it into the TMS320C30
|
/* Get the size of the input section and turn it into the TMS320C30
|
||||||
32-bit address format. */
|
32-bit address format. */
|
||||||
relocation = (symbol->section->vma >> 2);
|
relocation = (symbol->section->vma >> 2);
|
||||||
relocation += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
|
relocation += bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address);
|
||||||
bfd_put_32 (abfd, relocation, (bfd_byte *) data + reloc_entry->address);
|
bfd_put_32 (abfd, relocation, (bfd_byte *) data + reloc_entry->address);
|
||||||
@ -267,7 +267,7 @@ tic30_aout_fix_32 (abfd, reloc_entry, symbol, data, input_section,
|
|||||||
useless for a relocation, so we just get the offset value and place
|
useless for a relocation, so we just get the offset value and place
|
||||||
a version of this within the object code.
|
a version of this within the object code.
|
||||||
tic30_aout_final_link_relocate will then calculate the required
|
tic30_aout_final_link_relocate will then calculate the required
|
||||||
relocation to add on to the value in the object code. */
|
relocation to add on to the value in the object code. */
|
||||||
|
|
||||||
static bfd_reloc_status_type
|
static bfd_reloc_status_type
|
||||||
tic30_aout_fix_pcrel_16 (abfd, reloc_entry, symbol, data, input_section,
|
tic30_aout_fix_pcrel_16 (abfd, reloc_entry, symbol, data, input_section,
|
||||||
@ -285,7 +285,7 @@ tic30_aout_fix_pcrel_16 (abfd, reloc_entry, symbol, data, input_section,
|
|||||||
|
|
||||||
/* The byte before the location of the fix contains bits 23-16 of
|
/* The byte before the location of the fix contains bits 23-16 of
|
||||||
the pcrel instruction. Bit 21 is set for a delayed instruction
|
the pcrel instruction. Bit 21 is set for a delayed instruction
|
||||||
which requires on offset of 3 instead of 1. */
|
which requires on offset of 3 instead of 1. */
|
||||||
if (offset_data & 0x20)
|
if (offset_data & 0x20)
|
||||||
relocation -= 3;
|
relocation -= 3;
|
||||||
else
|
else
|
||||||
@ -295,7 +295,7 @@ tic30_aout_fix_pcrel_16 (abfd, reloc_entry, symbol, data, input_section,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* These macros will get 24-bit values from the bfd definition.
|
/* These macros will get 24-bit values from the bfd definition.
|
||||||
Big-endian only. */
|
Big-endian only. */
|
||||||
#define bfd_getb_24(BFD,ADDR) (bfd_get_8(BFD,ADDR) << 16) | \
|
#define bfd_getb_24(BFD,ADDR) (bfd_get_8(BFD,ADDR) << 16) | \
|
||||||
(bfd_get_8(BFD,ADDR+1) << 8) | \
|
(bfd_get_8(BFD,ADDR+1) << 8) | \
|
||||||
(bfd_get_8(BFD,ADDR+2))
|
(bfd_get_8(BFD,ADDR+2))
|
||||||
@ -563,7 +563,7 @@ tic30_aout_object_p (abfd)
|
|||||||
* means that it isn't obvious if EXEC_P should be set.
|
* means that it isn't obvious if EXEC_P should be set.
|
||||||
* All of the following must be true for an executable:
|
* All of the following must be true for an executable:
|
||||||
* There must be no relocations, the bfd can be neither an
|
* There must be no relocations, the bfd can be neither an
|
||||||
* archive nor an archive element, and the file must be executable. */
|
* archive nor an archive element, and the file must be executable. */
|
||||||
|
|
||||||
if (exec.a_trsize + exec.a_drsize == 0
|
if (exec.a_trsize + exec.a_drsize == 0
|
||||||
&& bfd_get_format (abfd) == bfd_object && abfd->my_archive == NULL)
|
&& bfd_get_format (abfd) == bfd_object && abfd->my_archive == NULL)
|
||||||
@ -586,7 +586,6 @@ tic30_aout_object_p (abfd)
|
|||||||
section contents, and copy_private_bfd_data is not called until
|
section contents, and copy_private_bfd_data is not called until
|
||||||
after the section contents have been set. */
|
after the section contents have been set. */
|
||||||
|
|
||||||
/*ARGSUSED */
|
|
||||||
static boolean
|
static boolean
|
||||||
MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
|
MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
|
||||||
bfd *ibfd;
|
bfd *ibfd;
|
||||||
@ -720,7 +719,7 @@ MY_bfd_final_link (abfd, info)
|
|||||||
int pad;
|
int pad;
|
||||||
|
|
||||||
/* Set the executable header size to 0, as we don't want one for an
|
/* Set the executable header size to 0, as we don't want one for an
|
||||||
output. */
|
output. */
|
||||||
adata (abfd).exec_bytes_size = 0;
|
adata (abfd).exec_bytes_size = 0;
|
||||||
pos = adata (abfd).exec_bytes_size;
|
pos = adata (abfd).exec_bytes_size;
|
||||||
/* Text. */
|
/* Text. */
|
||||||
@ -765,7 +764,7 @@ MY_bfd_final_link (abfd, info)
|
|||||||
obj_bsssec (abfd)->vma = vma;
|
obj_bsssec (abfd)->vma = vma;
|
||||||
obj_bsssec (abfd)->user_set_vma = 1;
|
obj_bsssec (abfd)->user_set_vma = 1;
|
||||||
|
|
||||||
/* We are fully resized, so don't readjust in final_link. */
|
/* We are fully resized, so don't readjust in final_link. */
|
||||||
adata (abfd).magic = z_magic;
|
adata (abfd).magic = z_magic;
|
||||||
|
|
||||||
return NAME (aout, final_link) (abfd, info, MY_final_link_callback);
|
return NAME (aout, final_link) (abfd, info, MY_final_link_callback);
|
||||||
@ -961,7 +960,6 @@ tic30_aout_set_arch_mach (abfd, arch, machine)
|
|||||||
#define MY_bfd_link_split_section _bfd_generic_link_split_section
|
#define MY_bfd_link_split_section _bfd_generic_link_split_section
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef MY_bfd_copy_private_bfd_data
|
#ifndef MY_bfd_copy_private_bfd_data
|
||||||
#define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
|
#define MY_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
|
||||||
#endif
|
#endif
|
||||||
@ -1058,7 +1056,7 @@ const bfd_target tic30_aout_vec =
|
|||||||
BFD_JUMP_TABLE_DYNAMIC (MY),
|
BFD_JUMP_TABLE_DYNAMIC (MY),
|
||||||
|
|
||||||
NULL,
|
NULL,
|
||||||
|
|
||||||
(PTR) MY_backend_data
|
(PTR) MY_backend_data
|
||||||
};
|
};
|
||||||
#endif /* MY_BFD_TARGET */
|
#endif /* MY_BFD_TARGET */
|
||||||
|
Reference in New Issue
Block a user