diff options
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 6 | ||||
-rw-r--r-- | ld/ld.texinfo | 6 |
3 files changed, 19 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 7c74f47..ef8befb 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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 diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 19d98fe..7f97ab7 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -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")); diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 182f060..cfbe26e 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -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. |