[x86] Resolve non-PIC undefweak symbols in executable
[deliverable/binutils-gdb.git] / ld / emultempl / sunos.em
index d7cd3e8352be383b391520ea6b145239354dfa38..8be8669a3b8560a90d3f912d8d8d59da188f3927 100644 (file)
@@ -9,9 +9,7 @@ fragment <<EOF
 /* This file is is generated by a shell script.  DO NOT EDIT! */
 
 /* SunOS emulation code for ${EMULATION_NAME}
-   Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1991-2016 Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>
    SunOS shared library support by Ian Lance Taylor <ian@cygnus.com>
 
@@ -370,7 +368,7 @@ gld${EMULATION_NAME}_after_open (void)
   after_open_default ();
 
   /* We only need to worry about this when doing a final link.  */
-  if (link_info.relocatable || link_info.shared)
+  if (bfd_link_relocatable (&link_info) || bfd_link_pic (&link_info))
     return;
 
   /* Get the list of files which appear in ld_need entries in dynamic
@@ -429,7 +427,7 @@ gld${EMULATION_NAME}_after_open (void)
            {
              /* We've found the needed dynamic object.  */
              if (! bfd_link_add_symbols (abfd, &link_info))
-               einfo ("%F%B: could not read symbols: %E\n", abfd);
+               einfo ("%F%B: error adding symbols: %E\n", abfd);
            }
          else
            {
@@ -576,7 +574,7 @@ gld${EMULATION_NAME}_try_needed (const char *dir, const char *name)
 
   /* Add this file into the symbol table.  */
   if (! bfd_link_add_symbols (abfd, &link_info))
-    einfo ("%F%B: could not read symbols: %E\n", abfd);
+    einfo ("%F%B: error adding symbols: %E\n", abfd);
 
   return TRUE;
 }
@@ -671,7 +669,9 @@ gld${EMULATION_NAME}_before_allocation (void)
   /* The SunOS native linker creates a shared library whenever there
      are any undefined symbols in a link, unless -e is used.  This is
      pretty weird, but we are compatible.  */
-  if (! link_info.shared && ! link_info.relocatable && ! entry_from_cmdline)
+  if (! bfd_link_pic (&link_info)
+      && !bfd_link_relocatable (&link_info)
+      && ! entry_from_cmdline)
     {
       struct bfd_link_hash_entry *h;
 
@@ -688,14 +688,14 @@ gld${EMULATION_NAME}_before_allocation (void)
              lang_for_each_statement (gld${EMULATION_NAME}_find_assignment);
              if (! found_assign)
                {
-                 link_info.shared = TRUE;
+                 link_info.type = type_dll;
                  break;
                }
            }
        }
     }
 
-  if (link_info.shared)
+  if (bfd_link_pic (&link_info))
     {
       lang_output_section_statement_type *os;
 
@@ -712,7 +712,7 @@ gld${EMULATION_NAME}_before_allocation (void)
      one.  We need to create the symbol before calling
      size_dynamic_sections, although we can't set the value until
      afterward.  */
-  if (! link_info.relocatable)
+  if (!bfd_link_relocatable (&link_info))
     {
       hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", TRUE, FALSE,
                                   FALSE);
@@ -805,7 +805,7 @@ gld${EMULATION_NAME}_before_allocation (void)
   /* We must assign a value to __DYNAMIC.  It should be zero if we are
      not doing a dynamic link, or the start of the .dynamic section if
      we are doing one.  */
-  if (! link_info.relocatable)
+  if (!bfd_link_relocatable (&link_info))
     {
       hdyn->type = bfd_link_hash_defined;
       hdyn->u.def.value = 0;
@@ -960,7 +960,7 @@ static char *
 gld${EMULATION_NAME}_get_script (int *isfile)
 EOF
 
-if test -n "$COMPILE_IN"
+if test x"$COMPILE_IN" = xyes
 then
 # Scripts compiled in.
 
@@ -971,11 +971,11 @@ fragment <<EOF
 {
   *isfile = 0;
 
-  if (link_info.relocatable && config.build_constructors)
+  if (bfd_link_relocatable (&link_info) && config.build_constructors)
     return
 EOF
 sed $sc ldscripts/${EMULATION_NAME}.xu                     >> e${EMULATION_NAME}.c
-echo '  ; else if (link_info.relocatable) 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
@@ -992,9 +992,9 @@ fragment <<EOF
 {
   *isfile = 1;
 
-  if (link_info.relocatable && config.build_constructors)
+  if (bfd_link_relocatable (&link_info) && config.build_constructors)
     return "ldscripts/${EMULATION_NAME}.xu";
-  else if (link_info.relocatable)
+  else if (bfd_link_relocatable (&link_info))
     return "ldscripts/${EMULATION_NAME}.xr";
   else if (!config.text_read_only)
     return "ldscripts/${EMULATION_NAME}.xbn";
@@ -1035,6 +1035,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
   NULL,        /* list options */
   NULL,        /* recognized file */
   NULL,        /* find_potential_libraries */
-  NULL /* new_vers_pattern */
+  NULL,        /* new_vers_pattern */
+  NULL /* extra_map_file_text */
 };
 EOF
This page took 0.025718 seconds and 4 git commands to generate.