* miscfuncs.cc (thread_wrapper): Make sure stack is 16 byte aligned
to make gcc-3 compiled pthread applications happy.
This commit is contained in:
parent
df8c8e18eb
commit
cde9b54e71
@ -1,3 +1,8 @@
|
|||||||
|
2012-01-09 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* miscfuncs.cc (thread_wrapper): Make sure stack is 16 byte aligned
|
||||||
|
to make gcc-3 compiled pthread applications happy.
|
||||||
|
|
||||||
2012-01-08 Christopher Faylor <me.cygwin2011@cgf.cx>
|
2012-01-08 Christopher Faylor <me.cygwin2011@cgf.cx>
|
||||||
|
|
||||||
* dtable.cc (dtable::stdio_init): Always initialize console when we
|
* dtable.cc (dtable::stdio_init): Always initialize console when we
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* miscfuncs.cc: misc funcs that don't belong anywhere else
|
/* miscfuncs.cc: misc funcs that don't belong anywhere else
|
||||||
|
|
||||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
2005, 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
|
2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
|
||||||
|
|
||||||
This file is part of Cygwin.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
@ -525,6 +525,10 @@ thread_wrapper (VOID *arg)
|
|||||||
subl $4, %%ebx # Subtract another 4 bytes \n\
|
subl $4, %%ebx # Subtract another 4 bytes \n\
|
||||||
movl %%ebx, %%esp # Set esp \n\
|
movl %%ebx, %%esp # Set esp \n\
|
||||||
xorl %%ebp, %%ebp # Set ebp to 0 \n\
|
xorl %%ebp, %%ebp # Set ebp to 0 \n\
|
||||||
|
# Make gcc 3.x happy and align the stack so that it is \n\
|
||||||
|
# 16 byte aligned right before the final call opcode. \n\
|
||||||
|
andl $-16, %%esp # 16 bit align \n\
|
||||||
|
addl $-12, %%esp # 12 bytes + 4 byte arg = 16 \n\
|
||||||
# Now we moved to the new stack. Save thread func address\n\
|
# Now we moved to the new stack. Save thread func address\n\
|
||||||
# and thread arg on new stack \n\
|
# and thread arg on new stack \n\
|
||||||
pushl %%ecx # Push thread arg onto stack \n\
|
pushl %%ecx # Push thread arg onto stack \n\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user