This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/15128] dynamic loader may clobber floating-point parameters on AArch64


https://sourceware.org/bugzilla/show_bug.cgi?id=15128

--- Comment #29 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
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.

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

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]