* ld.texinfo: Document new -z lazy option.
authorAlan Modra <amodra@gmail.com>
Wed, 14 Jun 2006 02:43:58 +0000 (02:43 +0000)
committerAlan Modra <amodra@gmail.com>
Wed, 14 Jun 2006 02:43:58 +0000 (02:43 +0000)
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle
new option.
(gld${EMULATION_NAME}_list_options): Update help text.

ld/ChangeLog
ld/emultempl/elf32.em
ld/ld.texinfo

index 7c74f47..ef8befb 100644 (file)
@@ -1,3 +1,10 @@
+2006-06-14  Kevin F. Quinn  <kevquinn@gentoo.org>
+
+       * ld.texinfo: Document new -z lazy option.
+       * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle
+       new option.
+       (gld${EMULATION_NAME}_list_options): Update help text.
+
 2006-06-12  Fred Fish  <fnf@specifix.com>
 
        * emulparams/elf32bmip.sh (OTHER_SECTIONS): Keep the
index 19d98fe..7f97ab7 100644 (file)
@@ -1826,6 +1826,11 @@ cat >>e${EMULATION_NAME}.c <<EOF
          link_info.flags |= (bfd_vma) DF_BIND_NOW;
          link_info.flags_1 |= (bfd_vma) DF_1_NOW;
        }
+      else if (strcmp (optarg, "lazy") == 0)
+       {
+         link_info.flags &= ~(bfd_vma) DF_BIND_NOW;
+         link_info.flags_1 &= ~(bfd_vma) DF_1_NOW;
+       }
       else if (strcmp (optarg, "origin") == 0)
        {
          link_info.flags |= (bfd_vma) DF_ORIGIN;
@@ -1909,6 +1914,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
   fprintf (file, _("  -z execstack\t\tMark executable as requiring executable stack\n"));
   fprintf (file, _("  -z initfirst\t\tMark DSO to be initialized first at runtime\n"));
   fprintf (file, _("  -z interpose\t\tMark object to interpose all DSOs but executable\n"));
+  fprintf (file, _("  -z lazy\t\tMark object lazy runtime binding (default)\n"));
   fprintf (file, _("  -z loadfltr\t\tMark object requiring immediate process\n"));
   fprintf (file, _("  -z muldefs\t\tAllow multiple definitions\n"));
   fprintf (file, _("  -z nocombreloc\tDon't merge dynamic relocs into one section\n"));
index 182f060..cfbe26e 100644 (file)
@@ -962,6 +962,12 @@ objects.
 Marks the object that its symbol table interposes before all symbols
 but the primary executable.
 
+@item lazy
+When generating an executable or shared library, mark it to tell the
+dynamic linker to defer function call resolution to the point when
+the function is called (lazy binding), rather than at load time.
+Lazy binding is the default.
+
 @item loadfltr
 Marks  the object that its filters be processed immediately at
 runtime.