projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for the Freescale s12z processor.
[deliverable/binutils-gdb.git]
/
ld
/
ldwrite.c
diff --git
a/ld/ldwrite.c
b/ld/ldwrite.c
index 481fef46170296ff1465db6cf52f493c54e2095a..54345abda78914db1db2f0fb2019d3641e342c75 100644
(file)
--- a/
ld/ldwrite.c
+++ b/
ld/ldwrite.c
@@
-1,7
+1,5
@@
/* ldwrite.c -- write out the linked file
/* ldwrite.c -- write out the linked file
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2010
- Free Software Foundation, Inc.
+ Copyright (C) 1991-2018 Free Software Foundation, Inc.
Written by Steve Chamberlain sac@cygnus.com
This file is part of the GNU Binutils.
Written by Steve Chamberlain sac@cygnus.com
This file is part of the GNU Binutils.
@@
-59,7
+57,7
@@
build_link_order (lang_statement_union_type *statement)
link_order = bfd_new_link_order (link_info.output_bfd, output_section);
if (link_order == NULL)
link_order = bfd_new_link_order (link_info.output_bfd, output_section);
if (link_order == NULL)
- einfo (_("%
P%F
: bfd_new_link_order failed\n"));
+ einfo (_("%
F%P
: bfd_new_link_order failed\n"));
link_order->type = bfd_data_link_order;
link_order->offset = statement->data_statement.output_offset;
link_order->type = bfd_data_link_order;
link_order->offset = statement->data_statement.output_offset;
@@
-93,17
+91,17
@@
build_link_order (lang_statement_union_type *statement)
big_endian = TRUE;
{
LANG_FOR_EACH_INPUT_STATEMENT (s)
big_endian = TRUE;
{
LANG_FOR_EACH_INPUT_STATEMENT (s)
-
{
-
if (s->the_bfd != NULL)
-
{
-
if (bfd_little_endian (s->the_bfd))
-
{
-
big_endian = FALSE;
-
swap = TRUE;
-
}
-
break;
-
}
-
}
+ {
+ if (s->the_bfd != NULL)
+ {
+ if (bfd_little_endian (s->the_bfd))
+ {
+ big_endian = FALSE;
+ swap = TRUE;
+ }
+ break;
+ }
+ }
}
}
}
}
@@
-205,13
+203,13
@@
build_link_order (lang_statement_union_type *statement)
link_order = bfd_new_link_order (link_info.output_bfd, output_section);
if (link_order == NULL)
link_order = bfd_new_link_order (link_info.output_bfd, output_section);
if (link_order == NULL)
- einfo (_("%
P%F
: bfd_new_link_order failed\n"));
+ einfo (_("%
F%P
: bfd_new_link_order failed\n"));
link_order->offset = rs->output_offset;
link_order->size = bfd_get_reloc_size (rs->howto);
link_order->u.reloc.p = (struct bfd_link_order_reloc *)
link_order->offset = rs->output_offset;
link_order->size = bfd_get_reloc_size (rs->howto);
link_order->u.reloc.p = (struct bfd_link_order_reloc *)
-
xmalloc (sizeof (struct bfd_link_order_reloc));
+ xmalloc (sizeof (struct bfd_link_order_reloc));
link_order->u.reloc.p->reloc = rs->reloc;
link_order->u.reloc.p->addend = rs->addend_value;
link_order->u.reloc.p->reloc = rs->reloc;
link_order->u.reloc.p->addend = rs->addend_value;
@@
-241,7
+239,7
@@
build_link_order (lang_statement_union_type *statement)
attached */
asection *i = statement->input_section.section;
attached */
asection *i = statement->input_section.section;
- if (
!((lang_input_statement_type *) i->owner->usrdata)->just_syms_flag
+ if (
i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
&& (i->flags & SEC_EXCLUDE) == 0)
{
asection *output_section = i->output_section;
&& (i->flags & SEC_EXCLUDE) == 0)
{
asection *output_section = i->output_section;
@@
-256,6
+254,8
@@
build_link_order (lang_statement_union_type *statement)
link_order = bfd_new_link_order (link_info.output_bfd,
output_section);
link_order = bfd_new_link_order (link_info.output_bfd,
output_section);
+ if (link_order == NULL)
+ einfo (_("%F%P: bfd_new_link_order failed\n"));
if ((i->flags & SEC_NEVER_LOAD) != 0
&& (i->flags & SEC_DEBUGGING) == 0)
if ((i->flags & SEC_NEVER_LOAD) != 0
&& (i->flags & SEC_DEBUGGING) == 0)
@@
-295,6
+295,8
@@
build_link_order (lang_statement_union_type *statement)
link_order = bfd_new_link_order (link_info.output_bfd,
output_section);
link_order = bfd_new_link_order (link_info.output_bfd,
output_section);
+ if (link_order == NULL)
+ einfo (_("%F%P: bfd_new_link_order failed\n"));
link_order->type = bfd_data_link_order;
link_order->size = statement->padding_statement.size;
link_order->offset = statement->padding_statement.output_offset;
link_order->type = bfd_data_link_order;
link_order->size = statement->padding_statement.size;
link_order->offset = statement->padding_statement.output_offset;
@@
-338,7
+340,7
@@
clone_section (bfd *abfd, asection *s, const char *name, int *count)
{
char *tname;
char *sname;
{
char *tname;
char *sname;
- unsigned int len;
+ unsigned int len;
asection *n;
struct bfd_link_hash_entry *h;
asection *n;
struct bfd_link_hash_entry *h;
@@
-411,13
+413,9
@@
ds (asection *s)
while (l)
{
if (l->type == bfd_indirect_link_order)
while (l)
{
if (l->type == bfd_indirect_link_order)
- {
- printf ("%8x %s\n", l->offset, l->u.indirect.section->owner->filename);
- }
+ printf ("%8x %s\n", l->offset, l->u.indirect.section->owner->filename);
else
else
- {
- printf (_("%8x something else\n"), l->offset);
- }
+ printf (_("%8x something else\n"), l->offset);
l = l->next;
}
printf ("\n");
l = l->next;
}
printf ("\n");
@@
-490,13
+488,13
@@
split_sections (bfd *abfd, struct bfd_link_info *info)
|| info->strip == strip_some)
thislines = sec->lineno_count;
|| info->strip == strip_some)
thislines = sec->lineno_count;
- if (
info->relocatable
)
+ if (
bfd_link_relocatable (info)
)
thisrelocs = sec->reloc_count;
thissize = sec->size;
}
thisrelocs = sec->reloc_count;
thissize = sec->size;
}
- else if (
info->relocatable
+ else if (
bfd_link_relocatable (info)
&& (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order))
thisrelocs++;
&& (p->type == bfd_section_reloc_link_order
|| p->type == bfd_symbol_reloc_link_order))
thisrelocs++;
@@
-574,6
+572,7
@@
ldwrite (void)
/* Reset error indicator, which can typically something like invalid
format from opening up the .o files. */
bfd_set_error (bfd_error_no_error);
/* Reset error indicator, which can typically something like invalid
format from opening up the .o files. */
bfd_set_error (bfd_error_no_error);
+ lang_clear_os_map ();
lang_for_each_statement (build_link_order);
if (config.split_by_reloc != (unsigned) -1
lang_for_each_statement (build_link_order);
if (config.split_by_reloc != (unsigned) -1
This page took
0.02574 seconds
and
4
git commands to generate.