Remove @PLT from "call _dl_init@PLT" in _dl_start_user
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 21 Dec 2014 13:27:31 +0000 (05:27 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 21 Dec 2014 13:27:31 +0000 (05:27 -0800)
_dl_start_user in ld.so calls the local function _dl_init.  There is no
need to go through PLT.

* sysdeps/i386/dl-machine.h (_dl_start_user): Remove @PLT
from "call _dl_init@PLT".
* sysdeps/x86_64/dl-machine.h (_dl_start_user): Likewise.
from "call _dl_init@PLT".

ChangeLog
sysdeps/i386/dl-machine.h
sysdeps/x86_64/dl-machine.h

index eaaff71555b93272607e66ce5ff2ce55ece5a8d3..de45fe45bd10db0ceaef531754912e4f238b46af 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-12-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/dl-machine.h (_dl_start_user): Remove @PLT
+       from "call _dl_init@PLT".
+       * sysdeps/x86_64/dl-machine.h (_dl_start_user): Likewise.
+       from "call _dl_init@PLT".
+
 2014-12-21  Anders Kaseorg  <andersk@mit.edu>
 
        * manual/search.texi: (Array Sort Function): Clarify stable sorting
index c10b1e56370e6a45ef93aef3bfd318295ff83593..94a6d38377a4f51380267ddbc17a5f0da4b18ac4 100644 (file)
@@ -221,7 +221,7 @@ _dl_start_user:\n\
        # Clear %ebp, so that even constructors have terminated backchain.\n\
        xorl %ebp, %ebp\n\
        # Call the function to run the initializers.\n\
-       call _dl_init@PLT\n\
+       call _dl_init\n\
        # Pass our finalizer function to the user in %edx, as per ELF ABI.\n\
        leal _dl_fini@GOTOFF(%ebx), %edx\n\
        # Restore %esp _start expects.\n\
index 8316f13a06b58d97c60cfdff2ebdc365b521cd2e..5e1bb07b90a768530048c15eb376ec1ddc059e1b 100644 (file)
@@ -156,7 +156,7 @@ _dl_start_user:\n\
        # Clear %rbp to mark outermost frame obviously even for constructors.\n\
        xorl %ebp, %ebp\n\
        # Call the function to run the initializers.\n\
-       call _dl_init@PLT\n\
+       call _dl_init\n\
        # Pass our finalizer function to the user in %rdx, as per ELF ABI.\n\
        leaq _dl_fini(%rip), %rdx\n\
        # And make sure %rsp points to argc stored on the stack.\n\