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/19679] gcc-4.9.3 C++ exception handling broken due to unaligned stack


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

--- Comment #2 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, master has been updated
       via  8d9c92017d85f23ba6a2b3614b2f2bcf1820d6f0 (commit)
      from  eab5028860f8e20c543bccb2d7cc100d167ead34 (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=8d9c92017d85f23ba6a2b3614b2f2bcf1820d6f0

commit 8d9c92017d85f23ba6a2b3614b2f2bcf1820d6f0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Feb 19 15:43:45 2016 -0800

    [x86_64] Set DL_RUNTIME_UNALIGNED_VEC_SIZE to 8

    Due to GCC bug:

       https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066

    __tls_get_addr may be called with 8-byte stack alignment.  Although
    this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't assume
    that stack will be always aligned at 16 bytes.  Since SSE optimized
    memory/string functions with aligned SSE register load and store are
    used in the dynamic linker, we must set DL_RUNTIME_UNALIGNED_VEC_SIZE
    to 8 so that _dl_runtime_resolve_sse will align the stack before
    calling _dl_fixup:

    Dump of assembler code for function _dl_runtime_resolve_sse:
       0x00007ffff7deea90 <+0>: push   %rbx
       0x00007ffff7deea91 <+1>: mov    %rsp,%rbx
       0x00007ffff7deea94 <+4>: and    $0xfffffffffffffff0,%rsp
                                    ^^^^^^^^^^^ Align stack to 16 bytes
       0x00007ffff7deea98 <+8>: sub    $0x100,%rsp
       0x00007ffff7deea9f <+15>:        mov    %rax,0xc0(%rsp)
       0x00007ffff7deeaa7 <+23>:        mov    %rcx,0xc8(%rsp)
       0x00007ffff7deeaaf <+31>:        mov    %rdx,0xd0(%rsp)
       0x00007ffff7deeab7 <+39>:        mov    %rsi,0xd8(%rsp)
       0x00007ffff7deeabf <+47>:        mov    %rdi,0xe0(%rsp)
       0x00007ffff7deeac7 <+55>:        mov    %r8,0xe8(%rsp)
       0x00007ffff7deeacf <+63>:        mov    %r9,0xf0(%rsp)
       0x00007ffff7deead7 <+71>:        movaps %xmm0,(%rsp)
       0x00007ffff7deeadb <+75>:        movaps %xmm1,0x10(%rsp)
       0x00007ffff7deeae0 <+80>:        movaps %xmm2,0x20(%rsp)
       0x00007ffff7deeae5 <+85>:        movaps %xmm3,0x30(%rsp)
       0x00007ffff7deeaea <+90>:        movaps %xmm4,0x40(%rsp)
       0x00007ffff7deeaef <+95>:        movaps %xmm5,0x50(%rsp)
       0x00007ffff7deeaf4 <+100>:       movaps %xmm6,0x60(%rsp)
       0x00007ffff7deeaf9 <+105>:       movaps %xmm7,0x70(%rsp)

        [BZ #19679]
        * sysdeps/x86_64/dl-trampoline.S (DL_RUNIME_UNALIGNED_VEC_SIZE):
        Renamed to ...
        (DL_RUNTIME_UNALIGNED_VEC_SIZE): This.  Set to 8.
        (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ...
        (DL_RUNTIME_RESOLVE_REALIGN_STACK): This.  Updated.
        (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ...
        (DL_RUNTIME_RESOLVE_REALIGN_STACK): This.
        * sysdeps/x86_64/dl-trampoline.h
        (DL_RUNIME_RESOLVE_REALIGN_STACK): Renamed to ...
        (DL_RUNTIME_RESOLVE_REALIGN_STACK): This.

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

Summary of changes:
 ChangeLog                      |   14 ++++++++++++++
 sysdeps/x86_64/dl-trampoline.S |   20 ++++++++++++--------
 sysdeps/x86_64/dl-trampoline.h |    6 +++---
 3 files changed, 29 insertions(+), 11 deletions(-)

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