mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-24 14:41:06 +08:00
Update.
2003-03-14 Ulrich Drepper <drepper@redhat.com> * tst-fork4.c: Use test-skeleton.c. * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined. * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
This commit is contained in:
parent
42c8f44c05
commit
e22a221d6b
nptl
@ -1,3 +1,7 @@
|
||||
2003-03-14 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* tst-fork4.c: Use test-skeleton.c.
|
||||
|
||||
2003-03-14 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* init.c: Fix typo "#eli" for "#else".
|
||||
@ -39,6 +43,9 @@
|
||||
|
||||
2003-03-14 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
|
||||
* sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
|
||||
|
||||
* pthread_create.c (start_thread): setjmp is expected to return 0.
|
||||
|
||||
* sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
|
||||
|
@ -352,6 +352,20 @@ union user_desc_init
|
||||
}})
|
||||
|
||||
|
||||
/* Call the user-provided thread function. */
|
||||
#define CALL_THREAD_FCT(descr) \
|
||||
({ void *__res; \
|
||||
int __ignore1, __ignore2; \
|
||||
asm volatile ("subl $12, %%esp\n\t" \
|
||||
"pushl %%gs:%P4\n\t" \
|
||||
"call *%%gs:%P3\n\t" \
|
||||
"addl $16, %%esp" \
|
||||
: "=a" (__res), "=c" (__ignore1), "=d" (__ignore2) \
|
||||
: "i" (offsetof (struct pthread, start_routine)), \
|
||||
"i" (offsetof (struct pthread, arg))); \
|
||||
__res; })
|
||||
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
||||
#endif /* tls.h */
|
||||
|
@ -24,8 +24,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
pthread_t me = pthread_self ();
|
||||
|
||||
@ -58,3 +59,6 @@ main (void)
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define TEST_FUNCTION do_test ()
|
||||
#include "../test-skeleton.c"
|
||||
|
Loading…
x
Reference in New Issue
Block a user