X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=ld%2Femultempl%2Fm68kelf.em;h=e909f755da73937515a6d4a5bf3c5b8f3111b76c;hb=c578f16ef18fde35d5887909d5faaf0bd0118e9d;hp=c5cfe77b2e1bfa019498c23ecc9e24017701a9e0;hpb=c72f2fb2bb6a3e1850b081dbfce4040970fae8e6;p=binutils-gdb.git diff --git a/ld/emultempl/m68kelf.em b/ld/emultempl/m68kelf.em index c5cfe77b2e1..e909f755da7 100644 --- a/ld/emultempl/m68kelf.em +++ b/ld/emultempl/m68kelf.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright (C) 2000-2014 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # Written by Michael Sokolov , based on armelf.em # # This file is part of the GNU Binutils. @@ -20,9 +20,9 @@ # MA 02110-1301, USA. -# This file is sourced from elf32.em, and defines some extra routines for m68k +# This file is sourced from elf.em, and defines some extra routines for m68k # embedded systems using ELF and for some other systems using m68k ELF. While -# it is sourced from elf32.em for all m68k ELF configurations, here we include +# it is sourced from elf.em for all m68k ELF configurations, here we include # only the features we want depending on the configuration. case ${target} in @@ -45,6 +45,8 @@ esac fragment <reloc_count * 12)) - einfo ("%F%B: can not create .emreloc section: %E\n"); + || !bfd_set_section_alignment (relsec, 2) + || !bfd_set_section_size (relsec, datasec->reloc_count * 12)) + einfo (_("%F%P: %pB: can not create .emreloc section: %E\n")); } /* Double check that all other data sections are empty, as is @@ -127,11 +124,11 @@ m68k_elf_after_open (void) static void check_sections (bfd *abfd, asection *sec, void *datasec) { - if ((bfd_get_section_flags (abfd, sec) & SEC_DATA) + if ((bfd_section_flags (sec) & SEC_DATA) && sec != datasec && sec->reloc_count != 0) - einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n", - abfd, bfd_get_section_name (abfd, sec)); + einfo (_("%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"), + abfd, bfd_section_name (sec)); } #endif /* SUPPORT_EMBEDDED_RELOCS */ @@ -147,7 +144,7 @@ m68k_elf_after_allocation (void) #ifdef SUPPORT_EMBEDDED_RELOCS if (command_line.embedded_relocs - && (! link_info.relocatable)) + && (!bfd_link_relocatable (&link_info))) { bfd *abfd; @@ -166,31 +163,19 @@ m68k_elf_after_allocation (void) relsec = bfd_get_section_by_name (abfd, ".emreloc"); ASSERT (relsec != NULL); - if (bfd_get_flavour (abfd) == bfd_target_coff_flavour) - { - if (! bfd_m68k_coff_create_embedded_relocs (abfd, &link_info, - datasec, relsec, - &errmsg)) - { - if (errmsg == NULL) - einfo ("%B%X: can not create runtime reloc information: %E\n", - abfd); - else - einfo ("%X%B: can not create runtime reloc information: %s\n", - abfd, errmsg); - } - } - else if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) { if (! bfd_m68k_elf32_create_embedded_relocs (abfd, &link_info, datasec, relsec, &errmsg)) { if (errmsg == NULL) - einfo ("%B%X: can not create runtime reloc information: %E\n", + einfo (_("%X%P: %pB: can not create " + "runtime reloc information: %E\n"), abfd); else - einfo ("%X%B: can not create runtime reloc information: %s\n", + einfo (_("%X%P: %pB: can not create " + "runtime reloc information: %s\n"), abfd, errmsg); } } @@ -230,15 +215,15 @@ PARSE_AND_LIST_OPTIONS=' PARSE_AND_LIST_ARGS_CASES=' case OPTION_GOT: if (strcmp (optarg, "target") == 0) - got_handling = GOT_HANDLING_TARGET_DEFAULT; + got_handling = GOT_HANDLING_TARGET_DEFAULT; else if (strcmp (optarg, "single") == 0) - got_handling = 0; + got_handling = 0; else if (strcmp (optarg, "negative") == 0) - got_handling = 1; + got_handling = 1; else if (strcmp (optarg, "multigot") == 0) - got_handling = 2; + got_handling = 2; else - einfo (_("Unrecognized --got argument '\''%s'\''.\n"), optarg); + einfo (_("%P: unrecognized --got argument '\''%s'\''\n"), optarg); break; '