X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femultempl%2Fm68kcoff.em;h=a1383be92d7c3af787f57db7fba76919a933b9ec;hb=559192d89d743834951fc386530c6bc7f89b358d;hp=765447a258b76520794d8632e9815ba116358fad;hpb=3bcf55573d377355c73846cc0b819c7d878d8e19;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emultempl/m68kcoff.em b/ld/emultempl/m68kcoff.em index 765447a258..a1383be92d 100644 --- a/ld/emultempl/m68kcoff.em +++ b/ld/emultempl/m68kcoff.em @@ -1,53 +1,52 @@ # This shell script emits a C file. -*- C -*- # It does some substitutions. -cat >e${EMULATION_NAME}.c <, based on generic.em by Steve Chamberlain , embedded relocs code based on - mipsecoff.em by Ian Lance Taylor . + mipsecoff.em by Ian Lance Taylor (now removed). -This file is part of GLD, the Gnu Linker. + This file is part of the GNU Binutils. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ #define TARGET_IS_${EMULATION_NAME} -#include "bfd.h" #include "sysdep.h" +#include "bfd.h" #include "bfdlink.h" #include "ld.h" #include "ldmain.h" +#include "ldexp.h" +#include "ldlang.h" #include "ldfile.h" #include "ldemul.h" #include "ldmisc.h" -static void gld${EMULATION_NAME}_before_parse PARAMS ((void)); -static void gld${EMULATION_NAME}_after_open PARAMS ((void)); -static void check_sections PARAMS ((bfd *, asection *, PTR)); -static void gld${EMULATION_NAME}_after_allocation PARAMS ((void)); -static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile)); +static void check_sections (bfd *, asection *, void *); static void -gld${EMULATION_NAME}_before_parse () +gld${EMULATION_NAME}_before_parse (void) { #ifndef TARGET_ /* I.e., if not generic. */ - ldfile_set_output_arch ("`echo ${ARCH}`"); + ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown); #endif /* not TARGET_ */ } @@ -58,22 +57,25 @@ gld${EMULATION_NAME}_before_parse () time. */ static void -gld${EMULATION_NAME}_after_open () +gld${EMULATION_NAME}_after_open (void) { bfd *abfd; + after_open_default (); + if (! command_line.embedded_relocs - || link_info.relocateable) + || bfd_link_relocatable (&link_info)) return; - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec; /* As first-order business, make sure that each input BFD is COFF. It better be, as we are directly calling a COFF backend function. */ if (bfd_get_flavour (abfd) != bfd_target_coff_flavour) - einfo ("%F%B: all input objects must be COFF for --embedded-relocs\n"); + einfo (_("%F%B: all input objects must be COFF " + "for --embedded-relocs\n")); datasec = bfd_get_section_by_name (abfd, ".data"); @@ -88,22 +90,21 @@ gld${EMULATION_NAME}_after_open () { asection *relsec; - relsec = bfd_make_section (abfd, ".emreloc"); + relsec = bfd_make_section_with_flags (abfd, ".emreloc", + (SEC_ALLOC + | SEC_LOAD + | SEC_HAS_CONTENTS + | SEC_IN_MEMORY)); if (relsec == NULL - || ! bfd_set_section_flags (abfd, relsec, - (SEC_ALLOC - | SEC_LOAD - | SEC_HAS_CONTENTS - | SEC_IN_MEMORY)) || ! bfd_set_section_alignment (abfd, relsec, 2) || ! bfd_set_section_size (abfd, relsec, datasec->reloc_count * 12)) - einfo ("%F%B: can not create .emreloc section: %E\n"); + einfo (_("%F%B: can not create .emreloc section: %E\n")); } /* Double check that all other data sections are empty, as is required for embedded PIC code. */ - bfd_map_over_sections (abfd, check_sections, (PTR) datasec); + bfd_map_over_sections (abfd, check_sections, datasec); } } @@ -111,15 +112,12 @@ gld${EMULATION_NAME}_after_open () relocs. This is called via bfd_map_over_sections. */ static void -check_sections (abfd, sec, datasec) - bfd *abfd; - asection *sec; - PTR datasec; +check_sections (bfd *abfd, asection *sec, void *datasec) { if ((bfd_get_section_flags (abfd, sec) & SEC_DATA) - && sec != (asection *) datasec + && sec != datasec && sec->reloc_count != 0) - einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n", + einfo (_("%B%X: section %s has relocs; can not use --embedded-relocs\n"), abfd, bfd_get_section_name (abfd, sec)); } @@ -128,15 +126,15 @@ check_sections (abfd, sec, datasec) BFD backend routine to do the work. */ static void -gld${EMULATION_NAME}_after_allocation () +gld${EMULATION_NAME}_after_allocation (void) { bfd *abfd; if (! command_line.embedded_relocs - || link_info.relocateable) + || bfd_link_relocatable (&link_info)) return; - for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link_next) + for (abfd = link_info.input_bfds; abfd != NULL; abfd = abfd->link.next) { asection *datasec, *relsec; char *errmsg; @@ -154,36 +152,35 @@ gld${EMULATION_NAME}_after_allocation () &errmsg)) { if (errmsg == NULL) - einfo ("%B%X: can not create runtime reloc information: %E\n", + einfo (_("%B%X: can not create runtime reloc information: %E\n"), abfd); else - einfo ("%X%B: can not create runtime reloc information: %s\n", + einfo (_("%X%B: can not create runtime reloc information: %s\n"), abfd, errmsg); } } } static char * -gld${EMULATION_NAME}_get_script(isfile) - int *isfile; +gld${EMULATION_NAME}_get_script (int *isfile) EOF -if test -n "$COMPILE_IN" +if test x"$COMPILE_IN" = xyes then # Scripts compiled in. # sed commands to quote an ld script as a C string. sc="-f stringify.sed" -cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +echo ' ; else if (bfd_link_relocatable (&link_info)) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -196,13 +193,13 @@ echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. -cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <