diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-05-24 08:44:10 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-05-24 08:44:23 -0700 |
commit | 6901def689b5c77465d34f07822989ec67e80c1e (patch) | |
tree | 2efde72294545c6b0129133d43d1f7335182fa61 /configure | |
parent | 4c011268960c6f24650672597deed756f21ad363 (diff) | |
download | glibc-6901def689b5c77465d34f07822989ec67e80c1e.tar.gz glibc-6901def689b5c77465d34f07822989ec67e80c1e.tar.xz glibc-6901def689b5c77465d34f07822989ec67e80c1e.zip |
Avoid an extra branch to PLT for -z now
When --enable-bind-now is used to configure glibc build, we can avoid an extra branch to the PLT entry by using indirect branch via the GOT slot instead, which is similar to the first instructuon in the PLT entry. Changes in the shared library sizes in text sections: Shared library Before (bytes) After (bytes) libm.so 1060813 1060797 libmvec.so 160881 160805 libpthread.so 94992 94984 librt.so 25064 25048 * config.h.in (BIND_NOW): New. * configure.ac (BIND_NOW): New. Defined for --enable-bind-now. * configure: Regenerated. * sysdeps/x86_64/sysdep.h (JUMPTARGET)[BIND_NOW]: Defined to indirect branch via the GOT slot.
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/configure b/configure index 8fe59377ea..19a4829466 100755 --- a/configure +++ b/configure @@ -3416,6 +3416,10 @@ else fi +if test "x$bindnow" = xyes; then + $as_echo "#define BIND_NOW 1" >>confdefs.h + +fi # Check whether --enable-static-nss was given. if test "${enable_static_nss+set}" = set; then : |