* sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Make sure the
	compiler knows we use the ldt_entry variable and that the syscall
	modifies the memory.
This commit is contained in:
Ulrich Drepper 2003-04-20 08:25:06 +00:00
parent d63c3a7057
commit 2626ed6c9c
2 changed files with 10 additions and 2 deletions

View file

@ -1,5 +1,9 @@
2003-04-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Make sure the
compiler knows we use the ldt_entry variable and that the syscall
modifies the memory.
* internals.h: Split pthread_functions definition into...
* sysdeps/pthread/pthread-functions.h: ...new file.

View file

@ -110,7 +110,9 @@ extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t);
"int $0x80\n\t" \
USETLS_LOAD_EBX \
: "=&a" (__result) \
: USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area)); \
: USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area), \
"m" (ldt_entry) \
: "memory"); \
if (__result == 0) \
asm ("movw %w0, %%gs" :: "q" (__gs)); \
else \
@ -128,7 +130,9 @@ extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t);
"int $0x80\n\t" \
USETLS_LOAD_EBX \
: "=&a" (__result) \
: USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area)); \
: USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area), \
"m" (ldt_entry) \
: "memory"); \
if (__result == 0) \
{ \
__gs = (ldt_entry.entry_number << 3) + 3; \