Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2004-04-30 17:27:27 +0400
committerCorinna Vinschen <corinna@vinschen.de>2004-04-30 17:27:27 +0400
commit72f3756e0705fe039b9005a857c23739f6944521 (patch)
treefdb9dabed82f9e16ba420fc872e66e133c509fa5
parent6194cf4a4b63c4c7bf8b2ee12f1d9b033de22171 (diff)
* init.cc (threadfunc_fe): Hack to make thread stacks always 16
byte aligned.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/init.cc2
2 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 1417814d7..e07a3a7f9 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-30 DJ Delorie <dj@redhat.com>
+
+ * init.cc (threadfunc_fe): Hack to make thread stacks always 16
+ byte aligned.
+
2004-04-21 Yitzchak Scott-Thoennes <sthoenna@efn.org>
* syscalls.cc (lseek64): Fix debug_printf format string.
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc
index af8c0ea39..9ba585ecb 100644
--- a/winsup/cygwin/init.cc
+++ b/winsup/cygwin/init.cc
@@ -27,6 +27,8 @@ HANDLE sync_startup;
static void WINAPI
threadfunc_fe (VOID *arg)
{
+ (void)__builtin_return_address(1);
+ asm volatile ("andl $-16,%%esp" ::: "%esp");
_cygtls::call ((DWORD (*) (void *, void *)) (((char **) _tlsbase)[OLDFUNC_OFFSET]), arg);
}