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 libc/12123] SIGBUS on strstr_sse42 due to bad alignment


http://sourceware.org/bugzilla/show_bug.cgi?id=12123

--- Comment #21 from throctukes at gmail dot com 2010-10-29 15:43:28 UTC ---
(In reply to comment #18)
> We use gcc 4.3 to build glibc in i686-linux, and we use gcc 4.5.1 to build
> x86_64-linux, so that may make a difference, and maybe that's why we only saw
> the problem in i686-linux. What compiler are you using?
> With gcc 4.5.1, strstr_sse42 starts this way:
>  130:   48 89 5c 24 d0          mov    %rbx,-0x30(%rsp)
>  135:   4c 89 6c 24 e8          mov    %r13,-0x18(%rsp)
>  13a:   48 89 fb                mov    %rdi,%rbx
>  13d:   48 89 6c 24 d8          mov    %rbp,-0x28(%rsp)
>  142:   4c 89 64 24 e0          mov    %r12,-0x20(%rsp)
>  147:   49 89 f5                mov    %rsi,%r13
>  14a:   4c 89 74 24 f0          mov    %r14,-0x10(%rsp)
>  14f:   4c 89 7c 24 f8          mov    %r15,-0x8(%rsp)
>  154:   48 83 ec 58             sub    $0x58,%rsp
> 
> So it expects stacks 4w aligned, the default in gcc. If you have problems in
> x86_64 about bad alignment on strstr_sse42, you should revise that your code
> maintains the stack aligned 4w.

I've been using the libc6 from the Ubuntu repositories, but even recompiling
glibc from sources with gcc 4.4 and 4.5 makes no difference.

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


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