Rename remaining members of buildsym_compunit to start with "m_"
[deliverable/binutils-gdb.git] / ld / emultempl / hppaelf.em
index 3ce5d54af7f3c657a79b55935fe815d95bcf504a..3843a6710ad44bed8324d1f07e40e06ca398c357 100644 (file)
@@ -1,6 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-#   Copyright 1991, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
-#   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -51,16 +50,16 @@ static bfd_signed_vma group_size = 1;
 static void
 hppaelf_after_parse (void)
 {
-  if (link_info.relocatable)
+  if (bfd_link_relocatable (&link_info))
     lang_add_unique (".text");
 
   /* Enable this once we split millicode stuff from libgcc:
      lang_add_input_file ("milli",
-                         lang_input_file_is_l_enum,
+                         lang_input_file_is_l_enum,
                          NULL);
   */
 
-  after_parse_default ();
+  gld${EMULATION_NAME}_after_parse ();
 }
 
 /* This is called before the input files are opened.  We create a new
@@ -70,7 +69,8 @@ static void
 hppaelf_create_output_section_statements (void)
 {
   if (!(bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
-       && elf_object_id (link_info.output_bfd) == HPPA_ELF_TDATA))
+       && (elf_object_id (link_info.output_bfd) == HPPA32_ELF_DATA
+           || elf_object_id (link_info.output_bfd) == HPPA64_ELF_DATA)))
     return;
 
   stub_file = lang_add_input_file ("linker stubs",
@@ -82,12 +82,13 @@ hppaelf_create_output_section_statements (void)
                              bfd_get_arch (link_info.output_bfd),
                              bfd_get_mach (link_info.output_bfd)))
     {
-      einfo ("%X%P: can not create BFD %E\n");
+      einfo (_("%F%P: can not create BFD: %E\n"));
       return;
     }
 
   stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
   ldlang_add_file (stub_file);
+  elf32_hppa_init_stub_bfd (stub_file->the_bfd, &link_info);
 }
 
 
@@ -177,7 +178,6 @@ hppaelf_add_stub_section (const char *stub_sec_name, asection *input_section)
   asection *stub_sec;
   flagword flags;
   asection *output_section;
-  const char *secname;
   lang_output_section_statement_type *os;
   struct hook_stub_info info;
 
@@ -189,12 +189,11 @@ hppaelf_add_stub_section (const char *stub_sec_name, asection *input_section)
     goto err_ret;
 
   output_section = input_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);
 
   info.input_section = input_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;
@@ -203,7 +202,7 @@ hppaelf_add_stub_section (const char *stub_sec_name, asection *input_section)
     return stub_sec;
 
  err_ret:
-  einfo ("%X%P: can not make stub section: %E\n");
+  einfo (_("%X%P: can not make stub section: %E\n"));
   return NULL;
 }
 
@@ -228,7 +227,7 @@ build_section_lists (lang_statement_union_type *statement)
     {
       asection *i = statement->input_section.section;
 
-      if (!((lang_input_statement_type *) i->owner->usrdata)->just_syms_flag
+      if (i->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
          && (i->flags & SEC_EXCLUDE) == 0
          && i->output_section != NULL
          && i->output_section->owner == link_info.output_bfd)
@@ -244,25 +243,31 @@ build_section_lists (lang_statement_union_type *statement)
 static void
 gld${EMULATION_NAME}_after_allocation (void)
 {
+  int ret;
+
   /* bfd_elf_discard_info just plays with data and debugging sections,
      ie. doesn't affect code size, so we can delay resizing the
      sections.  It's likely we'll resize everything in the process of
      adding stubs.  */
-  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)
     need_laying_out = 1;
 
   /* If generating a relocatable output file, then we don't
      have to examine the relocs.  */
-  if (stub_file != NULL && !link_info.relocatable)
+  if (stub_file != NULL && !bfd_link_relocatable (&link_info))
     {
-      int ret = elf32_hppa_setup_section_lists (link_info.output_bfd,
-                                               &link_info);
-
+      ret = elf32_hppa_setup_section_lists (link_info.output_bfd, &link_info);
       if (ret != 0)
        {
          if (ret < 0)
            {
-             einfo ("%X%P: can not size stub section: %E\n");
+             einfo (_("%X%P: can not size stub section: %E\n"));
              return;
            }
 
@@ -277,7 +282,7 @@ gld${EMULATION_NAME}_after_allocation (void)
                                       &hppaelf_add_stub_section,
                                       &hppaelf_layout_sections_again))
            {
-             einfo ("%X%P: can not size stub section: %E\n");
+             einfo (_("%X%P: can not size stub section: %E\n"));
              return;
            }
        }
@@ -286,12 +291,12 @@ gld${EMULATION_NAME}_after_allocation (void)
   if (need_laying_out != -1)
     gld${EMULATION_NAME}_map_segments (need_laying_out);
 
-  if (! link_info.relocatable)
+  if (!bfd_link_relocatable (&link_info))
     {
       /* Set the global data pointer.  */
       if (! elf32_hppa_set_gp (link_info.output_bfd, &link_info))
        {
-         einfo ("%X%P: can not set gp\n");
+         einfo (_("%X%P: can not set gp\n"));
          return;
        }
 
@@ -299,7 +304,7 @@ gld${EMULATION_NAME}_after_allocation (void)
       if (stub_file != NULL && stub_file->the_bfd->sections != NULL)
        {
          if (! elf32_hppa_build_stubs (&link_info))
-           einfo ("%X%P: can not build stubs: %E\n");
+           einfo (_("%X%P: can not build stubs: %E\n"));
        }
     }
 }
@@ -365,9 +370,9 @@ PARSE_AND_LIST_ARGS_CASES='
     case OPTION_STUBGROUP_SIZE:
       {
        const char *end;
-        group_size = bfd_scan_vma (optarg, &end, 0);
-        if (*end)
-         einfo (_("%P%F: invalid number `%s'\''\n"), optarg);
+       group_size = bfd_scan_vma (optarg, &end, 0);
+       if (*end)
+         einfo (_("%F%P: invalid number `%s'\''\n"), optarg);
       }
       break;
 '
This page took 0.025612 seconds and 4 git commands to generate.