glibc:hjl/plt/master

Last commit made on 2015-08-25
Get this branch:
git clone -b hjl/plt/master https://git.launchpad.net/glibc

Branch merges

Branch information

Name:
hjl/plt/master
Repository:
lp:glibc

Recent commits

e50bd85... by "H.J. Lu" <email address hidden>

Don't run tst-getpid2 with LD_BIND_NOW=1

Since _dl_x86_64_save_sse and _dl_x86_64_restore_sse are removed now,
we don't need to run tst-getpid2 with LD_BIND_NOW=1.

 * sysdeps/unix/sysv/linux/Makefile (tst-getpid2-ENV): Removed.

310872d... by "H.J. Lu" <email address hidden>

Use SSE optimized strcmp in x86-64 ld.so

Since ld.so preserves vector registers now, we can SSE optimized strcmp
in x86-64 ld.so.

 * sysdeps/x86_64/strcmp.S: Remove "#if !IS_IN (libc)".

8ec59e9... by "H.J. Lu" <email address hidden>

Remove x86-64 rtld-xxx.c and rtld-xxx.S

Since ld.so preserves vector registers now, we can use the regular,
non-ifunc string and memory functions in ld.so.

 * sysdeps/x86_64/rtld-memcmp.c: Removed.
 * sysdeps/x86_64/rtld-memset.S: Likewise.
 * sysdeps/x86_64/rtld-strchr.S: Likewise.
 * sysdeps/x86_64/rtld-strlen.S: Likewise.
 * sysdeps/x86_64/multiarch/rtld-memcmp.c: Likewise.
 * sysdeps/x86_64/multiarch/rtld-memset.S: Likewise.

1dc3b5e... by "H.J. Lu" <email address hidden>

Replace %xmm8 with %xmm0

Since ld.so preserves vector registers now, we can use %xmm0 to avoid
the REX prefix.

 * sysdeps/x86_64/memset.S: Replace %xmm8 with %xmm0.

7e27e06... by "H.J. Lu" <email address hidden>

Replace %xmm[8-12] with %xmm[0-4]

Since ld.so preserves vector registers now, we can use %xmm[0-4] to
avoid the REX prefix.

 * sysdeps/x86_64/strlen.S: Replace %xmm[8-12] with %xmm[0-4].

4629326... by "H.J. Lu" <email address hidden>

Don't disable SSE in x86-64 ld.so

Since ld.so preserves vector registers now, we can use SSE in ld.so.

 * sysdeps/i386/Makefile [$(subdir) == elf] (CFLAGS-.os): Add
 -mno-sse -mno-mmx for $(all-rtld-routines).
 [$(subdir) == elf] (tests-special): Add
 $(objpfx)tst-ld-sse-use.out.
 [$(subdir) == elf] ($(objpfx)tst-ld-sse-use.out): New rule.
 * sysdeps/x86/Makefile [$(subdir) == elf] (CFLAGS-.os): Removed.
 [$(subdir) == elf] (tests-special): Likewise.
 [$(subdir) == elf] ($(objpfx)tst-ld-sse-use.out): Likewise.
 * sysdeps/x86_64/Makefile [$(subdir) == elf] (CFLAGS-.os): Add
 -mno-mmx for $(all-rtld-routines).

6e9d18d... by "H.J. Lu" <email address hidden>

Save and restore vector registers in x86-64 ld.so

This patch adds SSE, AVX and AVX512 versions of _dl_runtime_resolve
and _dl_runtime_profile, which save and restore the first 8 vector
registers used for parameter passing. elf_machine_runtime_setup
selects the proper _dl_runtime_resolve or _dl_runtime_profile based
on _dl_x86_cpu_features. It avoids race condition caused by
FOREIGN_CALL macros, which are only used for x86-64.

Performance impact of saving and restoring 8 vector registers are
negligible on Nehalem, Sandy Bridge, Ivy Bridge and Haswell when
ld.so is optimized with SSE2.

 [BZ #15128]
 * sysdeps/x86_64/Makefile [$(subdir) == elf] (tests): Add
 ifuncmain8.
 (modules-names): Add ifuncmod8.
 ($(objpfx)ifuncmain8): New rule.
 * sysdeps/x86_64/dl-machine.h: Include <dl-procinfo.h> and
 <cpuid.h>.
 (elf_machine_runtime_setup): Use _dl_runtime_resolve_sse,
 _dl_runtime_resolve_avx, or _dl_runtime_resolve_avx512,
 _dl_runtime_profile_sse, _dl_runtime_profile_avx, or
 _dl_runtime_profile_avx512, based on HAS_ARCH_FEATURE.
 * sysdeps/x86_64/dl-trampoline.S: Rewrite.
 * sysdeps/x86_64/dl-trampoline.h: Likewise.
 * sysdeps/x86_64/ifuncmain8.c: New file.
 * sysdeps/x86_64/ifuncmod8.c: Likewise.
 * sysdeps/x86_64/nptl/tcb-offsets.sym (RTLD_SAVESPACE_SSE):
 Removed.
 * sysdeps/x86_64/nptl/tls.h (__128bits): Removed.
 (tcbhead_t): Change rtld_must_xmm_save to __glibc_unused1.
 Change rtld_savespace_sse to __glibc_unused2.
 (RTLD_CHECK_FOREIGN_CALL): Removed.
 (RTLD_ENABLE_FOREIGN_CALL): Likewise.
 (RTLD_PREPARE_FOREIGN_CALL): Likewise.
 (RTLD_FINALIZE_FOREIGN_CALL): Likewise.

2d02fd0... by Joseph Myers <email address hidden>

Note bug 10882 as having been fixed in 2.16.

edbbc86... by Wilco Dijkstra <email address hidden>

2015-08-24 Wilco Dijkstra <email address hidden>

 * sysdeps/aarch64/bzero.S (__bzero): Remove.

f008c71... by Wilco Dijkstra <email address hidden>

2015-08-24 Wilco Dijkstra <email address hidden>

 * sysdeps/aarch64/fpu/math_private.h (libc_feholdsetround_aarch64_ctx):
 Unconditionally set __fpcr to avoid uninialized warning.
 (libc_feholdsetround_noex_aarch64_ctx): Likewise.