# This shell script emits a C file. -*- C -*-
-# Copyright 1991, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, 2007,
-# 2008 Free Software Foundation, Inc.
+# Copyright (C) 1991-2016 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
/* If generating a relocatable output file, then we don't
have to generate the trampolines. */
- if (link_info.relocatable)
+ if (bfd_link_relocatable (&link_info))
return;
ret = elf32_m68hc11_setup_section_lists (link_info.output_bfd, &link_info);
case lang_input_section_enum:
if (l->input_section.section == info->input_section
- || strcmp (bfd_get_section_name (output_section,
+ || strcmp (bfd_get_section_name (l->input_section.section->owner,
l->input_section.section),
- bfd_get_section_name (output_section,
+ bfd_get_section_name (info->input_section->owner,
info->input_section)) == 0)
{
/* We've found our section. Insert the stub immediately
asection *stub_sec;
flagword flags;
asection *output_section;
- const char *secname;
lang_output_section_statement_type *os;
struct hook_stub_info info;
- stub_sec = bfd_make_section_anyway (stub_file->the_bfd, stub_sec_name);
- if (stub_sec == NULL)
- goto err_ret;
-
flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
| SEC_HAS_CONTENTS | SEC_RELOC | SEC_IN_MEMORY | SEC_KEEP);
- if (!bfd_set_section_flags (stub_file->the_bfd, stub_sec, flags))
+ stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
+ stub_sec_name, flags);
+ if (stub_sec == NULL)
goto err_ret;
output_section = tramp_section->output_section;
- secname = bfd_get_section_name (output_section->owner, output_section);
- os = lang_output_section_find (secname);
+ os = lang_output_section_get (output_section);
/* Try to put the new section at the same place as an existing
.tramp section. Such .tramp section exists in most cases and
at the correct place. */
info.input_section = tramp_section;
lang_list_init (&info.add);
- lang_add_section (&info.add, stub_sec, os);
+ lang_add_section (&info.add, stub_sec, NULL, os);
if (info.add.head == NULL)
goto err_ret;
return NULL;
}
-/* Final emulation specific call. For the 68HC12 we use this opportunity
- to build linker stubs. */
+/* For the 68HC12 we use this opportunity to build linker stubs. */
static void
-m68hc11elf_finish (void)
+m68hc11elf_after_allocation (void)
{
/* Now build the linker stubs. */
if (stub_file->the_bfd->sections != NULL)
einfo ("%X%P: can not build stubs: %E\n");
}
- gld${EMULATION_NAME}_finish ();
+ gld${EMULATION_NAME}_after_allocation ();
}
# Put these extra m68hc11elf routines in ld_${EMULATION_NAME}_emulation
#
LDEMUL_BEFORE_ALLOCATION=m68hc11_elf_${EMULATION_NAME}_before_allocation
-LDEMUL_FINISH=m68hc11elf_finish
+LDEMUL_AFTER_ALLOCATION=m68hc11elf_after_allocation
LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=m68hc11elf_create_output_section_statements