This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Misalignment of local SSE variables in thread function
Brian Dessent wrote:
> Jonathan Kinsey wrote:
>
>> This is a problem that I've seen in the archives and is marked as not
>> being a problem with gcc. I'm not sure what the solution is though, the
>> simple test below runs fine using the Microsoft compiler (on windows)
>> and fails using gcc (3.4.5) compiler. There is no pthreads or glib code
>> here.
>>
>> The output shows that the second call to f(), in the thread, has a
>> misaligned s variable (which will crash in a SSE call).
>
> You should be using _beginthreadex() instead, which ensures that the
> stack is 16 byte aligned. <http://mingw.org/MinGWiki/index.php/threads>
Hi Brian,
Thanks for the link, unfortunately it doesn't work _beginthread just
calls _beginthreadex - unless there is a alignment argument I didn't see
(I tried it anyway and no luck).
If you read the end of the post at the link it says that it doesn't fix
a SSE problem that someone was having - at least I'm not on my own...
Jon