projects
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Automatic date update in version.in
[binutils-gdb.git]
/
bfd
/
coff-alpha.c
diff --git
a/bfd/coff-alpha.c
b/bfd/coff-alpha.c
index 9a3ac089a672a6214b274835c22171182265477a..7cf51a5911005ca56012ee9905041a00cc3c3077 100644
(file)
--- a/
bfd/coff-alpha.c
+++ b/
bfd/coff-alpha.c
@@
-1,5
+1,5
@@
/* BFD back-end for ALPHA Extended-Coff files.
/* BFD back-end for ALPHA Extended-Coff files.
- Copyright (C) 1993-202
0
Free Software Foundation, Inc.
+ Copyright (C) 1993-202
2
Free Software Foundation, Inc.
Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
Ian Lance Taylor <ian@cygnus.com>.
Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
Ian Lance Taylor <ian@cygnus.com>.
@@
-118,45
+118,45
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
reloc_nil, /* special_function */
"IGNORE", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
reloc_nil, /* special_function */
"IGNORE", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
0, /* src_mask */
0, /* dst_mask */
-
TRUE
), /* pcrel_offset */
+
true
), /* pcrel_offset */
/* A 32 bit reference to a symbol. */
HOWTO (ALPHA_R_REFLONG, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
/* A 32 bit reference to a symbol. */
HOWTO (ALPHA_R_REFLONG, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
0, /* special_function */
"REFLONG", /* name */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
0, /* special_function */
"REFLONG", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* A 64 bit reference to a symbol. */
HOWTO (ALPHA_R_REFQUAD, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
/* A 64 bit reference to a symbol. */
HOWTO (ALPHA_R_REFQUAD, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
0, /* special_function */
"REFQUAD", /* name */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
0, /* special_function */
"REFQUAD", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* A 32 bit GP relative offset. This is just like REFLONG except
that when the value is used the value of the gp register will be
/* A 32 bit GP relative offset. This is just like REFLONG except
that when the value is used the value of the gp register will be
@@
-165,15
+165,15
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
0, /* special_function */
"GPREL32", /* name */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
0, /* special_function */
"GPREL32", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Used for an instruction that refers to memory off the GP
register. The offset is 16 bits of the 32 bit instruction. This
/* Used for an instruction that refers to memory off the GP
register. The offset is 16 bits of the 32 bit instruction. This
@@
-182,15
+182,15
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"LITERAL", /* name */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"LITERAL", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0xffff, /* src_mask */
0xffff, /* dst_mask */
0xffff, /* src_mask */
0xffff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* This reloc only appears immediately following a LITERAL reloc.
It identifies a use of the literal. It seems that the linker can
/* This reloc only appears immediately following a LITERAL reloc.
It identifies a use of the literal. It seems that the linker can
@@
-205,15
+205,15
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
reloc_nil, /* special_function */
"LITUSE", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
reloc_nil, /* special_function */
"LITUSE", /* name */
-
FALSE
, /* partial_inplace */
+
false
, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
0, /* src_mask */
0, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Load the gp register. This is always used for a ldah instruction
which loads the upper 16 bits of the gp register. The next reloc
/* Load the gp register. This is always used for a ldah instruction
which loads the upper 16 bits of the gp register. The next reloc
@@
-230,15
+230,15
@@
static reloc_howto_type alpha_howto_table[] =
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
reloc_nil, /* special_function */
"GPDISP", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
reloc_nil, /* special_function */
"GPDISP", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0xffff, /* src_mask */
0xffff, /* dst_mask */
0xffff, /* src_mask */
0xffff, /* dst_mask */
-
TRUE
), /* pcrel_offset */
+
true
), /* pcrel_offset */
/* A 21 bit branch. The native assembler generates these for
branches within the text segment, and also fills in the PC
/* A 21 bit branch. The native assembler generates these for
branches within the text segment, and also fills in the PC
@@
-247,90
+247,90
@@
static reloc_howto_type alpha_howto_table[] =
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
21, /* bitsize */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
21, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"BRADDR", /* name */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"BRADDR", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0x1fffff, /* src_mask */
0x1fffff, /* dst_mask */
0x1fffff, /* src_mask */
0x1fffff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* A hint for a jump to a register. */
HOWTO (ALPHA_R_HINT, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
14, /* bitsize */
/* A hint for a jump to a register. */
HOWTO (ALPHA_R_HINT, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
14, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"HINT", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"HINT", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0x3fff, /* src_mask */
0x3fff, /* dst_mask */
0x3fff, /* src_mask */
0x3fff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* 16 bit PC relative offset. */
HOWTO (ALPHA_R_SREL16, /* type */
0, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
/* 16 bit PC relative offset. */
HOWTO (ALPHA_R_SREL16, /* type */
0, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"SREL16", /* name */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"SREL16", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0xffff, /* src_mask */
0xffff, /* dst_mask */
0xffff, /* src_mask */
0xffff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* 32 bit PC relative offset. */
HOWTO (ALPHA_R_SREL32, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
/* 32 bit PC relative offset. */
HOWTO (ALPHA_R_SREL32, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"SREL32", /* name */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"SREL32", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* A 64 bit PC relative offset. */
HOWTO (ALPHA_R_SREL64, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
/* A 64 bit PC relative offset. */
HOWTO (ALPHA_R_SREL64, /* type */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
-
TRUE
, /* pc_relative */
+
true
, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"SREL64", /* name */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
0, /* special_function */
"SREL64", /* name */
-
TRUE
, /* partial_inplace */
+
true
, /* partial_inplace */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
MINUS_ONE, /* src_mask */
MINUS_ONE, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Push a value on the reloc evaluation stack. */
HOWTO (ALPHA_R_OP_PUSH, /* type */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
/* Push a value on the reloc evaluation stack. */
HOWTO (ALPHA_R_OP_PUSH, /* type */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_PUSH", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_PUSH", /* name */
-
FALSE
, /* partial_inplace */
+
false
, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
0, /* src_mask */
0, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Store the value from the stack at the given address. Store it in
a bitfield of size r_size starting at bit position r_offset. */
/* Store the value from the stack at the given address. Store it in
a bitfield of size r_size starting at bit position r_offset. */
@@
-338,15
+338,15
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
0, /* rightshift */
4, /* size (0 = byte, 1 = short, 2 = long) */
64, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_STORE", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_STORE", /* name */
-
FALSE
, /* partial_inplace */
+
false
, /* partial_inplace */
0, /* src_mask */
MINUS_ONE, /* dst_mask */
0, /* src_mask */
MINUS_ONE, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Subtract the reloc address from the value on the top of the
relocation stack. */
/* Subtract the reloc address from the value on the top of the
relocation stack. */
@@
-354,15
+354,15
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_PSUB", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_PSUB", /* name */
-
FALSE
, /* partial_inplace */
+
false
, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
0, /* src_mask */
0, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Shift the value on the top of the relocation stack right by the
given value. */
/* Shift the value on the top of the relocation stack right by the
given value. */
@@
-370,38
+370,38
@@
static reloc_howto_type alpha_howto_table[] =
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_PRSHIFT", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"OP_PRSHIFT", /* name */
-
FALSE
, /* partial_inplace */
+
false
, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
0, /* src_mask */
0, /* dst_mask */
-
FALSE
), /* pcrel_offset */
+
false
), /* pcrel_offset */
/* Adjust the GP value for a new range in the object file. */
HOWTO (ALPHA_R_GPVALUE, /* type */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
/* Adjust the GP value for a new range in the object file. */
HOWTO (ALPHA_R_GPVALUE, /* type */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
-
FALSE
, /* pc_relative */
+
false
, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"GPVALUE", /* name */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
0, /* special_function */
"GPVALUE", /* name */
-
FALSE
, /* partial_inplace */
+
false
, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
0, /* src_mask */
0, /* dst_mask */
-
FALSE
) /* pcrel_offset */
+
false
) /* pcrel_offset */
};
\f
/* Recognize an Alpha ECOFF file. */
};
\f
/* Recognize an Alpha ECOFF file. */
-static
const bfd_target *
+static
bfd_cleanup
alpha_ecoff_object_p (bfd *abfd)
{
alpha_ecoff_object_p (bfd *abfd)
{
-
static const bfd_target *
ret;
+
bfd_cleanup
ret;
ret = coff_object_p (abfd);
ret = coff_object_p (abfd);
@@
-436,14
+436,14
@@
alpha_ecoff_object_p (bfd *abfd)
/* See whether the magic number matches. */
/* See whether the magic number matches. */
-static b
fd_boolean
+static b
ool
alpha_ecoff_bad_format_hook (bfd *abfd ATTRIBUTE_UNUSED,
void * filehdr)
{
struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
if (! ALPHA_ECOFF_BADMAG (*internal_f))
alpha_ecoff_bad_format_hook (bfd *abfd ATTRIBUTE_UNUSED,
void * filehdr)
{
struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
if (! ALPHA_ECOFF_BADMAG (*internal_f))
- return
TRUE
;
+ return
true
;
if (ALPHA_ECOFF_COMPRESSEDMAG (*internal_f))
_bfd_error_handler
if (ALPHA_ECOFF_COMPRESSEDMAG (*internal_f))
_bfd_error_handler
@@
-451,7
+451,7
@@
alpha_ecoff_bad_format_hook (bfd *abfd ATTRIBUTE_UNUSED,
"use compiler flags, or objZ, to generate uncompressed binaries"),
abfd);
"use compiler flags, or objZ, to generate uncompressed binaries"),
abfd);
- return
FALSE
;
+ return
false
;
}
/* This is a hook called by coff_real_object_p to create any backend
}
/* This is a hook called by coff_real_object_p to create any backend
@@
-727,30
+727,36
@@
alpha_ecoff_get_relocated_section_contents (bfd *abfd,
struct bfd_link_info *link_info,
struct bfd_link_order *link_order,
bfd_byte *data,
struct bfd_link_info *link_info,
struct bfd_link_order *link_order,
bfd_byte *data,
- b
fd_boolean
relocatable,
+ b
ool
relocatable,
asymbol **symbols)
{
bfd *input_bfd = link_order->u.indirect.section->owner;
asection *input_section = link_order->u.indirect.section;
asymbol **symbols)
{
bfd *input_bfd = link_order->u.indirect.section->owner;
asection *input_section = link_order->u.indirect.section;
- long reloc_size
= bfd_get_reloc_upper_bound (input_bfd, input_section)
;
- arelent **reloc_vector
= NULL
;
+ long reloc_size;
+ arelent **reloc_vector;
long reloc_count;
bfd *output_bfd = relocatable ? abfd : (bfd *) NULL;
bfd_vma gp;
long reloc_count;
bfd *output_bfd = relocatable ? abfd : (bfd *) NULL;
bfd_vma gp;
- bfd_size_type sz;
- bfd_boolean gp_undefined;
+ bool gp_undefined;
bfd_vma stack[RELOC_STACKSIZE];
int tos = 0;
bfd_vma stack[RELOC_STACKSIZE];
int tos = 0;
+ reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
if (reloc_size < 0)
if (reloc_size < 0)
- goto error_return;
- reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size);
- if (reloc_vector == NULL && reloc_size != 0)
- goto error_return;
+ return NULL;
- sz = input_section->rawsize ? input_section->rawsize : input_section->size;
- if (! bfd_get_section_contents (input_bfd, input_section, data, 0, sz))
- goto error_return;
+ if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
+ return NULL;
+
+ if (data == NULL)
+ return NULL;
+
+ if (reloc_size == 0)
+ return data;
+
+ reloc_vector = (arelent **) bfd_malloc (reloc_size);
+ if (reloc_vector == NULL)
+ return NULL;
reloc_count = bfd_canonicalize_reloc (input_bfd, input_section,
reloc_vector, symbols);
reloc_count = bfd_canonicalize_reloc (input_bfd, input_section,
reloc_vector, symbols);
@@
-760,7
+766,7
@@
alpha_ecoff_get_relocated_section_contents (bfd *abfd,
goto successful_return;
/* Get the GP value for the output BFD. */
goto successful_return;
/* Get the GP value for the output BFD. */
- gp_undefined =
FALSE
;
+ gp_undefined =
false
;
gp = _bfd_get_gp_value (abfd);
if (gp == 0)
{
gp = _bfd_get_gp_value (abfd);
if (gp == 0)
{
@@
-788,11
+794,11
@@
alpha_ecoff_get_relocated_section_contents (bfd *abfd,
{
struct bfd_link_hash_entry *h;
{
struct bfd_link_hash_entry *h;
- h = bfd_link_hash_lookup (link_info->hash, "_gp",
FALSE, FALSE
,
-
TRUE
);
+ h = bfd_link_hash_lookup (link_info->hash, "_gp",
false, false
,
+
true
);
if (h == (struct bfd_link_hash_entry *) NULL
|| h->type != bfd_link_hash_defined)
if (h == (struct bfd_link_hash_entry *) NULL
|| h->type != bfd_link_hash_defined)
- gp_undefined =
TRUE
;
+ gp_undefined =
true
;
else
{
gp = (h->u.def.value
else
{
gp = (h->u.def.value
@@
-1080,7
+1086,7
@@
alpha_ecoff_get_relocated_section_contents (bfd *abfd,
case ALPHA_R_GPVALUE:
/* I really don't know if this does the right thing. */
gp = rel->addend;
case ALPHA_R_GPVALUE:
/* I really don't know if this does the right thing. */
gp = rel->addend;
- gp_undefined =
FALSE
;
+ gp_undefined =
false
;
break;
default:
break;
default:
@@
-1103,7
+1109,7
@@
alpha_ecoff_get_relocated_section_contents (bfd *abfd,
case bfd_reloc_undefined:
(*link_info->callbacks->undefined_symbol)
(link_info, bfd_asymbol_name (*rel->sym_ptr_ptr),
case bfd_reloc_undefined:
(*link_info->callbacks->undefined_symbol)
(link_info, bfd_asymbol_name (*rel->sym_ptr_ptr),
- input_bfd, input_section, rel->address,
TRUE
);
+ input_bfd, input_section, rel->address,
true
);
break;
case bfd_reloc_dangerous:
(*link_info->callbacks->reloc_dangerous)
break;
case bfd_reloc_dangerous:
(*link_info->callbacks->reloc_dangerous)
@@
-1127,13
+1133,11
@@
alpha_ecoff_get_relocated_section_contents (bfd *abfd,
abort ();
successful_return:
abort ();
successful_return:
- if (reloc_vector != NULL)
- free (reloc_vector);
+ free (reloc_vector);
return data;
error_return:
return data;
error_return:
- if (reloc_vector != NULL)
- free (reloc_vector);
+ free (reloc_vector);
return NULL;
}
return NULL;
}
@@
-1327,7
+1331,7
@@
alpha_convert_external_reloc (bfd *output_bfd ATTRIBUTE_UNUSED,
quite similar to get_relocated_section_contents. Perhaps they
could be combined somehow. */
quite similar to get_relocated_section_contents. Perhaps they
could be combined somehow. */
-static b
fd_boolean
+static b
ool
alpha_relocate_section (bfd *output_bfd,
struct bfd_link_info *info,
bfd *input_bfd,
alpha_relocate_section (bfd *output_bfd,
struct bfd_link_info *info,
bfd *input_bfd,
@@
-1338,7
+1342,7
@@
alpha_relocate_section (bfd *output_bfd,
asection **symndx_to_section, *lita_sec;
struct ecoff_link_hash_entry **sym_hashes;
bfd_vma gp;
asection **symndx_to_section, *lita_sec;
struct ecoff_link_hash_entry **sym_hashes;
bfd_vma gp;
- b
fd_boolean
gp_undefined;
+ b
ool
gp_undefined;
bfd_vma stack[RELOC_STACKSIZE];
int tos = 0;
struct external_reloc *ext_rel;
bfd_vma stack[RELOC_STACKSIZE];
int tos = 0;
struct external_reloc *ext_rel;
@@
-1354,7
+1358,7
@@
alpha_relocate_section (bfd *output_bfd,
amt = NUM_RELOC_SECTIONS * sizeof (asection *);
symndx_to_section = (asection **) bfd_alloc (input_bfd, amt);
if (!symndx_to_section)
amt = NUM_RELOC_SECTIONS * sizeof (asection *);
symndx_to_section = (asection **) bfd_alloc (input_bfd, amt);
if (!symndx_to_section)
- return
FALSE
;
+ return
false
;
symndx_to_section[RELOC_SECTION_NONE] = NULL;
symndx_to_section[RELOC_SECTION_TEXT] =
symndx_to_section[RELOC_SECTION_NONE] = NULL;
symndx_to_section[RELOC_SECTION_TEXT] =
@@
-1443,7
+1447,7
@@
alpha_relocate_section (bfd *output_bfd,
_("using multiple gp values"),
(char *) NULL, output_bfd,
(asection *) NULL, (bfd_vma) 0);
_("using multiple gp values"),
(char *) NULL, output_bfd,
(asection *) NULL, (bfd_vma) 0);
- ecoff_data (output_bfd)->issued_multiple_gp_warning =
TRUE
;
+ ecoff_data (output_bfd)->issued_multiple_gp_warning =
true
;
}
if (lita_vma < gp - 0x8000)
gp = lita_vma + lita_size - 0x8000;
}
if (lita_vma < gp - 0x8000)
gp = lita_vma + lita_size - 0x8000;
@@
-1473,9
+1477,9
@@
alpha_relocate_section (bfd *output_bfd,
int r_extern;
int r_offset;
int r_size;
int r_extern;
int r_offset;
int r_size;
- b
fd_boolean
relocatep;
- b
fd_boolean
adjust_addrp;
- b
fd_boolean
gp_usedp;
+ b
ool
relocatep;
+ b
ool
adjust_addrp;
+ b
ool
gp_usedp;
bfd_vma addend;
r_vaddr = H_GET_64 (input_bfd, ext_rel->r_vaddr);
bfd_vma addend;
r_vaddr = H_GET_64 (input_bfd, ext_rel->r_vaddr);
@@
-1490,9
+1494,9
@@
alpha_relocate_section (bfd *output_bfd,
r_size = ((ext_rel->r_bits[3] & RELOC_BITS3_SIZE_LITTLE)
>> RELOC_BITS3_SIZE_SH_LITTLE);
r_size = ((ext_rel->r_bits[3] & RELOC_BITS3_SIZE_LITTLE)
>> RELOC_BITS3_SIZE_SH_LITTLE);
- relocatep =
FALSE
;
- adjust_addrp =
TRUE
;
- gp_usedp =
FALSE
;
+ relocatep =
false
;
+ adjust_addrp =
true
;
+ gp_usedp =
false
;
addend = 0;
switch (r_type)
addend = 0;
switch (r_type)
@@
-1526,13
+1530,13
@@
alpha_relocate_section (bfd *output_bfd,
if (bfd_link_relocatable (info))
H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr,
ext_rel->r_vaddr);
if (bfd_link_relocatable (info))
H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr,
ext_rel->r_vaddr);
- adjust_addrp =
FALSE
;
+ adjust_addrp =
false
;
break;
case ALPHA_R_REFLONG:
case ALPHA_R_REFQUAD:
case ALPHA_R_HINT:
break;
case ALPHA_R_REFLONG:
case ALPHA_R_REFQUAD:
case ALPHA_R_HINT:
- relocatep =
TRUE
;
+ relocatep =
true
;
break;
case ALPHA_R_BRADDR:
break;
case ALPHA_R_BRADDR:
@@
-1541,7
+1545,7
@@
alpha_relocate_section (bfd *output_bfd,
case ALPHA_R_SREL64:
if (r_extern)
addend += - (r_vaddr + 4);
case ALPHA_R_SREL64:
if (r_extern)
addend += - (r_vaddr + 4);
- relocatep =
TRUE
;
+ relocatep =
true
;
break;
case ALPHA_R_GPREL32:
break;
case ALPHA_R_GPREL32:
@@
-1549,9
+1553,9
@@
alpha_relocate_section (bfd *output_bfd,
bit offset from the current GP value. We must adjust it
by the different between the original GP value and the
current GP value. */
bit offset from the current GP value. We must adjust it
by the different between the original GP value and the
current GP value. */
- relocatep =
TRUE
;
+ relocatep =
true
;
addend = ecoff_data (input_bfd)->gp - gp;
addend = ecoff_data (input_bfd)->gp - gp;
- gp_usedp =
TRUE
;
+ gp_usedp =
true
;
break;
case ALPHA_R_LITERAL:
break;
case ALPHA_R_LITERAL:
@@
-1582,9
+1586,9
@@
alpha_relocate_section (bfd *output_bfd,
|| ((insn >> 26) & 0x3f) == 0x28);
}
|| ((insn >> 26) & 0x3f) == 0x28);
}
- relocatep =
TRUE
;
+ relocatep =
true
;
addend = ecoff_data (input_bfd)->gp - gp;
addend = ecoff_data (input_bfd)->gp - gp;
- gp_usedp =
TRUE
;
+ gp_usedp =
true
;
break;
case ALPHA_R_LITUSE:
break;
case ALPHA_R_LITUSE:
@@
-1648,7
+1652,7
@@
alpha_relocate_section (bfd *output_bfd,
bfd_put_32 (input_bfd, (bfd_vma) insn2,
contents + r_vaddr - input_section->vma + r_symndx);
bfd_put_32 (input_bfd, (bfd_vma) insn2,
contents + r_vaddr - input_section->vma + r_symndx);
- gp_usedp =
TRUE
;
+ gp_usedp =
true
;
}
break;
}
break;
@@
-1691,7
+1695,7
@@
alpha_relocate_section (bfd *output_bfd,
relocated. */
(*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd,
relocated. */
(*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd,
- input_section, (bfd_vma) 0,
TRUE
);
+ input_section, (bfd_vma) 0,
true
);
addend = 0;
}
}
addend = 0;
}
}
@@
-1746,7
+1750,7
@@
alpha_relocate_section (bfd *output_bfd,
}
}
}
}
- adjust_addrp =
FALSE
;
+ adjust_addrp =
false
;
break;
case ALPHA_R_OP_STORE:
break;
case ALPHA_R_OP_STORE:
@@
-1783,7
+1787,7
@@
alpha_relocate_section (bfd *output_bfd,
case ALPHA_R_GPVALUE:
/* I really don't know if this does the right thing. */
gp = ecoff_data (input_bfd)->gp + r_symndx;
case ALPHA_R_GPVALUE:
/* I really don't know if this does the right thing. */
gp = ecoff_data (input_bfd)->gp + r_symndx;
- gp_undefined =
FALSE
;
+ gp_undefined =
false
;
break;
}
break;
}
@@
-1888,7
+1892,7
@@
alpha_relocate_section (bfd *output_bfd,
{
(*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
{
(*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
- r_vaddr - input_section->vma,
TRUE
);
+ r_vaddr - input_section->vma,
true
);
relocation = 0;
}
}
relocation = 0;
}
}
@@
-1958,20
+1962,20
@@
alpha_relocate_section (bfd *output_bfd,
/* Only give the error once per link. */
gp = 4;
_bfd_set_gp_value (output_bfd, gp);
/* Only give the error once per link. */
gp = 4;
_bfd_set_gp_value (output_bfd, gp);
- gp_undefined =
FALSE
;
+ gp_undefined =
false
;
}
}
if (tos != 0)
abort ();
}
}
if (tos != 0)
abort ();
- return
TRUE
;
+ return
true
;
}
\f
/* Do final adjustments to the filehdr and the aouthdr. This routine
sets the dynamic bits in the file header. */
}
\f
/* Do final adjustments to the filehdr and the aouthdr. This routine
sets the dynamic bits in the file header. */
-static b
fd_boolean
+static b
ool
alpha_adjust_headers (bfd *abfd,
struct internal_filehdr *fhdr,
struct internal_aouthdr *ahdr ATTRIBUTE_UNUSED)
alpha_adjust_headers (bfd *abfd,
struct internal_filehdr *fhdr,
struct internal_aouthdr *ahdr ATTRIBUTE_UNUSED)
@@
-1980,7
+1984,7
@@
alpha_adjust_headers (bfd *abfd,
fhdr->f_flags |= F_ALPHA_CALL_SHARED;
else if ((abfd->flags & DYNAMIC) != 0)
fhdr->f_flags |= F_ALPHA_SHARABLE;
fhdr->f_flags |= F_ALPHA_CALL_SHARED;
else if ((abfd->flags & DYNAMIC) != 0)
fhdr->f_flags |= F_ALPHA_SHARABLE;
- return
TRUE
;
+ return
true
;
}
\f
/* Archive handling. In OSF/1 (or Digital Unix) v3.2, Digital
}
\f
/* Archive handling. In OSF/1 (or Digital Unix) v3.2, Digital
@@
-2041,7
+2045,8
@@
alpha_ecoff_read_ar_hdr (bfd *abfd)
we uncompress the archive element if necessary. */
static bfd *
we uncompress the archive element if necessary. */
static bfd *
-alpha_ecoff_get_elt_at_filepos (bfd *archive, file_ptr filepos)
+alpha_ecoff_get_elt_at_filepos (bfd *archive, file_ptr filepos,
+ struct bfd_link_info *info)
{
bfd *nbfd = NULL;
struct areltdata *tdata;
{
bfd *nbfd = NULL;
struct areltdata *tdata;
@@
-2053,7
+2058,7
@@
alpha_ecoff_get_elt_at_filepos (bfd *archive, file_ptr filepos)
ufile_ptr filesize;
buf = NULL;
ufile_ptr filesize;
buf = NULL;
- nbfd = _bfd_get_elt_at_filepos (archive, filepos);
+ nbfd = _bfd_get_elt_at_filepos (archive, filepos
, info
);
if (nbfd == NULL)
goto error_return;
if (nbfd == NULL)
goto error_return;
@@
-2130,7
+2135,7
@@
alpha_ecoff_get_elt_at_filepos (bfd *archive, file_ptr filepos)
n = dict[h];
else
{
n = dict[h];
else
{
- if (
! bfd_bread (&n, (bfd_size_type) 1, nbfd)
)
+ if (
bfd_bread (&n, 1, nbfd) != 1
)
goto error_return;
dict[h] = n;
}
goto error_return;
dict[h] = n;
}
@@
-2159,7
+2164,7
@@
alpha_ecoff_get_elt_at_filepos (bfd *archive, file_ptr filepos)
bim->size = size;
bim->buffer = buf;
bim->size = size;
bim->buffer = buf;
- nbfd->mtime_set =
TRUE
;
+ nbfd->mtime_set =
true
;
nbfd->mtime = strtol (hdr->ar_date, (char **) NULL, 10);
nbfd->flags |= BFD_IN_MEMORY;
nbfd->mtime = strtol (hdr->ar_date, (char **) NULL, 10);
nbfd->flags |= BFD_IN_MEMORY;
@@
-2171,8
+2176,7
@@
alpha_ecoff_get_elt_at_filepos (bfd *archive, file_ptr filepos)
return nbfd;
error_return:
return nbfd;
error_return:
- if (buf != NULL)
- free (buf);
+ free (buf);
if (nbfd != NULL)
bfd_close (nbfd);
return NULL;
if (nbfd != NULL)
bfd_close (nbfd);
return NULL;
@@
-2212,7
+2216,7
@@
alpha_ecoff_openr_next_archived_file (bfd *archive, bfd *last_file)
}
}
}
}
- return alpha_ecoff_get_elt_at_filepos (archive, filestart);
+ return alpha_ecoff_get_elt_at_filepos (archive, filestart
, NULL
);
}
/* Open the archive file given an index into the armap. */
}
/* Open the archive file given an index into the armap. */
@@
-2223,7
+2227,8
@@
alpha_ecoff_get_elt_at_index (bfd *abfd, symindex sym_index)
carsym *entry;
entry = bfd_ardata (abfd)->symdefs + sym_index;
carsym *entry;
entry = bfd_ardata (abfd)->symdefs + sym_index;
- return alpha_ecoff_get_elt_at_filepos (abfd, entry->file_offset);
+ return alpha_ecoff_get_elt_at_filepos (abfd, entry->file_offset,
+ NULL);
}
static void
}
static void
@@
-2300,8
+2305,8
@@
static const struct ecoff_backend_data alpha_ecoff_backend_data =
alpha_ecoff_swap_coff_reloc_out,
alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out,
alpha_ecoff_swap_scnhdr_out,
alpha_ecoff_swap_coff_reloc_out,
alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out,
alpha_ecoff_swap_scnhdr_out,
- FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN,
TRUE
,
- ECOFF_NO_LONG_SECTION_NAMES, 4,
FALSE
, 2, 32768,
+ FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN,
true
,
+ ECOFF_NO_LONG_SECTION_NAMES, 4,
false
, 2, 32768,
alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in,
alpha_ecoff_swap_scnhdr_in, NULL,
alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in,
alpha_ecoff_swap_scnhdr_in, NULL,
alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
@@
-2320,7
+2325,7
@@
static const struct ecoff_backend_data alpha_ecoff_backend_data =
/* TRUE if the .rdata section is part of the text segment, as on the
Alpha. FALSE if .rdata is part of the data segment, as on the
MIPS. */
/* TRUE if the .rdata section is part of the text segment, as on the
Alpha. FALSE if .rdata is part of the data segment, as on the
MIPS. */
-
TRUE
,
+
true
,
/* Bitsize of constructor entries. */
64,
/* Reloc to use for constructor entries. */
/* Bitsize of constructor entries. */
64,
/* Reloc to use for constructor entries. */
@@
-2424,11
+2429,13
@@
const bfd_target alpha_ecoff_le_vec =
| HAS_LINENO | HAS_DEBUG
| HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
| HAS_LINENO | HAS_DEBUG
| HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
- (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA),
+ (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE
+ | SEC_DATA | SEC_SMALL_DATA),
0, /* leading underscore */
' ', /* ar_pad_char */
15, /* ar_max_namelen */
0, /* match priority. */
0, /* leading underscore */
' ', /* ar_pad_char */
15, /* ar_max_namelen */
0, /* match priority. */
+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */
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_getl64, bfd_getl_signed_64, bfd_putl64,
bfd_getl32, bfd_getl_signed_32, bfd_putl32,
bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */