Set ebp to 0 initially
authorDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Sun, 31 Aug 2008 01:04:27 +0000 (01:04 +0000)
committerDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Sun, 31 Aug 2008 01:04:38 +0000 (01:04 +0000)
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/i386/createthread_arch.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/i386/sys/segments.h [deleted file]

index ce5b997..72196e5 100644 (file)
@@ -17,6 +17,8 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <sys/segments.h>
+
 static int
 create_thread_arch (ucontext_t *ctx, struct pthread *pd,
            const struct pthread_attr *attr, STACK_VARIABLES_PARMS)
@@ -38,7 +40,7 @@ create_thread_arch (ucontext_t *ctx, struct pthread *pd,
   *--stack_ptr = (uint32_t)pd; /* arg 1 */
   *--stack_ptr = 0; /* return addr (thread_start never returns) */
   ctx->uc_mcontext.gregs[UESP] = (greg_t)stack_ptr;
-  ctx->uc_mcontext.gregs[EBP] = (greg_t)(stack_ptr + 2); // TODO
+  ctx->uc_mcontext.gregs[EBP] = 0;
   ctx->uc_mcontext.gregs[EIP] = (greg_t)start_thread;
   ctx->uc_flags |= UC_CPU;
 
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/i386/sys/segments.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/i386/sys/segments.h
deleted file mode 100644 (file)
index 6deee36..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Declaration of segments.
-   Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _SYS_SEGMENTS_H
-#define _SYS_SEGMENTS_H 1
-
-#define IDXTOSEL(s)            ((s) << 3)
-#define SEL_GDT(s, r)  (IDXTOSEL(s) | r)
-
-#define GDT_NULL       0
-#define GDT_FS         0
-#define GDT_GS         0
-#define GDT_LDT                12
-#define GDT_LWPFS      55
-#define GDT_LWPGS      56
-
-#define SEL_XPL                0
-#define SEL_KPL                1
-#define SEL_UPL                3
-#define SEL_TI_LDT     4
-
-#define LWPGS_SEL      SEL_GDT(GDT_LWPGS, SEL_UPL)
-
-#endif /* _SYS_SEGMENTS_H */