about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/i386/Versions3
-rw-r--r--sysdeps/unix/sysv/linux/i386/i686/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscalls.list1
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h4
4 files changed, 8 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions
index 1ec868a57c..87b0167a15 100644
--- a/sysdeps/unix/sysv/linux/i386/Versions
+++ b/sysdeps/unix/sysv/linux/i386/Versions
@@ -4,4 +4,7 @@ libc {
 
     vm86;
   }
+  GLIBC_2.1 {
+    __modify_ldt; modify_ldt;
+  }
 }
diff --git a/sysdeps/unix/sysv/linux/i386/i686/sysdep.h b/sysdeps/unix/sysv/linux/i386/i686/sysdep.h
index 3f1391f8a4..4a4ee9361b 100644
--- a/sysdeps/unix/sysv/linux/i386/i686/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/i686/sysdep.h
@@ -43,7 +43,7 @@
   popl %ecx;								      \
   popl %ebx;								      \
   movl %ecx, (%eax);							      \
-  movl $-1, %eax;							      \
+  orl $-1, %eax;							      \
   jmp L(pseudo_end);
 /* A quick note: it is assumed that the call to `__errno_location' does
    not modify the stack!  */
@@ -58,7 +58,7 @@
   subl %eax, %edx;							      \
   movl errno@GOT(%ecx), %ecx;						      \
   movl %edx, (%ecx);							      \
-  movl $-1, %eax;							      \
+  orl $-1, %eax;							      \
   jmp L(pseudo_end);
 # endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */
diff --git a/sysdeps/unix/sysv/linux/i386/syscalls.list b/sysdeps/unix/sysv/linux/i386/syscalls.list
index a66ccc0a12..2c167b9bdd 100644
--- a/sysdeps/unix/sysv/linux/i386/syscalls.list
+++ b/sysdeps/unix/sysv/linux/i386/syscalls.list
@@ -1,5 +1,6 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
+modify_ldt	EXTRA	modify_ldt	3	__modify_ldt	modify_ldt
 s_chown		chown	chown		3	__syscall_chown
 s_getgroups	getgroups getgroups	2	__syscall_getgroups
 s_llseek	llseek	_llseek		5	__sys_llseek
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 8c046efed7..f9c70f410f 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -86,7 +86,7 @@
   popl %ecx;								      \
   popl %ebx;								      \
   movl %ecx, (%eax);							      \
-  movl $-1, %eax;							      \
+  orl $-1, %eax;							      \
   jmp L(pseudo_end);
 /* A quick note: it is assumed that the call to `__errno_location' does
    not modify the stack!  */
@@ -99,7 +99,7 @@
   subl %eax, %edx;							      \
   movl errno@GOT(%ecx), %ecx;						      \
   movl %edx, (%ecx);							      \
-  movl $-1, %eax;							      \
+  orl $-1, %eax;							      \
   jmp L(pseudo_end);
 #endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */