# This shell script emits a C file. -*- C -*-
-# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+# Copyright (C) 2011-2019 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
static int
is_tic6x_target (void)
{
- extern const bfd_target bfd_elf32_tic6x_le_vec;
- extern const bfd_target bfd_elf32_tic6x_be_vec;
- extern const bfd_target bfd_elf32_tic6x_linux_le_vec;
- extern const bfd_target bfd_elf32_tic6x_linux_be_vec;
- extern const bfd_target bfd_elf32_tic6x_elf_le_vec;
- extern const bfd_target bfd_elf32_tic6x_elf_be_vec;
-
- return (link_info.output_bfd->xvec == &bfd_elf32_tic6x_le_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_be_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_linux_le_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_linux_be_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_elf_le_vec
- || link_info.output_bfd->xvec == &bfd_elf32_tic6x_elf_be_vec);
+ extern const bfd_target tic6x_elf32_le_vec;
+ extern const bfd_target tic6x_elf32_be_vec;
+ extern const bfd_target tic6x_elf32_linux_le_vec;
+ extern const bfd_target tic6x_elf32_linux_be_vec;
+ extern const bfd_target tic6x_elf32_c6000_le_vec;
+ extern const bfd_target tic6x_elf32_c6000_be_vec;
+
+ return (link_info.output_bfd->xvec == &tic6x_elf32_le_vec
+ || link_info.output_bfd->xvec == &tic6x_elf32_be_vec
+ || link_info.output_bfd->xvec == &tic6x_elf32_linux_le_vec
+ || link_info.output_bfd->xvec == &tic6x_elf32_linux_be_vec
+ || link_info.output_bfd->xvec == &tic6x_elf32_c6000_le_vec
+ || link_info.output_bfd->xvec == &tic6x_elf32_c6000_be_vec);
}
/* Pass params to backend. */
{
if (params.dsbt_index >= params.dsbt_size)
{
- einfo (_("%P%F: invalid --dsbt-index %d, outside DSBT size.\n"),
+ einfo (_("%F%P: invalid --dsbt-index %d, outside DSBT size\n"),
params.dsbt_index);
}
elf32_tic6x_setup (&link_info, ¶ms);
gld${EMULATION_NAME}_after_allocation (void)
{
int layout_changed = 0;
+ int ret;
- if (!link_info.relocatable)
+ if (!bfd_link_relocatable (&link_info))
{
/* Build a sorted list of input text sections, then use that to process
the unwind table index. */
unsigned int list_size = 10;
asection **sec_list = (asection **)
- xmalloc (list_size * sizeof (asection *));
+ xmalloc (list_size * sizeof (asection *));
unsigned int sec_count = 0;
LANG_FOR_EACH_INPUT_STATEMENT (is)
{
list_size *= 2;
sec_list = (asection **)
- xrealloc (sec_list, list_size * sizeof (asection *));
+ xrealloc (sec_list, list_size * sizeof (asection *));
}
sec_list[sec_count++] = sec;
/* bfd_elf32_discard_info just plays with debugging sections,
ie. doesn't affect any code, so we can delay resizing the
sections. */
- if (bfd_elf_discard_info (link_info.output_bfd, & link_info))
+ ret = bfd_elf_discard_info (link_info.output_bfd, & link_info);
+ if (ret < 0)
+ {
+ einfo (_("%X%P: .eh_frame/.stab edit: %E\n"));
+ return;
+ }
+ else if (ret > 0)
layout_changed = 1;
gld${EMULATION_NAME}_map_segments (layout_changed);
'
PARSE_AND_LIST_OPTIONS='
- fprintf (file, _(" --dsbt-index <index>\n"));
- fprintf (file, _("\t\t\tUse this as the DSBT index for the output object\n"));
- fprintf (file, _(" --dsbt-size <index>\n"));
- fprintf (file, _("\t\t\tUse this as the number of entries in the DSBT table\n"));
- fprintf (file, _(" --no-merge-exidx-entries Disable merging exidx entries\n"));
+ fprintf (file, _(" --dsbt-index <index> Use this as the DSBT index for the output object\n"));
+ fprintf (file, _(" --dsbt-size <index> Use this as the number of entries in the DSBT table\n"));
+ fprintf (file, _(" --no-merge-exidx-entries\n"));
+ fprintf (file, _(" Disable merging exidx entries\n"));
'
PARSE_AND_LIST_ARGS_CASES='
if (*end == 0
&& params.dsbt_index >= 0 && params.dsbt_index < 0x7fff)
break;
- einfo (_("%P%F: invalid --dsbt-index %s\n"), optarg);
+ einfo (_("%F%P: invalid --dsbt-index %s\n"), optarg);
}
break;
case OPTION_DSBT_SIZE:
if (*end == 0
&& params.dsbt_size >= 0 && params.dsbt_size < 0x7fff)
break;
- einfo (_("%P%F: invalid --dsbt-size %s\n"), optarg);
+ einfo (_("%F%P: invalid --dsbt-size %s\n"), optarg);
}
break;
case OPTION_NO_MERGE_EXIDX_ENTRIES: