Bug 15128 - dynamic loader may clobber floating-point parameters on AArch64
Summary: dynamic loader may clobber floating-point parameters on AArch64
Status: RESOLVED FIXED
Alias: None
Product: glibc
Classification: Unclassified
Component: dynamic-link (show other bugs)
Version: 2.17
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-09 17:02 UTC by Mikael Pettersson
Modified: 2023-12-08 10:37 UTC (History)
11 users (show)

See Also:
Host: aarch64-linux
Target:
Build:
Last reconfirmed:
fweimer: security-


Attachments
aarch64: preserve fp/simd arg regs around _dl_fixup call in _dl_runtime_resolve (670 bytes, patch)
2013-02-13 09:32 UTC, Mikael Pettersson
Details | Diff
testcase with ifunc that fails on x86-64 (503 bytes, application/x-bzip2)
2013-02-24 18:10 UTC, Alexander Monakov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mikael Pettersson 2013-02-09 17:02:54 UTC
If glibc-2.17 is compiled for aarch64 with -O3 in CFLAGS, then gcc (from aarch64-4.7-branch of GCC svn) will convert some memory stores in the dynamic loader to use vector registers and vector instructions.  Vector registers alias the FP registers.  The code path into the dynamic loader does not preserve the application's FP registers, so those vector instructions may clobber FP arguments in the call being resolved.

As the following test case shows, at least printf and log10 are broken by this:

genericarmv8_195_cat aarch64-fp-bug.c 
#include <errno.h>
#include <math.h>
#include <stdio.h>

double x = 100.0;

int main(void)
{
    double y;

    errno = 0;
    y = log10(x);
    printf("log10(%f) = %f, errno = %d\n", x, y, errno);

    return 0;
}
genericarmv8_196_gcc -O aarch64-fp-bug.c -lm ; ./a.out
log10(0.000000) = -inf, errno = 34
genericarmv8_197_gcc -static -O aarch64-fp-bug.c -lm ; ./a.out
log10(100.000000) = 2.000000, errno = 0

When debugging the test case I found that the FP argument to log10 was clobbered by a fragment like the following in _dl_lookup_symbol_x:

    1094:       910303b8        add     x24, x29, #0xc0
...
    10a0:       4f000400        movi    v0.4s, #0x0
    10a4:       f90073a2        str     x2, [x29,#224]
    10a8:       4c007f00        st1     {v0.2d}, [x24]

When compiled at -O2 or with -mgeneral-regs-only that code is

    10a4:       f9006fa2        str     x2, [x29,#216]
    10a8:       f90063bf        str     xzr, [x29,#192]
    10ac:       f90067bf        str     xzr, [x29,#200]

Further inspection of the object files in the elf directory showed v0 being clobbered in six of them (dl-addr, dl-libc, dl-load, dl-lookup, dl-reloc, and rtld), and also in the memset that gets linked in there.

Compiling glibc with -O2 appears to avoid the problem, but it's a blunt and possibly incomplete solution.  -mgeneral-regs-only is guaranteed to avoid the problem, but that also prevents FP code, so it can't be used for all of glibc.  My current solution is to add -mgeneral-regs-only to the seven files listed above via CFLAGS overrides in the aarch64-specific Makefile.  Doing that runs into BZ 15005 however, so the fix for that is also needed.

I don't have a copyright assignment, but the patch is small:

 elf/Makefile                   |    4 ++--
 ports/sysdeps/aarch64/Makefile |   10 ++++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

Does this sound Ok?  Is there a better way to fix this issue?
Comment 1 Rich Felker 2013-02-11 05:00:30 UTC
I haven't looked at the code, but the correct fix should just be to make the lazy binding resolver function save all registers that might be argument registers before calling anything else, and restore them before making the final jump to the resolved address. There's no reason to go to great lengths to avoid clobbering them in between.
Comment 2 Ondrej Bilka 2013-02-11 07:21:25 UTC
On Mon, Feb 11, 2013 at 05:00:30AM +0000, bugdal at aerifal dot cx wrote:
> http://sourceware.org/bugzilla/show_bug.cgi?id=15128
> 
> Rich Felker <bugdal at aerifal dot cx> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |bugdal at aerifal dot cx
> 
> --- Comment #1 from Rich Felker <bugdal at aerifal dot cx> 2013-02-11 05:00:30 UTC ---
> I haven't looked at the code, but the correct fix should just be to make the
> lazy binding resolver function save all registers that might be argument
> registers before calling anything else, and restore them before making the
> final jump to the resolved address. There's no reason to go to great lengths to
> avoid clobbering them in between.
> 

Aarch64 ta calling conventions below you have v16-v31
available.

The first eight registers, v0-v7, are used to pass argument values into
a subroutine and to return result values from a function. They may also
be used to hold intermediate values within a routine (but, in general,
only between subroutine calls).

Registers d8-d15 (s8-s15) must be preserved by a callee across
subroutine calls; the remaining registers (v0-v7, v16-v31) do not need
to be preserved (or should be preserved by the caller). Additionally,
only single-precision, double-precision and 64-bit short vector values
stored in d8-d15 (s8-s15) need to be preserved; it is the responsibility
of the caller to preserve larger values.

> -- 
> Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.
Comment 3 Mikael Pettersson 2013-02-11 09:09:25 UTC
In principle I agree that whatever assembly glue there is between the application's call and the dynamic loader's C code should preserve the parameter registers.  The main argument against doing that is that it causes runtime overheads that often are unnecessary, e.g. saving FP registers can be avoided.

Ultimately it's up to the aarch64 maintainers to decide how to resolve this issue.
Comment 4 Rich Felker 2013-02-11 13:36:22 UTC
Putting ridiculous limitations outside of the standard ABI on what registers may be used by any function that happens to get called during the resolver is not a valid fix; if nothing else it's too fragile. The resolver is only called once per symbol. A few extra cycles to save and restore fp registers will not matter; the savings elsewhere from being able to use vector ops probably more than compensate anyway.
Comment 5 Mikael Pettersson 2013-02-11 15:12:52 UTC
I see code for preserving vector registers in ports/sysdeps/aarch64/dl-tlsdesc.S, but no such code in ports/sysdeps/aarch64/dl-trampoline.S (_dl_runtime_resolve), which is where the execution transitions from the PLT to the dynamic loader's C code.

A few archs preserve FP/SIMD registers in their _dl_runtime_resolve (SH, Alpha, HPPA, IA64), but most don't.  Extending aarch64's _dl_runtime_resolve to preserve FP/SIMD argument registers should also fix this bug.
Comment 6 Rich Felker 2013-02-11 21:38:07 UTC
Note that unless an arch's ABI passes floating point arguments by register, there's no need for _dl_runtime_resolve to do any saving/restoring.
Comment 7 Mikael Pettersson 2013-02-13 09:32:09 UTC
Created attachment 6864 [details]
aarch64: preserve fp/simd arg regs around _dl_fixup call in _dl_runtime_resolve

This patch fixes the issue for me.  Tested natively with the original test case and two days of rpm rebuild jobs.
Comment 8 Carlos O'Donell 2013-02-20 18:11:35 UTC
Marcus,

As the AArch64 maintainer, could you please comment on this?
Comment 9 Alexander Monakov 2013-02-24 18:10:56 UTC
Created attachment 6891 [details]
testcase with ifunc that fails on x86-64

This problem is not limited to AArch64.  Attached is a testcase that fails on x86-64 (and probably other arches as well).  In this case, an IFUNC resolver function clobbers xmm0, which is not saved/restored in _dl_runtime_resolve.
Comment 10 Andreas Jaeger 2013-02-25 08:05:56 UTC
(In reply to comment #9)
> Created attachment 6891 [details]
> testcase with ifunc that fails on x86-64
> 
> This problem is not limited to AArch64.  Attached is a testcase that fails on
> x86-64 (and probably other arches as well).  In this case, an IFUNC resolver
> function clobbers xmm0, which is not saved/restored in _dl_runtime_resolve.

Yes, the problem occurs there as well if you use directly floating point instructions in the IFUNC resolver, e.g. via:
  volatile float c = foo_impl(42);

And the question here is what is allowed to be done in the resolver - right now the implicit requirement is: No Floating point.

Before we go down on AARCH64 with the patch to preserver fp/simd arguments, let's discuss this on libc-alpha, we should handle this the same on all architectures.
Comment 11 Marcus Shawcroft 2013-05-21 12:59:16 UTC
I think this is a straight forward case of AArch64's _dl_runtime_resolve not honouring the AArch64 PCS.  The correct solution is to add save and restore of d0-d7 (not q0-q7).  I'll post a patch shortly.  I can't comment on the X86 issue.
Comment 12 Ondrej Bilka 2013-10-02 22:15:04 UTC
ping
Comment 13 Sourceware Commits 2013-12-18 12:08:10 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  cb756c6d686242acdc942e3d4276e399a69a6f02 (commit)
       via  9dbebe1a67bbedfcb39c6b739f15bc639e8d40a2 (commit)
      from  5953eb3ad70bb1a75a9ff419798ef7034c85baed (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cb756c6d686242acdc942e3d4276e399a69a6f02

commit cb756c6d686242acdc942e3d4276e399a69a6f02
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Tue Dec 17 18:12:30 2013 +0000

    Compile e_sqrt.c with -ffp-contract=off.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9dbebe1a67bbedfcb39c6b739f15bc639e8d40a2

commit 9dbebe1a67bbedfcb39c6b739f15bc639e8d40a2
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Wed Dec 18 10:00:07 2013 +0000

    [AArch64] Save and restore q0-q7 on entry to dynamic linker.
    
    [BZ #15128] Ensure all argument passing registers are saved and
    restored on entry to dynamic linker.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                             |    5 +++++
 NEWS                                  |   22 +++++++++++-----------
 ports/ChangeLog.aarch64               |    6 ++++++
 ports/sysdeps/aarch64/dl-trampoline.S |   28 ++++++++++++++++++++++++----
 sysdeps/ieee754/dbl-64/Makefile       |    1 +
 5 files changed, 47 insertions(+), 15 deletions(-)
Comment 14 Sourceware Commits 2013-12-19 14:04:10 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.18/master has been updated
       via  ca0dd6386ed2b5c5c6ca392547628a1228432ae0 (commit)
      from  6d153c48a17487a1bd2ae47a1d6be8df28c21130 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ca0dd6386ed2b5c5c6ca392547628a1228432ae0

commit ca0dd6386ed2b5c5c6ca392547628a1228432ae0
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Wed Dec 18 10:00:07 2013 +0000

    [AArch64] Save and restore q0-q7 on entry to dynamic linker.
    
    [BZ #15128] Ensure all argument passing registers are saved and
    restored on entry to dynamic linker.
    
    (cherry picked from commit 9dbebe1a67bbedfcb39c6b739f15bc639e8d40a2)
    
    Conflicts:
    	NEWS

-----------------------------------------------------------------------

Summary of changes:
 NEWS                                  |    2 +-
 ports/ChangeLog.aarch64               |    6 ++++++
 ports/sysdeps/aarch64/dl-trampoline.S |   28 ++++++++++++++++++++++++----
 3 files changed, 31 insertions(+), 5 deletions(-)
Comment 15 Marcus Shawcroft 2013-12-19 14:10:50 UTC
Fixed on trunk.

Backport to 2.18 release branch.
Comment 16 Sourceware Commits 2015-07-31 12:33:10 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/pr18661 has been created
        at  2e4cca72c25aa2a3a0da59c651ca69320b16bfff (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2e4cca72c25aa2a3a0da59c651ca69320b16bfff

commit 2e4cca72c25aa2a3a0da59c651ca69320b16bfff
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3600e9c49c921bf4f788fb55321d1fb3824abf2d

commit 3600e9c49c921bf4f788fb55321d1fb3824abf2d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=45e6b0f0009e3499f924d003746b6994cb9dff3c

commit 45e6b0f0009e3499f924d003746b6994cb9dff3c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8a9d5ef56db422846842aae87be3347382aff070

commit 8a9d5ef56db422846842aae87be3347382aff070
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=442e00b6d245a40075b9a58e2783c8395abce62c

commit 442e00b6d245a40075b9a58e2783c8395abce62c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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: Removed.
    	* sysdeps/x86_64/Makefile [$(subdir) == elf] (CFLAGS-.os): Add
    	-mno-mmx for $(all-rtld-routines).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=72185dfbf09bab8333c1245f11af0f7697ca1c03

commit 72185dfbf09bab8333c1245f11af0f7697ca1c03
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[BZ #15128]
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	<sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h: Include
    	<sysdeps/x86_64/dl-procinfo.h> instead of
    	<sysdeps/generic/dl-procinfo.h>.
    	* 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 GLRO(dl_x86_xstate).
    	(dl_platform_init): Set GLRO(dl_x86_xstate) based on cpuid.
    	* sysdeps/x86_64/dl-procinfo.c: New file.
    	* sysdeps/x86_64/dl-procinfo.h: Likewise.
    	* sysdeps/x86_64/ifuncmain8.c: Likewise.
    	* sysdeps/x86_64/ifuncmod8.c: Likewise.
    	* sysdeps/x86_64/dl-trampoline.S: Rewrite.
    	* sysdeps/x86_64/dl-trampoline.h: 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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a955dc4b8be25f9288dfaad15ef14a083be2ca78

commit a955dc4b8be25f9288dfaad15ef14a083be2ca78
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=16dcea99081d9f4a7fb2fadf13a69ff480feb30f

commit 16dcea99081d9f4a7fb2fadf13a69ff480feb30f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=497480af688602f69dc1e49113106d6fcdff3d4d

commit 497480af688602f69dc1e49113106d6fcdff3d4d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46c362d7c702b3ea2fb4e4a17cd633671793fa21

commit 46c362d7c702b3ea2fb4e4a17cd633671793fa21
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

-----------------------------------------------------------------------
Comment 17 Sourceware Commits 2015-08-01 15:54:53 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  e407c803542127581dee0ecd346ce1b239eeb605 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e407c803542127581dee0ecd346ce1b239eeb605

commit e407c803542127581dee0ecd346ce1b239eeb605
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9c5e89aae33638ac5507601b60a5b09f2acaafa5

commit 9c5e89aae33638ac5507601b60a5b09f2acaafa5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5fbc29538eb104ca074fb8bab9aae1d34be20ec6

commit 5fbc29538eb104ca074fb8bab9aae1d34be20ec6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4ca4b1e1266d624e2a018055d29a129a934fd1e6

commit 4ca4b1e1266d624e2a018055d29a129a934fd1e6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=953e8b213c2067664752c02975555c59b80907a8

commit 953e8b213c2067664752c02975555c59b80907a8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dba9bf664566fa3230305bebf02f175eb8b9fb85

commit dba9bf664566fa3230305bebf02f175eb8b9fb85
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5e06993a5a4d172d9ab979e98cc0fb5949de16ef

commit 5e06993a5a4d172d9ab979e98cc0fb5949de16ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e0aa3e3a6f0a2df74265a2219d95624ecf531f81

commit e0aa3e3a6f0a2df74265a2219d95624ecf531f81
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bc60509483d3ab0d795745e91bcca13c8bccf89e

commit bc60509483d3ab0d795745e91bcca13c8bccf89e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9644c9267351b4c286c44fa4111a71c4c78b3ec8

commit 9644c9267351b4c286c44fa4111a71c4c78b3ec8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fa437015d9c0a0d4628f8b042dcc865dce1ca335

commit fa437015d9c0a0d4628f8b042dcc865dce1ca335
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update elision-conf.c for cpu-feattures

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=71ed3c9d3f7a099ea19590479edd3fbe41e68a0c

commit 71ed3c9d3f7a099ea19590479edd3fbe41e68a0c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:46:05 2015 -0700

    Use LOAD_RTLD_GLOBAL_RO_RDX and HAS_XXX in libmvec

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8627c662750246f16376104de1cd04fb6f287b9e

commit 8627c662750246f16376104de1cd04fb6f287b9e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Use LOAD_GOT_AND_RTLD_GLOBAL_RO and HAS_XXX in i686/multiarch

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=90fea981859f96b666d8afadd842159fd83d21c7

commit 90fea981859f96b666d8afadd842159fd83d21c7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Use LOAD_RTLD_GLOBAL_RO_RDX and HAS_XXX in x86_64/multiarch

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7eeb9e24373749686c2757cf95b2273c8ec966e9

commit 7eeb9e24373749686c2757cf95b2273c8ec966e9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    _dl_x86_cpu_features to rtld_global for x86

-----------------------------------------------------------------------
Comment 18 Sourceware Commits 2015-08-01 22:23:20 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  3f43755229a5cab4592180b9a65f80b1cbc91814 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3f43755229a5cab4592180b9a65f80b1cbc91814

commit 3f43755229a5cab4592180b9a65f80b1cbc91814
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3c48892c007bbcea35575db5896048c6a76974e8

commit 3c48892c007bbcea35575db5896048c6a76974e8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2074ac56ffff5c3c076a481bb5d2bf0544edb2d9

commit 2074ac56ffff5c3c076a481bb5d2bf0544edb2d9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4573d669877bca37699d8074c96c8cfad3d94e38

commit 4573d669877bca37699d8074c96c8cfad3d94e38
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=aab4fd9789eeaa1359edaa5ab4864967306f9f5a

commit aab4fd9789eeaa1359edaa5ab4864967306f9f5a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8f16a2ce3066c046fe962fd093235b010c5005e0

commit 8f16a2ce3066c046fe962fd093235b010c5005e0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c0a07e6a2c03d64704027102a9720913182d1d56

commit c0a07e6a2c03d64704027102a9720913182d1d56
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2ee2f14b2786040bfca1faa1ab9816bd397a4ec7

commit 2ee2f14b2786040bfca1faa1ab9816bd397a4ec7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=43de4ea949245b79d255ac1d48c81184c57c7396

commit 43de4ea949245b79d255ac1d48c81184c57c7396
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b5cd6d5a870d7641fef40420f221cab4e8050b48

commit b5cd6d5a870d7641fef40420f221cab4e8050b48
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dc3022ec8a22f586925a1a8d7bff208a3c4f82f0

commit dc3022ec8a22f586925a1a8d7bff208a3c4f82f0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    _dl_x86_cpu_features to rtld_global for x86

-----------------------------------------------------------------------
Comment 19 Sourceware Commits 2015-08-01 22:25:41 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  043fcdfc8139d68b27f737063a8e1c2f693c9b2b (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=043fcdfc8139d68b27f737063a8e1c2f693c9b2b

commit 043fcdfc8139d68b27f737063a8e1c2f693c9b2b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=93b2eedb81fd263234d37e5786886f331062f7c7

commit 93b2eedb81fd263234d37e5786886f331062f7c7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=515cbe2bae3d958687530081cd41860e10d41686

commit 515cbe2bae3d958687530081cd41860e10d41686
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=172112aff93a6c01f354195c2ebc4da08caa0cf5

commit 172112aff93a6c01f354195c2ebc4da08caa0cf5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bd0246a67c8224166c81d8779e47d14ae725beb8

commit bd0246a67c8224166c81d8779e47d14ae725beb8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7eb94b3b44ccceb808b9310ec7e732960796f930

commit 7eb94b3b44ccceb808b9310ec7e732960796f930
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a018fe7a7229c3048dcd5765716b719905820f64

commit a018fe7a7229c3048dcd5765716b719905820f64
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dececeb4701899392f987a0d9eb92fe8fd0e9e32

commit dececeb4701899392f987a0d9eb92fe8fd0e9e32
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=18a1650a345418cc2a4c83372cb4402d0da4535d

commit 18a1650a345418cc2a4c83372cb4402d0da4535d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1c1d5084bb4de396487418ca2fd96538e489100e

commit 1c1d5084bb4de396487418ca2fd96538e489100e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

-----------------------------------------------------------------------
Comment 20 Sourceware Commits 2015-08-02 03:54:59 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  555186f0c71fee41e33ad72cb38be974221b2e3c (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=555186f0c71fee41e33ad72cb38be974221b2e3c

commit 555186f0c71fee41e33ad72cb38be974221b2e3c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=40258193697061c87e5cfe285cd04adcf1ae655f

commit 40258193697061c87e5cfe285cd04adcf1ae655f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a687fe847371d763d6fef546bd8efe82a8f88d40

commit a687fe847371d763d6fef546bd8efe82a8f88d40
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5ad67d1f4b30eada1bf262566213dcca2e3893f7

commit 5ad67d1f4b30eada1bf262566213dcca2e3893f7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fb086134f5eba610a4020e655dce46b75302d81c

commit fb086134f5eba610a4020e655dce46b75302d81c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c229191cffc809ede2574232fd1bef4f03e2c62f

commit c229191cffc809ede2574232fd1bef4f03e2c62f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bac692ed46c2ff69ac859358b771fd1db6951800

commit bac692ed46c2ff69ac859358b771fd1db6951800
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b9645f91a56d5892a18cb521e195f924292e1367

commit b9645f91a56d5892a18cb521e195f924292e1367
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=46eaabd373ca3f77a46089dc1b79b7ca3f9a4fcd

commit 46eaabd373ca3f77a46089dc1b79b7ca3f9a4fcd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a00a8b1dd3507d69077fbacd2cb2503f0ba2e462

commit a00a8b1dd3507d69077fbacd2cb2503f0ba2e462
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8b34a808a30703b60ab9416979a32fa83c4e86e2

commit 8b34a808a30703b60ab9416979a32fa83c4e86e2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2764863736e437eeba3235a13c58202e269dedbb

commit 2764863736e437eeba3235a13c58202e269dedbb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b846eb01242c35fa60a30cf7950f0a28d3ac3f62

commit b846eb01242c35fa60a30cf7950f0a28d3ac3f62
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d55078bafe0a30062c6dd2d95811c9949e0fbd3b

commit d55078bafe0a30062c6dd2d95811c9949e0fbd3b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	* sysdeps/x86/cpu-features-offsets.sym: New file.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Removed.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.c: Rewrite.
    	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2702b161faaf048300de5c67dad5d1ca2078db60

commit 2702b161faaf048300de5c67dad5d1ca2078db60
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 6 04:55:56 2015 -0800

    Replace __attribute__((visibility("protected")))
    
    With copy relocation, address of protected data defined in the shared
    library may be external.  Compiler shouldn't asssume protected data will
    be local.  But due to
    
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248
    
    __attribute__((visibility("protected"))) doesn't work correctly, we need
    to use asm (".protected xxx") instead.
    
    Cherry-pick from master: e0ed2fb40a0e29c43cf60addc74741dab15f2e05
    	* elf/ifuncdep2.c (global): Replace
    	__attribute__((visibility("protected"))) with
    	asm (".protected global").
    	* elf/ifuncmod1.c (global): Likewise.
    	* elf/ifuncmod5.c (global): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d8700f7fa9a60def973ccdfad24266d91d9ce667

commit d8700f7fa9a60def973ccdfad24266d91d9ce667
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Mar 5 11:36:35 2015 -0800

    Add a testcase for copy reloc against protected data
    
    Linkers in some versions of binutils 2.25 and 2.26 don't support protected
    data symbol with error messsage like:
    
    /usr/bin/ld: copy reloc against protected `bar' is invalid
    /usr/bin/ld: failed to set dynamic section sizes: Bad value
    
    We check if linker supports copy reloc against protected data symbol to
    avoid running the test if linker is broken.
    
    Cherry-pick from master: 83569fb894050db7430047da2219ca50c68f882a
    	[BZ #17711]
    	* config.make.in (have-protected-data): New.
    	* configure.ac: Check linker support for protected data symbol.
    	* configure: Regenerated.
    	* elf/Makefile (modules-names): Add tst-protected1moda and
    	tst-protected1modb if $(have-protected-data) is yes.
    	(tests): Add tst-protected1a and tst-protected1b if
    	$(have-protected-data) is yes.
    	($(objpfx)tst-protected1a): New.
    	($(objpfx)tst-protected1b): Likewise.
    	(tst-protected1modb.so-no-z-defs): Likewise.
    	* elf/tst-protected1a.c: New file.
    	* elf/tst-protected1b.c: Likewise.
    	* elf/tst-protected1mod.h: Likewise.
    	* elf/tst-protected1moda.c: Likewise.
    	* elf/tst-protected1modb.c: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eaf2df74329942e92928162faa72159f33f040a7

commit eaf2df74329942e92928162faa72159f33f040a7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Mar 31 05:15:43 2015 -0700

    Add ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA to x86
    
    With copy relocation, address of protected data defined in the shared
    library may be external.   When there is a relocation against the
    protected data symbol within the shared library, we need to check if we
    should skip the definition in the executable copied from the protected
    data.  This patch adds ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA and defines
    it for x86.  If ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA isn't 0, do_lookup_x
    will skip the data definition in the executable from copy reloc.
    
    Cherry-pick from master: 62da1e3b00b51383ffa7efc89d8addda0502e107
    	[BZ #17711]
    	* elf/dl-lookup.c (do_lookup_x): When UNDEF_MAP is NULL, which
    	indicates it is called from do_lookup_x on relocation against
    	protected data, skip the data definion in the executable from
    	copy reloc.
    	(_dl_lookup_symbol_x): Pass ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA,
    	instead of ELF_RTYPE_CLASS_PLT, to do_lookup_x for
    	EXTERN_PROTECTED_DATA relocation against STT_OBJECT symbol.
    	* sysdeps/generic/ldsodefs.h * (ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA):
    	New.  Defined to 4 if DL_EXTERN_PROTECTED_DATA is defined,
    	otherwise to 0.
    	* sysdeps/i386/dl-lookupcfg.h (DL_EXTERN_PROTECTED_DATA): New.
    	* sysdeps/i386/dl-machine.h (elf_machine_type_class): Set class
    	to ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for R_386_GLOB_DAT.
    	* sysdeps/x86_64/dl-lookupcfg.h (DL_EXTERN_PROTECTED_DATA): New.
    	* sysdeps/x86_64/dl-machine.h (elf_machine_type_class): Set class
    	to ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for R_X86_64_GLOB_DAT.

-----------------------------------------------------------------------
Comment 21 Sourceware Commits 2015-08-02 12:33:11 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  1d0171e6e5c5a2f80e2e805c89908e7c5e9c78fb (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d0171e6e5c5a2f80e2e805c89908e7c5e9c78fb

commit 1d0171e6e5c5a2f80e2e805c89908e7c5e9c78fb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=27299d1fa30a41c8cffd7170702c220f2ef52d0e

commit 27299d1fa30a41c8cffd7170702c220f2ef52d0e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e4f5723190ac2871441093e6cdfe33c556ab4772

commit e4f5723190ac2871441093e6cdfe33c556ab4772
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bb68a9b5305713b3493650bc4c322ab2f45240c5

commit bb68a9b5305713b3493650bc4c322ab2f45240c5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0136a228ed15d5cd267d0c2608c3b06962e8761e

commit 0136a228ed15d5cd267d0c2608c3b06962e8761e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ba9897f7c66deae4ca166e176e61d25bd88f15cf

commit ba9897f7c66deae4ca166e176e61d25bd88f15cf
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cd6c53d1724cbea49f9988d7427a3d3af3c32a25

commit cd6c53d1724cbea49f9988d7427a3d3af3c32a25
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=587bbbd2d9b6d769bc7857f0ecf0f96ad8e02722

commit 587bbbd2d9b6d769bc7857f0ecf0f96ad8e02722
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7b796bc60c397093ee02a7079423118c31a0df58

commit 7b796bc60c397093ee02a7079423118c31a0df58
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=aa2e81690321aa68c15b744ab999ee8b3dd5efe0

commit aa2e81690321aa68c15b744ab999ee8b3dd5efe0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=620df9822fd48998036a1cd10c0d3149d82db2e6

commit 620df9822fd48998036a1cd10c0d3149d82db2e6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9946830a08c1c5506a37f92042be65d7f45d4081

commit 9946830a08c1c5506a37f92042be65d7f45d4081
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3f6b394498dfcc16cce52a6fcbd121995bcfd2df

commit 3f6b394498dfcc16cce52a6fcbd121995bcfd2df
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c15eacc82903a779ff1ee6374ba66594735d5cb1

commit c15eacc82903a779ff1ee6374ba66594735d5cb1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	* sysdeps/x86/cpu-features-offsets.sym: New file.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Removed.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.c: Rewrite.
    	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.

-----------------------------------------------------------------------
Comment 22 Sourceware Commits 2015-08-02 13:57:01 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  27d21878e6c6c3517f14f758598295161461af2c (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=27d21878e6c6c3517f14f758598295161461af2c

commit 27d21878e6c6c3517f14f758598295161461af2c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b3139c9c42f6edde9ff40a40d810f7e6312a4a23

commit b3139c9c42f6edde9ff40a40d810f7e6312a4a23
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=42772c4e1a7d51ff3b61fcedb5e3fb3351c9f8b4

commit 42772c4e1a7d51ff3b61fcedb5e3fb3351c9f8b4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2c35e86459f434d4e8251962ba3ff9d341428ba0

commit 2c35e86459f434d4e8251962ba3ff9d341428ba0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1b98679a9065e1b21a0fed3dde8a1503b16a89fa

commit 1b98679a9065e1b21a0fed3dde8a1503b16a89fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a061cf95b023449f79bcd497890a7f6ef95f4a3b

commit a061cf95b023449f79bcd497890a7f6ef95f4a3b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    We can also retire the rtld_must_xmm_save field and remove the
    rtld_savespace_sse field in tcbhead_t.  It is safe since they are
    internal to glibc.
    
    	[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.
    	Remove rtld_savespace_sse and __padding.
    	(RTLD_CHECK_FOREIGN_CALL): Removed.
    	(RTLD_ENABLE_FOREIGN_CALL): Likewise.
    	(RTLD_PREPARE_FOREIGN_CALL): Likewise.
    	(RTLD_FINALIZE_FOREIGN_CALL): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2fede219d1005f41a04aab125ec49b7c1456236f

commit 2fede219d1005f41a04aab125ec49b7c1456236f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a538a8e9905c07a3a60b998e31b8c5ac73a4a58

commit 3a538a8e9905c07a3a60b998e31b8c5ac73a4a58
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=69acbbd5ca5a54520cfc107bacc3b71e69ec0d2d

commit 69acbbd5ca5a54520cfc107bacc3b71e69ec0d2d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2b58e5d85955174dde6a9304002adb79d2681ca3

commit 2b58e5d85955174dde6a9304002adb79d2681ca3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5d7a32c16a65d27b73d01556a30fb138338639f1

commit 5d7a32c16a65d27b73d01556a30fb138338639f1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=da0e27c6c7266df2107c7a4825cf2eb2d6360d28

commit da0e27c6c7266df2107c7a4825cf2eb2d6360d28
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a7be9410184a405f4f1347302afe0b625146cdab

commit a7be9410184a405f4f1347302afe0b625146cdab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2f99aa146788d958bf202ce51e070c31af84a570

commit 2f99aa146788d958bf202ce51e070c31af84a570
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	* sysdeps/x86/cpu-features-offsets.sym: New file.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Removed.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.c: Rewrite.
    	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0

commit fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 9 09:30:09 2015 -0700

    Improve bndmov encoding with zero displacement
    
    If x86-64 assembler doesn't support MPX, we encode bndmov instruction by
    hand.  When displacement is zero, assembler generates shorter encoding.
    This patch improves bndmov encoding with zero displacement so that ld.so
    is identical when using assemblers with and without MPX support.
    
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Improve
    	bndmov encoding with zero displacement.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e4fc7f67f6695f294ae759a6b540f5d08a56f0c

commit 9e4fc7f67f6695f294ae759a6b540f5d08a56f0c
Author: Igor Zamyatin <igor.zamyatin@intel.com>
Date:   Thu Jul 9 06:50:12 2015 -0700

    Preserve bound registers for pointer pass/return
    
    We need to save/restore bound registers and add a BND prefix before
    branches in _dl_runtime_profile so that bound registers for pointer
    pass and return are preserved when LD_AUDIT is used.
    
    	[BZ #18134]
    	* sysdeps/i386/configure.ac: Set HAVE_MPX_SUPPORT.
    	* sysdeps/i386/configure: Regenerated.
    	* sysdeps/i386/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_profile): Save and restore Intel MPX return bound
    	registers when calling _dl_call_pltexit.  Add
    	PRESERVE_BND_REGS_PREFIX before return.
    	* sysdeps/i386/link-defines.sym (LRV_BND0_OFFSET): New.
    	(LRV_BND1_OFFSET): Likewise.
    	* sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and
    	lrv_bnd1.
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
    	typo in bndmov encoding.
    	* sysdeps/x86_64/dl-trampoline.h: Properly save and restore
    	Intel MPX bound registers.  Add PRESERVE_BND_REGS_PREFIX before
    	branch instructions to preserve bounds.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b15f277bac14482c8b2dda4931ebf919644932fa

commit b15f277bac14482c8b2dda4931ebf919644932fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Mar 16 14:58:43 2015 -0700

    Preserve bound registers in _dl_runtime_resolve
    
    We need to add a BND prefix before indirect branch at the end of
    _dl_runtime_resolve to preserve bound registers.
    
    	[BZ #18134]
    	* sysdeps/x86_64/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_resolve): Add a BND prefix before indirect branch.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=20f87a053b1e6a9106851f764c205d59fd4b6879

commit 20f87a053b1e6a9106851f764c205d59fd4b6879
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:23:24 2015 -0700

    Add and use sysdeps/i386/link-defines.sym
    
    Define macros for fields in La_i86_regs and La_i86_retval and use them
    in dl-trampoline.S, instead of hardcoded values.
    
    	* sysdeps/i386/Makefile (gen-as-const-headers)[elf]: Add
    	link-defines.sym.
    	* sysdeps/i386/dl-trampoline.S: Include <link-defines.h>.
    	(_dl_runtime_profile): Use LONG_DOUBLE_SIZE, LRV_SIZE,
    	LRV_EAX_OFFSET, LRV_EDX_OFFSET, LRV_ST0_OFFSET, LRV_ST1_OFFSET
    	and LR_SIZE.
    	* sysdeps/i386/link-defines.sym: New file.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d6fd297566e2389ab855325754bcb25f604c6b7d

commit d6fd297566e2389ab855325754bcb25f604c6b7d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:09:16 2015 -0700

    Add a testcase for i386 LD_AUDIT
    
    This patch adds a testcase for i386 LD_AUDIT to check function return
    and parameters passed in registers.
    
    	* sysdeps/i386/Makefile (tests)[elf]: Add tst-audit3.
    	(modules-names): Add tst-auditmod3a tst-auditmod3b.
    	($(objpfx)tst-audit3): New rule.
    	($(objpfx)tst-audit3.out): Likewise.
    	* sysdeps/i386/tst-audit3.c: New file.
    	* sysdeps/i386/tst-audit3.h: Likewise.
    	* sysdeps/i386/tst-auditmod3a.c: Likewise.
    	* sysdeps/i386/tst-auditmod3b.c: Likewise.

-----------------------------------------------------------------------
Comment 23 Sourceware Commits 2015-08-02 17:41:03 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  d53574deb7a0f49da15eca67d01bc188b4f89948 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d53574deb7a0f49da15eca67d01bc188b4f89948

commit d53574deb7a0f49da15eca67d01bc188b4f89948
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3b06f9e926254743bcf61a0971841312c737b2f1

commit 3b06f9e926254743bcf61a0971841312c737b2f1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5100a9262c79946feddb83ad46d8448312d0a792

commit 5100a9262c79946feddb83ad46d8448312d0a792
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=200eb0e798153aa644e6a6c551c685a25f1f0d1f

commit 200eb0e798153aa644e6a6c551c685a25f1f0d1f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6642aacc2b3f2779448f9878b9a320dd9bd184ab

commit 6642aacc2b3f2779448f9878b9a320dd9bd184ab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f95bec159176aef22fb9465793b8fa5d354bea31

commit f95bec159176aef22fb9465793b8fa5d354bea31
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.
    
    Fix tcbhead_t

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a018fe7a7229c3048dcd5765716b719905820f64

commit a018fe7a7229c3048dcd5765716b719905820f64
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dececeb4701899392f987a0d9eb92fe8fd0e9e32

commit dececeb4701899392f987a0d9eb92fe8fd0e9e32
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=18a1650a345418cc2a4c83372cb4402d0da4535d

commit 18a1650a345418cc2a4c83372cb4402d0da4535d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1c1d5084bb4de396487418ca2fd96538e489100e

commit 1c1d5084bb4de396487418ca2fd96538e489100e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

-----------------------------------------------------------------------
Comment 24 Sourceware Commits 2015-08-02 17:43:27 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  adf2bca6cef858265c67d36fb762ad8d094cf8e6 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=adf2bca6cef858265c67d36fb762ad8d094cf8e6

commit adf2bca6cef858265c67d36fb762ad8d094cf8e6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ea6b54e9214abaf37faf988eda0b55adf734d7ba

commit ea6b54e9214abaf37faf988eda0b55adf734d7ba
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=684b6047c2f84671dac9fa790f4cdc1416325e0b

commit 684b6047c2f84671dac9fa790f4cdc1416325e0b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9f41fc798f5c830cd909e6a849c676223240efc9

commit 9f41fc798f5c830cd909e6a849c676223240efc9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7d973940b6e8b281cdf53d6f66ac5305a478ebf9

commit 7d973940b6e8b281cdf53d6f66ac5305a478ebf9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=07ce37a6da7d00fb331736331031e371cbe753a8

commit 07ce37a6da7d00fb331736331031e371cbe753a8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.
    
    Fix tcbhead_t

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2fede219d1005f41a04aab125ec49b7c1456236f

commit 2fede219d1005f41a04aab125ec49b7c1456236f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a538a8e9905c07a3a60b998e31b8c5ac73a4a58

commit 3a538a8e9905c07a3a60b998e31b8c5ac73a4a58
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=69acbbd5ca5a54520cfc107bacc3b71e69ec0d2d

commit 69acbbd5ca5a54520cfc107bacc3b71e69ec0d2d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2b58e5d85955174dde6a9304002adb79d2681ca3

commit 2b58e5d85955174dde6a9304002adb79d2681ca3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5d7a32c16a65d27b73d01556a30fb138338639f1

commit 5d7a32c16a65d27b73d01556a30fb138338639f1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=da0e27c6c7266df2107c7a4825cf2eb2d6360d28

commit da0e27c6c7266df2107c7a4825cf2eb2d6360d28
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a7be9410184a405f4f1347302afe0b625146cdab

commit a7be9410184a405f4f1347302afe0b625146cdab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2f99aa146788d958bf202ce51e070c31af84a570

commit 2f99aa146788d958bf202ce51e070c31af84a570
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	* sysdeps/x86/cpu-features-offsets.sym: New file.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Removed.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.c: Rewrite.
    	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0

commit fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 9 09:30:09 2015 -0700

    Improve bndmov encoding with zero displacement
    
    If x86-64 assembler doesn't support MPX, we encode bndmov instruction by
    hand.  When displacement is zero, assembler generates shorter encoding.
    This patch improves bndmov encoding with zero displacement so that ld.so
    is identical when using assemblers with and without MPX support.
    
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Improve
    	bndmov encoding with zero displacement.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e4fc7f67f6695f294ae759a6b540f5d08a56f0c

commit 9e4fc7f67f6695f294ae759a6b540f5d08a56f0c
Author: Igor Zamyatin <igor.zamyatin@intel.com>
Date:   Thu Jul 9 06:50:12 2015 -0700

    Preserve bound registers for pointer pass/return
    
    We need to save/restore bound registers and add a BND prefix before
    branches in _dl_runtime_profile so that bound registers for pointer
    pass and return are preserved when LD_AUDIT is used.
    
    	[BZ #18134]
    	* sysdeps/i386/configure.ac: Set HAVE_MPX_SUPPORT.
    	* sysdeps/i386/configure: Regenerated.
    	* sysdeps/i386/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_profile): Save and restore Intel MPX return bound
    	registers when calling _dl_call_pltexit.  Add
    	PRESERVE_BND_REGS_PREFIX before return.
    	* sysdeps/i386/link-defines.sym (LRV_BND0_OFFSET): New.
    	(LRV_BND1_OFFSET): Likewise.
    	* sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and
    	lrv_bnd1.
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
    	typo in bndmov encoding.
    	* sysdeps/x86_64/dl-trampoline.h: Properly save and restore
    	Intel MPX bound registers.  Add PRESERVE_BND_REGS_PREFIX before
    	branch instructions to preserve bounds.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b15f277bac14482c8b2dda4931ebf919644932fa

commit b15f277bac14482c8b2dda4931ebf919644932fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Mar 16 14:58:43 2015 -0700

    Preserve bound registers in _dl_runtime_resolve
    
    We need to add a BND prefix before indirect branch at the end of
    _dl_runtime_resolve to preserve bound registers.
    
    	[BZ #18134]
    	* sysdeps/x86_64/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_resolve): Add a BND prefix before indirect branch.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=20f87a053b1e6a9106851f764c205d59fd4b6879

commit 20f87a053b1e6a9106851f764c205d59fd4b6879
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:23:24 2015 -0700

    Add and use sysdeps/i386/link-defines.sym
    
    Define macros for fields in La_i86_regs and La_i86_retval and use them
    in dl-trampoline.S, instead of hardcoded values.
    
    	* sysdeps/i386/Makefile (gen-as-const-headers)[elf]: Add
    	link-defines.sym.
    	* sysdeps/i386/dl-trampoline.S: Include <link-defines.h>.
    	(_dl_runtime_profile): Use LONG_DOUBLE_SIZE, LRV_SIZE,
    	LRV_EAX_OFFSET, LRV_EDX_OFFSET, LRV_ST0_OFFSET, LRV_ST1_OFFSET
    	and LR_SIZE.
    	* sysdeps/i386/link-defines.sym: New file.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d6fd297566e2389ab855325754bcb25f604c6b7d

commit d6fd297566e2389ab855325754bcb25f604c6b7d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:09:16 2015 -0700

    Add a testcase for i386 LD_AUDIT
    
    This patch adds a testcase for i386 LD_AUDIT to check function return
    and parameters passed in registers.
    
    	* sysdeps/i386/Makefile (tests)[elf]: Add tst-audit3.
    	(modules-names): Add tst-auditmod3a tst-auditmod3b.
    	($(objpfx)tst-audit3): New rule.
    	($(objpfx)tst-audit3.out): Likewise.
    	* sysdeps/i386/tst-audit3.c: New file.
    	* sysdeps/i386/tst-audit3.h: Likewise.
    	* sysdeps/i386/tst-auditmod3a.c: Likewise.
    	* sysdeps/i386/tst-auditmod3b.c: Likewise.

-----------------------------------------------------------------------
Comment 25 Sourceware Commits 2015-08-03 04:47:12 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  ee31b78f6a17c08ff274f045b5c694175d0604fe (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ee31b78f6a17c08ff274f045b5c694175d0604fe

commit ee31b78f6a17c08ff274f045b5c694175d0604fe
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0b130c6106f777b4706985c1b21259cb0b9444de

commit 0b130c6106f777b4706985c1b21259cb0b9444de
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=208f29ab4507c0fbd05ae7b355b935df28d13bd5

commit 208f29ab4507c0fbd05ae7b355b935df28d13bd5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4edcc46a4abeb18a2bce77c822a0bbbb591cadb1

commit 4edcc46a4abeb18a2bce77c822a0bbbb591cadb1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=110b786b20852ed67e51fc2e17142f2ec7637438

commit 110b786b20852ed67e51fc2e17142f2ec7637438
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d90c533eb936ec65456c7a07ed921b5c04c00d2b

commit d90c533eb936ec65456c7a07ed921b5c04c00d2b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2fede219d1005f41a04aab125ec49b7c1456236f

commit 2fede219d1005f41a04aab125ec49b7c1456236f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a538a8e9905c07a3a60b998e31b8c5ac73a4a58

commit 3a538a8e9905c07a3a60b998e31b8c5ac73a4a58
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=69acbbd5ca5a54520cfc107bacc3b71e69ec0d2d

commit 69acbbd5ca5a54520cfc107bacc3b71e69ec0d2d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2b58e5d85955174dde6a9304002adb79d2681ca3

commit 2b58e5d85955174dde6a9304002adb79d2681ca3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5d7a32c16a65d27b73d01556a30fb138338639f1

commit 5d7a32c16a65d27b73d01556a30fb138338639f1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=da0e27c6c7266df2107c7a4825cf2eb2d6360d28

commit da0e27c6c7266df2107c7a4825cf2eb2d6360d28
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a7be9410184a405f4f1347302afe0b625146cdab

commit a7be9410184a405f4f1347302afe0b625146cdab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2f99aa146788d958bf202ce51e070c31af84a570

commit 2f99aa146788d958bf202ce51e070c31af84a570
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	* sysdeps/x86/cpu-features-offsets.sym: New file.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Removed.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.c: Rewrite.
    	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0

commit fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 9 09:30:09 2015 -0700

    Improve bndmov encoding with zero displacement
    
    If x86-64 assembler doesn't support MPX, we encode bndmov instruction by
    hand.  When displacement is zero, assembler generates shorter encoding.
    This patch improves bndmov encoding with zero displacement so that ld.so
    is identical when using assemblers with and without MPX support.
    
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Improve
    	bndmov encoding with zero displacement.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e4fc7f67f6695f294ae759a6b540f5d08a56f0c

commit 9e4fc7f67f6695f294ae759a6b540f5d08a56f0c
Author: Igor Zamyatin <igor.zamyatin@intel.com>
Date:   Thu Jul 9 06:50:12 2015 -0700

    Preserve bound registers for pointer pass/return
    
    We need to save/restore bound registers and add a BND prefix before
    branches in _dl_runtime_profile so that bound registers for pointer
    pass and return are preserved when LD_AUDIT is used.
    
    	[BZ #18134]
    	* sysdeps/i386/configure.ac: Set HAVE_MPX_SUPPORT.
    	* sysdeps/i386/configure: Regenerated.
    	* sysdeps/i386/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_profile): Save and restore Intel MPX return bound
    	registers when calling _dl_call_pltexit.  Add
    	PRESERVE_BND_REGS_PREFIX before return.
    	* sysdeps/i386/link-defines.sym (LRV_BND0_OFFSET): New.
    	(LRV_BND1_OFFSET): Likewise.
    	* sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and
    	lrv_bnd1.
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
    	typo in bndmov encoding.
    	* sysdeps/x86_64/dl-trampoline.h: Properly save and restore
    	Intel MPX bound registers.  Add PRESERVE_BND_REGS_PREFIX before
    	branch instructions to preserve bounds.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b15f277bac14482c8b2dda4931ebf919644932fa

commit b15f277bac14482c8b2dda4931ebf919644932fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Mar 16 14:58:43 2015 -0700

    Preserve bound registers in _dl_runtime_resolve
    
    We need to add a BND prefix before indirect branch at the end of
    _dl_runtime_resolve to preserve bound registers.
    
    	[BZ #18134]
    	* sysdeps/x86_64/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_resolve): Add a BND prefix before indirect branch.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=20f87a053b1e6a9106851f764c205d59fd4b6879

commit 20f87a053b1e6a9106851f764c205d59fd4b6879
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:23:24 2015 -0700

    Add and use sysdeps/i386/link-defines.sym
    
    Define macros for fields in La_i86_regs and La_i86_retval and use them
    in dl-trampoline.S, instead of hardcoded values.
    
    	* sysdeps/i386/Makefile (gen-as-const-headers)[elf]: Add
    	link-defines.sym.
    	* sysdeps/i386/dl-trampoline.S: Include <link-defines.h>.
    	(_dl_runtime_profile): Use LONG_DOUBLE_SIZE, LRV_SIZE,
    	LRV_EAX_OFFSET, LRV_EDX_OFFSET, LRV_ST0_OFFSET, LRV_ST1_OFFSET
    	and LR_SIZE.
    	* sysdeps/i386/link-defines.sym: New file.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d6fd297566e2389ab855325754bcb25f604c6b7d

commit d6fd297566e2389ab855325754bcb25f604c6b7d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:09:16 2015 -0700

    Add a testcase for i386 LD_AUDIT
    
    This patch adds a testcase for i386 LD_AUDIT to check function return
    and parameters passed in registers.
    
    	* sysdeps/i386/Makefile (tests)[elf]: Add tst-audit3.
    	(modules-names): Add tst-auditmod3a tst-auditmod3b.
    	($(objpfx)tst-audit3): New rule.
    	($(objpfx)tst-audit3.out): Likewise.
    	* sysdeps/i386/tst-audit3.c: New file.
    	* sysdeps/i386/tst-audit3.h: Likewise.
    	* sysdeps/i386/tst-auditmod3a.c: Likewise.
    	* sysdeps/i386/tst-auditmod3b.c: Likewise.

-----------------------------------------------------------------------
Comment 26 Sourceware Commits 2015-08-03 04:50:33 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  ce46ab8d386c38d9ab57feac89a4bd2d37fddd03 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ce46ab8d386c38d9ab57feac89a4bd2d37fddd03

commit ce46ab8d386c38d9ab57feac89a4bd2d37fddd03
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=754285d225c6749bb4b9474f9e2ae6d6cb265f92

commit 754285d225c6749bb4b9474f9e2ae6d6cb265f92
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5fc35aad652764fbb04a073039d08c0d43f67c67

commit 5fc35aad652764fbb04a073039d08c0d43f67c67
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=81b538119e612151b4fed682d1f4704285571a0a

commit 81b538119e612151b4fed682d1f4704285571a0a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=895cd2ed906dbc94fd62bef5b7e0971710d2579f

commit 895cd2ed906dbc94fd62bef5b7e0971710d2579f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b621b5ff5e5ac1dc297f6293dca552c6c122c6ca

commit b621b5ff5e5ac1dc297f6293dca552c6c122c6ca
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a018fe7a7229c3048dcd5765716b719905820f64

commit a018fe7a7229c3048dcd5765716b719905820f64
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dececeb4701899392f987a0d9eb92fe8fd0e9e32

commit dececeb4701899392f987a0d9eb92fe8fd0e9e32
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=18a1650a345418cc2a4c83372cb4402d0da4535d

commit 18a1650a345418cc2a4c83372cb4402d0da4535d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1c1d5084bb4de396487418ca2fd96538e489100e

commit 1c1d5084bb4de396487418ca2fd96538e489100e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

-----------------------------------------------------------------------
Comment 27 Sourceware Commits 2015-08-03 17:21:01 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  5b5763b34b5c12c1c41315f0e823660d8bd5c698 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5b5763b34b5c12c1c41315f0e823660d8bd5c698

commit 5b5763b34b5c12c1c41315f0e823660d8bd5c698
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 3 08:00:40 2015 -0700

    Rename init-arch.c  to dl-get-cpu-features.c
    
    Add testcases for __get_cpu_features

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=83cf75b556f9b8dcbd95541a276ee9dfc5761c4f

commit 83cf75b556f9b8dcbd95541a276ee9dfc5761c4f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=708f2aac905ea757bcb6ff23532b6ccfc406236f

commit 708f2aac905ea757bcb6ff23532b6ccfc406236f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=26d4813c6a5bfda63b578f83670f236cbf1c13fe

commit 26d4813c6a5bfda63b578f83670f236cbf1c13fe
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3f2511ec570058d78256d4a9523285a4089b7ed9

commit 3f2511ec570058d78256d4a9523285a4089b7ed9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a83593af1006873abd1e26ea944f6cf09f072e28

commit a83593af1006873abd1e26ea944f6cf09f072e28
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b16fbdf77f3d815e19673478f32556ac8baf7d86

commit b16fbdf77f3d815e19673478f32556ac8baf7d86
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=442f3d779f4b711045eb48a8fc78016d57a9d760

commit 442f3d779f4b711045eb48a8fc78016d57a9d760
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1ca5bb347ba585e3393c654cebac0c015a08d47b

commit 1ca5bb347ba585e3393c654cebac0c015a08d47b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9fe5cccab58b5cbaf3bcec3e9154413f3330c849

commit 9fe5cccab58b5cbaf3bcec3e9154413f3330c849
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e5180480fda8fb740d5a02eb6ecbe25ff82214d4

commit e5180480fda8fb740d5a02eb6ecbe25ff82214d4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a691de50e047732d8ed7c010f8a456d67d071789

commit a691de50e047732d8ed7c010f8a456d67d071789
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=686d22be135392def2b1d2018195cac67bd19208

commit 686d22be135392def2b1d2018195cac67bd19208
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3d98f487d18379acd39c4a1db38bd192b4a9beab

commit 3d98f487d18379acd39c4a1db38bd192b4a9beab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:46:05 2015 -0700

    Update libmvec multiarch functions for <cpu-features.h>
    
    This patch updates libmvec multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* math/Makefile ($(addprefix $(objpfx), $(libm-vec-tests))):
    	Remove $(objpfx)init-arch.o.
    	* sysdeps/x86_64/fpu/Makefile (libmvec-support): Remove
    	init-arch.
    	* sysdeps/x86_64/fpu/math-tests-arch.h (avx_usable): Removed.
    	(INIT_ARCH_EXT): Defined as empty.
    	(CHECK_ARCH_EXT): Replace HAS_XXX with HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: Remove
    	__init_cpu_features call.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.S: Likewise.

-----------------------------------------------------------------------
Comment 28 Sourceware Commits 2015-08-03 19:32:29 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  f6db06d3805c47ca7f0fd0bed17d32abb02689d3 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f6db06d3805c47ca7f0fd0bed17d32abb02689d3

commit f6db06d3805c47ca7f0fd0bed17d32abb02689d3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e9df5c18b1424d0b2c6e5f848fbd0ffa4f0ccf13

commit e9df5c18b1424d0b2c6e5f848fbd0ffa4f0ccf13
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e54d30f31423f0e8c703a2dc0466bc4b492400d8

commit e54d30f31423f0e8c703a2dc0466bc4b492400d8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7448ae107ca0f19c96e0246892abb07e29949d6b

commit 7448ae107ca0f19c96e0246892abb07e29949d6b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0bbf91204e74db2c6f7a89990443c98d16ca7300

commit 0bbf91204e74db2c6f7a89990443c98d16ca7300
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ca43850f17b4b366db6c43bce86f054bd8850e3b

commit ca43850f17b4b366db6c43bce86f054bd8850e3b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=698c7e058547f634639bbf06cfb88d572adfd6de

commit 698c7e058547f634639bbf06cfb88d572adfd6de
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0622f480da5844b1f4c7f383fa71e8ed65a32264

commit 0622f480da5844b1f4c7f383fa71e8ed65a32264
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=23662bce8ea3a3b1c822e95efc71f1f8602eeaf8

commit 23662bce8ea3a3b1c822e95efc71f1f8602eeaf8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ffc7fb0b97ba9a4f97800003077ff678a235fc8f

commit ffc7fb0b97ba9a4f97800003077ff678a235fc8f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=40d3b80e0767dd3dc102d6fb544d9ef0c610c207

commit 40d3b80e0767dd3dc102d6fb544d9ef0c610c207
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6427f82096f4d75a46801672360dda2082eb1ce4

commit 6427f82096f4d75a46801672360dda2082eb1ce4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:46:05 2015 -0700

    Update libmvec multiarch functions for <cpu-features.h>
    
    This patch updates libmvec multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* math/Makefile ($(addprefix $(objpfx), $(libm-vec-tests))):
    	Remove $(objpfx)init-arch.o.
    	* sysdeps/x86_64/fpu/Makefile (libmvec-support): Remove
    	init-arch.
    	* sysdeps/x86_64/fpu/math-tests-arch.h (avx_usable): Removed.
    	(INIT_ARCH_EXT): Defined as empty.
    	(CHECK_ARCH_EXT): Replace HAS_XXX with HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: Remove
    	__init_cpu_features call.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.S: Likewise.

-----------------------------------------------------------------------
Comment 29 Sourceware Commits 2015-08-03 21:25:20 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  759b73bcbdbeb7e0cc8edc13384c0ad31f13497f (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=759b73bcbdbeb7e0cc8edc13384c0ad31f13497f

commit 759b73bcbdbeb7e0cc8edc13384c0ad31f13497f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.
    
    	* nptl/Makefile (tst-getpid2-ENV): Removed.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5549394367f8b19fd8aed34cf0db85f0f0753f17

commit 5549394367f8b19fd8aed34cf0db85f0f0753f17
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4f45bc0ac553e4ab3a5d449c61e55dacb78bc2f5

commit 4f45bc0ac553e4ab3a5d449c61e55dacb78bc2f5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3a7ed4680aaf75f2f0c47804542cf084154988a9

commit 3a7ed4680aaf75f2f0c47804542cf084154988a9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f6d7c0971ba53c505853b0aeedb2129f9097a94a

commit f6d7c0971ba53c505853b0aeedb2129f9097a94a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2b45510e7ba338c84c80339da753b1ca4ff863fd

commit 2b45510e7ba338c84c80339da753b1ca4ff863fd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9a5a445c81daf83deeeece2eaccd448bdbe9f7fc

commit 9a5a445c81daf83deeeece2eaccd448bdbe9f7fc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b98d88d43186dfe9a6686bbd787cc81ed342d03a

commit b98d88d43186dfe9a6686bbd787cc81ed342d03a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=66c038403ac1f71e71cf16b722bc7afd84618236

commit 66c038403ac1f71e71cf16b722bc7afd84618236
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f4e9ea84d63a1abefef6dc2b40c3fcd6577d250c

commit f4e9ea84d63a1abefef6dc2b40c3fcd6577d250c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=802af829d2543721124f52d1ecfc848aaecdad24

commit 802af829d2543721124f52d1ecfc848aaecdad24
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8d6a1c02b63cbf5aeb713ef3b17147a9539d91fc

commit 8d6a1c02b63cbf5aeb713ef3b17147a9539d91fc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 9 09:30:09 2015 -0700

    Improve bndmov encoding with zero displacement
    
    If x86-64 assembler doesn't support MPX, we encode bndmov instruction by
    hand.  When displacement is zero, assembler generates shorter encoding.
    This patch improves bndmov encoding with zero displacement so that ld.so
    is identical when using assemblers with and without MPX support.
    
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Improve
    	bndmov encoding with zero displacement.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a7f515a34f94e863b71ddfecddf2b10fd0f0a267

commit a7f515a34f94e863b71ddfecddf2b10fd0f0a267
Author: Igor Zamyatin <igor.zamyatin@intel.com>
Date:   Thu Jul 9 06:50:12 2015 -0700

    Preserve bound registers for pointer pass/return
    
    We need to save/restore bound registers and add a BND prefix before
    branches in _dl_runtime_profile so that bound registers for pointer
    pass and return are preserved when LD_AUDIT is used.
    
    	[BZ #18134]
    	* sysdeps/i386/configure.ac: Set HAVE_MPX_SUPPORT.
    	* sysdeps/i386/configure: Regenerated.
    	* sysdeps/i386/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_profile): Save and restore Intel MPX return bound
    	registers when calling _dl_call_pltexit.  Add
    	PRESERVE_BND_REGS_PREFIX before return.
    	* sysdeps/i386/link-defines.sym (LRV_BND0_OFFSET): New.
    	(LRV_BND1_OFFSET): Likewise.
    	* sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and
    	lrv_bnd1.
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
    	typo in bndmov encoding.
    	* sysdeps/x86_64/dl-trampoline.h: Properly save and restore
    	Intel MPX bound registers.  Add PRESERVE_BND_REGS_PREFIX before
    	branch instructions to preserve bounds.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e0bee54529c733fdb427bca0b97f78b7196fd386

commit e0bee54529c733fdb427bca0b97f78b7196fd386
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Mar 16 14:58:43 2015 -0700

    Preserve bound registers in _dl_runtime_resolve
    
    We need to add a BND prefix before indirect branch at the end of
    _dl_runtime_resolve to preserve bound registers.
    
    	[BZ #18134]
    	* sysdeps/x86_64/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_resolve): Add a BND prefix before indirect branch.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1b123bbb2e30579fe4744fc814c5f102fbd9a8d2

commit 1b123bbb2e30579fe4744fc814c5f102fbd9a8d2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:23:24 2015 -0700

    Add and use sysdeps/i386/link-defines.sym
    
    Define macros for fields in La_i86_regs and La_i86_retval and use them
    in dl-trampoline.S, instead of hardcoded values.
    
    	* sysdeps/i386/Makefile (gen-as-const-headers)[elf]: Add
    	link-defines.sym.
    	* sysdeps/i386/dl-trampoline.S: Include <link-defines.h>.
    	(_dl_runtime_profile): Use LONG_DOUBLE_SIZE, LRV_SIZE,
    	LRV_EAX_OFFSET, LRV_EDX_OFFSET, LRV_ST0_OFFSET, LRV_ST1_OFFSET
    	and LR_SIZE.
    	* sysdeps/i386/link-defines.sym: New file.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7dd3b50bbce127274989eed12b77d06bc9f3cf08

commit 7dd3b50bbce127274989eed12b77d06bc9f3cf08
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:09:16 2015 -0700

    Add a testcase for i386 LD_AUDIT
    
    This patch adds a testcase for i386 LD_AUDIT to check function return
    and parameters passed in registers.
    
    	* sysdeps/i386/Makefile (tests)[elf]: Add tst-audit3.
    	(modules-names): Add tst-auditmod3a tst-auditmod3b.
    	($(objpfx)tst-audit3): New rule.
    	($(objpfx)tst-audit3.out): Likewise.
    	* sysdeps/i386/tst-audit3.c: New file.
    	* sysdeps/i386/tst-audit3.h: Likewise.
    	* sysdeps/i386/tst-auditmod3a.c: Likewise.
    	* sysdeps/i386/tst-auditmod3b.c: Likewise.

-----------------------------------------------------------------------
Comment 30 Sourceware Commits 2015-08-03 21:36:10 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.21 has been created
        at  22ce18019f83b1f9826c32aa2ee56dc0df3fbd49 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=22ce18019f83b1f9826c32aa2ee56dc0df3fbd49

commit 22ce18019f83b1f9826c32aa2ee56dc0df3fbd49
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.
    
    	* nptl/Makefile (tst-getpid2-ENV): Removed.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f0f347fa1c5ac0bb367f1ad85fe69fbdc1d7df41

commit f0f347fa1c5ac0bb367f1ad85fe69fbdc1d7df41
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=969ca0cbde44e2c531f4fb4358da354e45a16895

commit 969ca0cbde44e2c531f4fb4358da354e45a16895
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c245d87cf4754a8553b5284206da1d15f1fbb7dc

commit c245d87cf4754a8553b5284206da1d15f1fbb7dc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1cb03e05847b1e8e68a06473f0fedf79ecf49005

commit 1cb03e05847b1e8e68a06473f0fedf79ecf49005
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0b92f51d8303a5148aa99dc101d1e73244199a61

commit 0b92f51d8303a5148aa99dc101d1e73244199a61
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=00c7c14c2131849983307800f5917c32b58d29d9

commit 00c7c14c2131849983307800f5917c32b58d29d9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b4bf7d64c8f7597cc03abd608b50064f7cca4f40

commit b4bf7d64c8f7597cc03abd608b50064f7cca4f40
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1c8f0fb6a4ebef1080e254753e6a4e6c07a66a4f

commit 1c8f0fb6a4ebef1080e254753e6a4e6c07a66a4f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=08094d48c130d3ae6182296ef3c9561ca1066b39

commit 08094d48c130d3ae6182296ef3c9561ca1066b39
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=723a5bd465082390bd9369d4f95ec11b32cf47dd

commit 723a5bd465082390bd9369d4f95ec11b32cf47dd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3d497ce3d1ab11a363c543b42737a0696329ed40

commit 3d497ce3d1ab11a363c543b42737a0696329ed40
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3dbbb788b8b59f0c88ac8eeae341f491dd739949

commit 3dbbb788b8b59f0c88ac8eeae341f491dd739949
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0fb36bf746cd24c110898a39881c88a7398e4e59

commit 0fb36bf746cd24c110898a39881c88a7398e4e59
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_ceil.S: Use
    	LOAD_RTLD_GLOBAL_RO_RDX and HAS_CPU_FEATURE (SSE4_1).
    	* sysdeps/x86_64/fpu/multiarch/s_ceilf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_floor.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_floorf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_nearbyint.S : Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_rintf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_rintf.S : Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=14fda2e2ef67727228e3b7e2dea174cac4ffd19d

commit 14fda2e2ef67727228e3b7e2dea174cac4ffd19d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/Makefile (aux): Remove init-arch.
    	* sysdeps/i386/i686/multiarch/Versions: Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86/Makefile
    	(libpthread-sysdep_routines): Remove init-arch.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	[$(subdir) == elf] (sysdep-dl-routines): Add dl-get-cpu-features.
    	[$(subdir) == elf] (sysdep-rtld-routines): Likewise.
    	[$(subdir) == elf] (sysdep_routines): Likewise.
    	[$(subdir) == elf] (elide-routines.os): Likewise.
    	[$(subdir) == elf] (tests): Add tst-get-cpu-features.
    	[$(subdir) == elf] (tests-static): Add
    	tst-get-cpu-features-static.
    	* sysdeps/x86/Versions: New file.
    	* sysdeps/x86/cpu-features-offsets.sym: Likewise.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/dl-get-cpu-features.c: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86/tst-get-cpu-features-static.c: Likewise.
    	* sysdeps/x86/tst-get-cpu-features.c: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/Makefile (aux): Remove init-arch.
    	* sysdeps/x86_64/multiarch/Versions: Removed.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Likewise.
    	* sysdeps/x86_64/multiarch/init-arch.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.h: Rewrite.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0

commit fdd3aa0b19700ab564da895a2a85bf3fdb0bedf0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jul 9 09:30:09 2015 -0700

    Improve bndmov encoding with zero displacement
    
    If x86-64 assembler doesn't support MPX, we encode bndmov instruction by
    hand.  When displacement is zero, assembler generates shorter encoding.
    This patch improves bndmov encoding with zero displacement so that ld.so
    is identical when using assemblers with and without MPX support.
    
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Improve
    	bndmov encoding with zero displacement.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e4fc7f67f6695f294ae759a6b540f5d08a56f0c

commit 9e4fc7f67f6695f294ae759a6b540f5d08a56f0c
Author: Igor Zamyatin <igor.zamyatin@intel.com>
Date:   Thu Jul 9 06:50:12 2015 -0700

    Preserve bound registers for pointer pass/return
    
    We need to save/restore bound registers and add a BND prefix before
    branches in _dl_runtime_profile so that bound registers for pointer
    pass and return are preserved when LD_AUDIT is used.
    
    	[BZ #18134]
    	* sysdeps/i386/configure.ac: Set HAVE_MPX_SUPPORT.
    	* sysdeps/i386/configure: Regenerated.
    	* sysdeps/i386/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_profile): Save and restore Intel MPX return bound
    	registers when calling _dl_call_pltexit.  Add
    	PRESERVE_BND_REGS_PREFIX before return.
    	* sysdeps/i386/link-defines.sym (LRV_BND0_OFFSET): New.
    	(LRV_BND1_OFFSET): Likewise.
    	* sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and
    	lrv_bnd1.
    	* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
    	typo in bndmov encoding.
    	* sysdeps/x86_64/dl-trampoline.h: Properly save and restore
    	Intel MPX bound registers.  Add PRESERVE_BND_REGS_PREFIX before
    	branch instructions to preserve bounds.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b15f277bac14482c8b2dda4931ebf919644932fa

commit b15f277bac14482c8b2dda4931ebf919644932fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Mar 16 14:58:43 2015 -0700

    Preserve bound registers in _dl_runtime_resolve
    
    We need to add a BND prefix before indirect branch at the end of
    _dl_runtime_resolve to preserve bound registers.
    
    	[BZ #18134]
    	* sysdeps/x86_64/dl-trampoline.S (PRESERVE_BND_REGS_PREFIX): New.
    	(_dl_runtime_resolve): Add a BND prefix before indirect branch.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=20f87a053b1e6a9106851f764c205d59fd4b6879

commit 20f87a053b1e6a9106851f764c205d59fd4b6879
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:23:24 2015 -0700

    Add and use sysdeps/i386/link-defines.sym
    
    Define macros for fields in La_i86_regs and La_i86_retval and use them
    in dl-trampoline.S, instead of hardcoded values.
    
    	* sysdeps/i386/Makefile (gen-as-const-headers)[elf]: Add
    	link-defines.sym.
    	* sysdeps/i386/dl-trampoline.S: Include <link-defines.h>.
    	(_dl_runtime_profile): Use LONG_DOUBLE_SIZE, LRV_SIZE,
    	LRV_EAX_OFFSET, LRV_EDX_OFFSET, LRV_ST0_OFFSET, LRV_ST1_OFFSET
    	and LR_SIZE.
    	* sysdeps/i386/link-defines.sym: New file.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d6fd297566e2389ab855325754bcb25f604c6b7d

commit d6fd297566e2389ab855325754bcb25f604c6b7d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 7 05:09:16 2015 -0700

    Add a testcase for i386 LD_AUDIT
    
    This patch adds a testcase for i386 LD_AUDIT to check function return
    and parameters passed in registers.
    
    	* sysdeps/i386/Makefile (tests)[elf]: Add tst-audit3.
    	(modules-names): Add tst-auditmod3a tst-auditmod3b.
    	($(objpfx)tst-audit3): New rule.
    	($(objpfx)tst-audit3.out): Likewise.
    	* sysdeps/i386/tst-audit3.c: New file.
    	* sysdeps/i386/tst-audit3.h: Likewise.
    	* sysdeps/i386/tst-auditmod3a.c: Likewise.
    	* sysdeps/i386/tst-auditmod3b.c: Likewise.

-----------------------------------------------------------------------
Comment 31 Sourceware Commits 2015-08-05 14:34:33 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  32cf01e21b3e2ae1b556298560b0d1f323bb5a59 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=32cf01e21b3e2ae1b556298560b0d1f323bb5a59

commit 32cf01e21b3e2ae1b556298560b0d1f323bb5a59
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=496b058c3d1f1644c215d2d915b2360d936acd96

commit 496b058c3d1f1644c215d2d915b2360d936acd96
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5f7b31aa9ebab6da65993c8ad25023905d821882

commit 5f7b31aa9ebab6da65993c8ad25023905d821882
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=34d03e94a95059eea62b5100da53f1efd61ab5c9

commit 34d03e94a95059eea62b5100da53f1efd61ab5c9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6c64dfd045f681e54884b3fac5e0b5a76a9d0830

commit 6c64dfd045f681e54884b3fac5e0b5a76a9d0830
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cabe3118d5bc5345593efcc53929de830188129f

commit cabe3118d5bc5345593efcc53929de830188129f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7ee3280ac9282410773e778b1e117d9bf21e86ef

commit 7ee3280ac9282410773e778b1e117d9bf21e86ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7fd87aec8be5056a68330cf1f2d6d65d0bf31f51

commit 7fd87aec8be5056a68330cf1f2d6d65d0bf31f51
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fd7e3e782325e79dc0bb43654e98d430caa9862c

commit fd7e3e782325e79dc0bb43654e98d430caa9862c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2dc2d93a96a3bbfe6c8fab30d98e9563987815b2

commit 2dc2d93a96a3bbfe6c8fab30d98e9563987815b2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ea2954e76744fbf14f40dfdc2fe81787e3997870

commit ea2954e76744fbf14f40dfdc2fe81787e3997870
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0e70fc24701004b4f4c357ce8ac72a0baa2d59e2

commit 0e70fc24701004b4f4c357ce8ac72a0baa2d59e2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=74394f4b3cf92cfcedec7347327dd1e327eb30dd

commit 74394f4b3cf92cfcedec7347327dd1e327eb30dd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:46:05 2015 -0700

    Update libmvec multiarch functions for <cpu-features.h>
    
    This patch updates libmvec multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* math/Makefile ($(addprefix $(objpfx), $(libm-vec-tests))):
    	Remove $(objpfx)init-arch.o.
    	* sysdeps/x86_64/fpu/Makefile (libmvec-support): Remove
    	init-arch.
    	* sysdeps/x86_64/fpu/math-tests-arch.h (avx_usable): Removed.
    	(INIT_ARCH_EXT): Defined as empty.
    	(CHECK_ARCH_EXT): Replace HAS_XXX with HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: Remove
    	__init_cpu_features call.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.S: Likewise.

-----------------------------------------------------------------------
Comment 32 Sourceware Commits 2015-08-05 14:35:17 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/2.22 has been created
        at  075bba85b93e468017941bca6f4dff8d376fb3ac (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=075bba85b93e468017941bca6f4dff8d376fb3ac

commit 075bba85b93e468017941bca6f4dff8d376fb3ac
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3f1322c21b8f0dd428a9e25c54bc54475d76ad6f

commit 3f1322c21b8f0dd428a9e25c54bc54475d76ad6f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=58009cc71be6ef282cc60414f394c2012182e8a8

commit 58009cc71be6ef282cc60414f394c2012182e8a8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a5e1414320f79ff0bd8f2f79807b6abc14fa8c3e

commit a5e1414320f79ff0bd8f2f79807b6abc14fa8c3e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d1b5c951dc11037fd132ecd38ef643758a66f359

commit d1b5c951dc11037fd132ecd38ef643758a66f359
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3d688eaab39b238aa001cbb83705eb301dd72478

commit 3d688eaab39b238aa001cbb83705eb301dd72478
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c7a97fb441e86c532676a36677a4a4377c9d0957

commit c7a97fb441e86c532676a36677a4a4377c9d0957
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=04e6c81190455506f3b7414b9b2c96fe246f4363

commit 04e6c81190455506f3b7414b9b2c96fe246f4363
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:41:20 2015 -0700

    Align stack when calling __errno_location
    
    We should align stack to 16 bytes when calling __errno_location.
    
    	[BZ #18661]
    	* sysdeps/x86_64/fpu/s_cosf.S (__cosf): Align stack to 16 bytes
    	when calling __errno_location.
    	* sysdeps/x86_64/fpu/s_sincosf.S (__sincosf): Likewise.
    	* sysdeps/x86_64/fpu/s_sinf.S (__sinf): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=979f79467407fcf2537b53a168a1a18f3b540fdd

commit 979f79467407fcf2537b53a168a1a18f3b540fdd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:40:25 2015 -0700

    Align stack to 16 bytes when calling __gettimeofday
    
    Subtract stack by 24 bytes instead of 16 bytes so that stack is aligned
    to 16 bytes when calling __gettimeofday.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
    	(__lll_timedwait_tid): Align stack to 16 bytes when calling
    	__gettimeofday.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=04d16c095375e902063b3ef356826569ef06543a

commit 04d16c095375e902063b3ef356826569ef06543a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Jul 12 14:38:58 2015 -0700

    Align stack to 16 bytes when calling __setcontext
    
    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
    when calling __setcontext.
    
    	[BZ #18661]
    	* sysdeps/unix/sysv/linux/x86_64/__start_context.S
    	(__start_context): Don't use pop to restore %rdi so that stack
    	is aligned to 16 bytes when calling __setcontext.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1a17624c2f4bc14fbcea2aa7b0e2a7bb812c1434

commit 1a17624c2f4bc14fbcea2aa7b0e2a7bb812c1434
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:41:58 2015 -0700

    Compile {memcpy,strcmp}-sse2-unaligned.S only for libc
    
    {memcpy,strcmp}-sse2-unaligned.S aren't needed in ld.so.
    
    	* sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S: Compile
    	only for libc.
    	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=52e56468d7ac0e7d96effbe1950c396bfe40b75b

commit 52e56468d7ac0e7d96effbe1950c396bfe40b75b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Aug 1 07:47:16 2015 -0700

    Update x86 elision-conf.c for <cpu-features.h>
    
    This patch updates x86 elision-conf.c to use the newly defined
    HAS_CPU_FEATURE from <cpu-features.h>.
    
    	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
    	Replace HAS_RTM with HAS_CPU_FEATURE (RTM).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=927c297ef4a8ded4f74f81d2b6fcb6e12ff0fa27

commit 927c297ef4a8ded4f74f81d2b6fcb6e12ff0fa27
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:46:05 2015 -0700

    Update libmvec multiarch functions for <cpu-features.h>
    
    This patch updates libmvec multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* math/Makefile ($(addprefix $(objpfx), $(libm-vec-tests))):
    	Remove $(objpfx)init-arch.o.
    	* sysdeps/x86_64/fpu/Makefile (libmvec-support): Remove
    	init-arch.
    	* sysdeps/x86_64/fpu/math-tests-arch.h (avx_usable): Removed.
    	(INIT_ARCH_EXT): Defined as empty.
    	(CHECK_ARCH_EXT): Replace HAS_XXX with HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: Remove
    	__init_cpu_features call.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_cosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sincosf8_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf4_core.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/svml_s_sinf8_core.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=51fb7715d7d0ee666c3a24b82976f2c7379aa9de

commit 51fb7715d7d0ee666c3a24b82976f2c7379aa9de
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 16:52:19 2015 -0700

    Update i686 multiarch functions for <cpu-features.h>
    
    This patch updates i686 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE, LOAD_GOT_AND_RTLD_GLOBAL_RO and
    LOAD_FUNC_GOT_EAX from <cpu-features.h>.
    
    	* sysdeps/i386/i686/fpu/multiarch/e_expf.c: Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Likewise.
    	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fma.c: Likewise.
    	* sysdeps/i386/i686/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/i386/i686/multiarch/bcopy.S: Remove __init_cpu_features
    	call.  Merge SHARED and !SHARED.  Add LOAD_GOT_AND_RTLD_GLOBAL_RO.
    	Use LOAD_FUNC_GOT_EAX to load function address.  Replace HAS_XXX
    	with HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
    	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
    	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
    	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=23c0d903e9c3e770ef16e57230fe432e5d86bb5c

commit 23c0d903e9c3e770ef16e57230fe432e5d86bb5c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 13:41:04 2015 -0700

    Update x86_64 multiarch functions for <cpu-features.h>
    
    This patch updates x86_64 multiarch functions to use the newly defined
    HAS_CPU_FEATURE, HAS_ARCH_FEATURE and LOAD_RTLD_GLOBAL_RO_RDX from
    <cpu-features.h>.
    
    	* sysdeps/x86_64/fpu/multiarch/e_asin.c: Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/e_pow.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_ceil.S: Use
    	LOAD_RTLD_GLOBAL_RO_RDX and HAS_CPU_FEATURE (SSE4_1).
    	* sysdeps/x86_64/fpu/multiarch/s_ceilf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_floor.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_floorf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_nearbyint.S : Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_rintf.S: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_rintf.S : Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
    	* sysdeps/x86_64/multiarch/sched_cpucount.c: Likewise.
    	* sysdeps/x86_64/multiarch/strstr.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
    	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
    	* sysdeps/x86_64/multiarch/test-multiarch.c: Likewise.
    	* sysdeps/x86_64/multiarch/memcmp.S: Remove __init_cpu_features
    	call.  Add LOAD_RTLD_GLOBAL_RO_RDX.  Replace HAS_XXX with
    	HAS_CPU_FEATURE/HAS_ARCH_FEATURE (XXX).
    	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset.S: Likewise.
    	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
    	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
    	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
    	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c57cfbaadbf415ca4914faad0f1d92e1f3d0fbbc

commit c57cfbaadbf415ca4914faad0f1d92e1f3d0fbbc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 31 07:30:04 2015 -0700

    Add _dl_x86_cpu_features to rtld_global in ld.so
    
    This patch adds _dl_x86_cpu_features to rtld_global in x86 ld.so
    and initializes it early before __libc_start_main is called so that
    cpu_features is always available when it is used and we can avoid
    calling __init_cpu_features in IFUNC selectors.
    
    	* sysdeps/i386/dl-machine.h: Include <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/i386/dl-procinfo.c (_dl_x86_cpu_features): New.
    	* sysdeps/i386/i686/cacheinfo.c
    	(DISABLE_PREFERRED_MEMORY_INSTRUCTION): Removed.
    	* sysdeps/i386/i686/multiarch/Makefile (aux): Remove init-arch.
    	* sysdeps/i386/i686/multiarch/Versions: Removed.
    	* sysdeps/i386/i686/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/i386/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/unix/sysv/linux/x86/Makefile
    	(libpthread-sysdep_routines): Remove init-arch.
    	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Include
    	<sysdeps/x86_64/dl-procinfo.c> instead of
    	sysdeps/generic/dl-procinfo.c>.
    	* sysdeps/x86/Makefile [$(subdir) == csu] (gen-as-const-headers):
    	Add cpu-features-offsets.sym and rtld-global-offsets.sym.
    	[$(subdir) == elf] (sysdep-dl-routines): Add dl-get-cpu-features.
    	[$(subdir) == elf] (tests): Add tst-get-cpu-features.
    	[$(subdir) == elf] (tests-static): Add
    	tst-get-cpu-features-static.
    	* sysdeps/x86/Versions: New file.
    	* sysdeps/x86/cpu-features-offsets.sym: Likewise.
    	* sysdeps/x86/cpu-features.c: Likewise.
    	* sysdeps/x86/cpu-features.h: Likewise.
    	* sysdeps/x86/dl-get-cpu-features.c: Likewise.
    	* sysdeps/x86/libc-start.c: Likewise.
    	* sysdeps/x86/rtld-global-offsets.sym: Likewise.
    	* sysdeps/x86/tst-get-cpu-features-static.c: Likewise.
    	* sysdeps/x86/tst-get-cpu-features.c: Likewise.
    	* sysdeps/x86_64/dl-procinfo.c: Likewise.
    	* sysdeps/x86_64/cacheinfo.c (__cpuid_count): Removed.
    	Assume USE_MULTIARCH is defined and don't check it.
    	(is_intel): Replace __cpu_features with GLRO(dl_x86_cpu_features).
    	(is_amd): Likewise.
    	(max_cpuid): Likewise.
    	(intel_check_word): Likewise.
    	(__cache_sysconf): Don't call __init_cpu_features.
    	(__x86_preferred_memory_instruction): Removed.
    	(init_cacheinfo): Don't call __init_cpu_features. Replace
    	__cpu_features with GLRO(dl_x86_cpu_features).
    	* sysdeps/x86_64/dl-machine.h: <cpu-features.c>.
    	(dl_platform_init): Call init_cpu_features.
    	* sysdeps/x86_64/ldsodefs.h: Include <cpu-features.h>.
    	* sysdeps/x86_64/multiarch/Makefile (aux): Remove init-arch.
    	* sysdeps/x86_64/multiarch/Versions: Removed.
    	* sysdeps/x86_64/multiarch/cacheinfo.c: Likewise.
    	* sysdeps/x86_64/multiarch/init-arch.c: Likewise.
    	* sysdeps/x86_64/multiarch/ifunc-defines.sym (KIND_OFFSET):
    	Removed.
    	* sysdeps/x86_64/multiarch/init-arch.h: Rewrite.

-----------------------------------------------------------------------
Comment 33 Sourceware Commits 2015-08-07 21:34:08 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  63c2a8543434c56340f749781326de34c5cad7fb (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=63c2a8543434c56340f749781326de34c5cad7fb

commit 63c2a8543434c56340f749781326de34c5cad7fb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7aa1e21bec013337713ea7eb41847ec654524d28

commit 7aa1e21bec013337713ea7eb41847ec654524d28
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6704f81ff486345bd6f20e382c81641da6f18c1b

commit 6704f81ff486345bd6f20e382c81641da6f18c1b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1d38b26369935dba942e508185a6f4a237ec7306

commit 1d38b26369935dba942e508185a6f4a237ec7306
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=76a11bb924e52e25b91956f32e73e9fd1b9828a0

commit 76a11bb924e52e25b91956f32e73e9fd1b9828a0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c30f7d3a803de8de3fcba014c7d5b284a67e4cc6

commit c30f7d3a803de8de3fcba014c7d5b284a67e4cc6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c8a557ba9b07e8a97d30d0bf94c892b4187b2883

commit c8a557ba9b07e8a97d30d0bf94c892b4187b2883
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    Save and restore vector registers in x86-64 ld.so
    
    This patch initiaizes GLRO(dl_x86_xstate) in dl_platform_init to
    indicate if the processor supports SSE, AVX or AVX512.  It uses
    this information to properly save and restore vector registers in
    ld.so.  Now we can use SSE in ld.so and delete FOREIGN_CALL macros.
    
    	[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.

-----------------------------------------------------------------------
Comment 34 Sourceware Commits 2015-08-14 13:05:37 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  13d1e9650828bcd13dcfe9a60153fec97140862e (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=13d1e9650828bcd13dcfe9a60153fec97140862e

commit 13d1e9650828bcd13dcfe9a60153fec97140862e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=92c083e12b362d6c930300bbcafdb6cee418a89e

commit 92c083e12b362d6c930300bbcafdb6cee418a89e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1241be72955f31c3bc93914da267fd3fb23733ef

commit 1241be72955f31c3bc93914da267fd3fb23733ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a5cd6c827f9c9306b294e41fc85ecc8b9ffac38c

commit a5cd6c827f9c9306b294e41fc85ecc8b9ffac38c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b7b48166143da68c554a17a653d362282896b06b

commit b7b48166143da68c554a17a653d362282896b06b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=214b03b08c651ddfb44f6bfb1d9bbdda1f39fab6

commit 214b03b08c651ddfb44f6bfb1d9bbdda1f39fab6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f63476acb1d36bf032906c321dadc728043715fb

commit f63476acb1d36bf032906c321dadc728043715fb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    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, whicha 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.

-----------------------------------------------------------------------
Comment 35 Sourceware Commits 2015-08-19 12:19:12 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  8144f71023358d22d190f310983af242ce429687 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8144f71023358d22d190f310983af242ce429687

commit 8144f71023358d22d190f310983af242ce429687
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=273e8191521a2366c07fe2d30839e91bb2286ea1

commit 273e8191521a2366c07fe2d30839e91bb2286ea1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8ef5245360fcc2d2d71704c377d8c29b9b89f03b

commit 8ef5245360fcc2d2d71704c377d8c29b9b89f03b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=69894aff02a9b2fc032d8048ee14ca9e9b75d246

commit 69894aff02a9b2fc032d8048ee14ca9e9b75d246
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=33038fc1727a6933d8b4e8abbb39c1ce4d12d279

commit 33038fc1727a6933d8b4e8abbb39c1ce4d12d279
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7c4683cec8e8b407987350c6cc045794c1db6812

commit 7c4683cec8e8b407987350c6cc045794c1db6812
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8a36f3d22bc34da6c05c045276b3cd46ada2a03b

commit 8a36f3d22bc34da6c05c045276b3cd46ada2a03b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    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.

-----------------------------------------------------------------------
Comment 36 Sourceware Commits 2015-08-24 13:19:50 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  5875f918319701615f59eb6d1162751fed5f7067 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5875f918319701615f59eb6d1162751fed5f7067

commit 5875f918319701615f59eb6d1162751fed5f7067
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c3a09b3f8b092450c047d5eb2bd087860e60aab7

commit c3a09b3f8b092450c047d5eb2bd087860e60aab7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6ca39160819603e0ce06ec59afe7c39fef3889c7

commit 6ca39160819603e0ce06ec59afe7c39fef3889c7
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=af5de6b2a5115629627618d9863814342740da8a

commit af5de6b2a5115629627618d9863814342740da8a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=11a59bde269f34d786995a5738387fd1c4c1b2a9

commit 11a59bde269f34d786995a5738387fd1c4c1b2a9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=920994edb1efee963e5d8db86f6cc8493b0335d9

commit 920994edb1efee963e5d8db86f6cc8493b0335d9
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0d27ac711991ca4a2583a6570b15fa2a83de73c3

commit 0d27ac711991ca4a2583a6570b15fa2a83de73c3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    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.

-----------------------------------------------------------------------
Comment 37 Sourceware Commits 2015-08-25 11:31:43 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/plt/master has been created
        at  e50bd853837258b41ca835f37a3278dd7668f146 (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e50bd853837258b41ca835f37a3278dd7668f146

commit e50bd853837258b41ca835f37a3278dd7668f146
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 2 22:27:47 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=310872dd13d57f1aaf0f84078214e523b6cb9ead

commit 310872dd13d57f1aaf0f84078214e523b6cb9ead
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 04:49:38 2015 -0700

    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)".

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8ec59e921f3d950e9f954e128f480475567a4f63

commit 8ec59e921f3d950e9f954e128f480475567a4f63
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:56:14 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1dc3b5eb0482e95eb758f382905cac12fa8bbcf8

commit 1dc3b5eb0482e95eb758f382905cac12fa8bbcf8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:47:54 2015 -0700

    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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=7e27e06ea5cebb3a2b5a68eceb1cdabd6eaf952b

commit 7e27e06ea5cebb3a2b5a68eceb1cdabd6eaf952b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jul 29 03:44:39 2015 -0700

    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].

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=462932676678fbf82a915a280f9429825975eeca

commit 462932676678fbf82a915a280f9429825975eeca
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Jul 28 18:56:18 2015 -0700

    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).

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6e9d18d34bf7e0fc0c29e5b60d0b48ee477510e2

commit 6e9d18d34bf7e0fc0c29e5b60d0b48ee477510e2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jul 11 13:25:25 2015 -0700

    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.

-----------------------------------------------------------------------
Comment 38 Sourceware Commits 2015-08-25 11:53:00 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  f3dcae82d54e5097e18e1d6ef4ff55c2ea4e621e (commit)
      from  2d02fd07371bcd492c320cec649c6265787d794a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f3dcae82d54e5097e18e1d6ef4ff55c2ea4e621e

commit f3dcae82d54e5097e18e1d6ef4ff55c2ea4e621e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 25 04:33:54 2015 -0700

    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.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   27 ++
 sysdeps/x86_64/Makefile                            |    5 +
 sysdeps/x86_64/dl-machine.h                        |   29 +-
 sysdeps/x86_64/dl-trampoline.S                     |  462 +++----------------
 sysdeps/x86_64/dl-trampoline.h                     |  366 +++++++++++++---
 .../tst-get-cpu-features.c => x86_64/ifuncmain8.c} |    9 +-
 .../power5+/fpu/s_ceilf.S => x86_64/ifuncmod8.c}   |   27 +-
 sysdeps/x86_64/nptl/tcb-offsets.sym                |    1 -
 sysdeps/x86_64/nptl/tls.h                          |   42 +--
 9 files changed, 453 insertions(+), 515 deletions(-)
 copy sysdeps/{x86/tst-get-cpu-features.c => x86_64/ifuncmain8.c} (84%)
 copy sysdeps/{powerpc/powerpc32/power5+/fpu/s_ceilf.S => x86_64/ifuncmod8.c} (69%)
Comment 39 liqingqing 2023-12-08 09:28:16 UTC
hi all! Currently, aarch64 also support sve instruction, we found that under the lazy binding policy, dynamic loader may clobber z registers. This is because x/q/z is the same register but different length, and the file "sysdeps/aarch64/dl-trampoline.S" only resolve x and q registers, this will cause the sve functionality abnormally.
Comment 40 Florian Weimer 2023-12-08 10:37:45 UTC
(In reply to liqingqing from comment #39)
> hi all! Currently, aarch64 also support sve instruction, we found that under
> the lazy binding policy, dynamic loader may clobber z registers. This is
> because x/q/z is the same register but different length, and the file
> "sysdeps/aarch64/dl-trampoline.S" only resolve x and q registers, this will
> cause the sve functionality abnormally.

This is addressed via STO_AARCH64_VARIANT_PCS/DT_AARCH64_VARIANT_PCS, so it's not an issue for a psABI compliant toolchain.