OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [emultempl/] [ppc64elf.em] - Diff between revs 157 and 163

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 157 Rev 163
Line 92... Line 92...
  if (stub_file->the_bfd == NULL
  if (stub_file->the_bfd == NULL
      || !bfd_set_arch_mach (stub_file->the_bfd,
      || !bfd_set_arch_mach (stub_file->the_bfd,
                             bfd_get_arch (link_info.output_bfd),
                             bfd_get_arch (link_info.output_bfd),
                             bfd_get_mach (link_info.output_bfd)))
                             bfd_get_mach (link_info.output_bfd)))
    {
    {
      einfo ("%F%P: can not create BFD %E\n");
      einfo ("%F%P: can not create BFD: %E\n");
      return;
      return;
    }
    }
 
 
  stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
  stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
  ldlang_add_file (stub_file);
  ldlang_add_file (stub_file);
Line 247... Line 247...
{
{
  if (stub_file != NULL)
  if (stub_file != NULL)
    {
    {
      if (!no_opd_opt
      if (!no_opd_opt
          && !ppc64_elf_edit_opd (&link_info, non_overlapping_opd))
          && !ppc64_elf_edit_opd (&link_info, non_overlapping_opd))
        einfo ("%X%P: can not edit %s %E\n", "opd");
        einfo ("%X%P: can not edit %s: %E\n", "opd");
 
 
      if (ppc64_elf_tls_setup (&link_info, no_tls_get_addr_opt, &no_multi_toc)
      if (ppc64_elf_tls_setup (&link_info, no_tls_get_addr_opt, &no_multi_toc)
          && !no_tls_opt)
          && !no_tls_opt)
        {
        {
          /* Size the sections.  This is premature, but we want to know the
          /* Size the sections.  This is premature, but we want to know the
Line 266... Line 266...
          && !link_info.relocatable)
          && !link_info.relocatable)
        {
        {
          prelim_size_sections ();
          prelim_size_sections ();
 
 
          if (!ppc64_elf_edit_toc (&link_info))
          if (!ppc64_elf_edit_toc (&link_info))
            einfo ("%X%P: can not edit %s %E\n", "toc");
            einfo ("%X%P: can not edit %s: %E\n", "toc");
        }
        }
 
 
      if (!no_toc_sort)
      if (!no_toc_sort)
        {
        {
          lang_output_section_statement_type *toc_os;
          lang_output_section_statement_type *toc_os;
Line 376... Line 376...
 
 
  flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
  flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_CODE
           | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
           | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_KEEP);
  stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
  stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd,
                                                 stub_sec_name, flags);
                                                 stub_sec_name, flags);
  if (stub_sec == NULL)
  if (stub_sec == NULL
 
      || !bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 5))
    goto err_ret;
    goto err_ret;
 
 
  output_section = input_section->output_section;
  output_section = input_section->output_section;
  secname = bfd_get_section_name (output_section->owner, output_section);
  secname = bfd_get_section_name (output_section->owner, output_section);
  os = lang_output_section_find (secname);
  os = lang_output_section_find (secname);
Line 527... Line 528...
  /* e_entry on PowerPC64 points to the function descriptor for
  /* e_entry on PowerPC64 points to the function descriptor for
     _start.  If _start is missing, default to the first function
     _start.  If _start is missing, default to the first function
     descriptor in the .opd section.  */
     descriptor in the .opd section.  */
  entry_section = ".opd";
  entry_section = ".opd";
 
 
  if (link_info.relocatable)
 
    {
 
      asection *toc = bfd_get_section_by_name (link_info.output_bfd, ".toc");
 
      if (toc != NULL
 
          && bfd_section_size (link_info.output_bfd, toc) > 0x10000)
 
        einfo ("%X%P: TOC section size exceeds 64k\n");
 
    }
 
 
 
  if (stub_added)
  if (stub_added)
    {
    {
      char *msg = NULL;
      char *msg = NULL;
      char *line, *endline;
      char *line, *endline;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.