about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-05-23 11:35:38 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-05-23 11:35:38 -0700
commit5e292e4fa55177b858fa034ab5829de3f7587d76 (patch)
treeeb0bbfa39fe183ba1727054a886f9e061587a934
parent8caf8c87e13f0f7881fa181e2482fe2d06a30456 (diff)
downloadglibc-5e292e4fa55177b858fa034ab5829de3f7587d76.tar.gz
glibc-5e292e4fa55177b858fa034ab5829de3f7587d76.tar.xz
glibc-5e292e4fa55177b858fa034ab5829de3f7587d76.zip
Replace "jmp L(pseudo_end)" with "ret"
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h2
3 files changed, 11 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a2c4f4dc39..18e65a34d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
+	Replace "jmp L(pseudo_end)" with "ret".
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
+	Likewise.
+
 2012-05-23  Andreas Jaeger  <aj@suse.de>
 
 	* sysdeps/unix/sysv/linux/syscalls.list: Add poll.
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 6c4f778914..17b816d2a0 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -115,7 +115,7 @@
   negl %eax;								      \
   movl %eax, rtld_errno@GOTOFF(%ecx);					      \
   orl $-1, %eax;							      \
-  jmp L(pseudo_end);
+  ret;
 
 # elif defined _LIBC_REENTRANT
 
@@ -131,7 +131,7 @@
   negl %eax;								      \
   SYSCALL_ERROR_HANDLER_TLS_STORE (%eax, %ecx);				      \
   orl $-1, %eax;							      \
-  jmp L(pseudo_end);
+  ret;
 #  ifndef NO_TLS_DIRECT_SEG_REFS
 #   define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff)		      \
   movl src, %gs:(destoff)
@@ -149,7 +149,7 @@
   movl errno@GOT(%ecx), %ecx;						      \
   movl %eax, (%ecx);							      \
   orl $-1, %eax;							      \
-  jmp L(pseudo_end);
+  ret;
 # endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index cde8652936..1c3cbd6de9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -136,7 +136,7 @@
 0:						\
   SYSCALL_SET_ERRNO;				\
   or $-1, %RAX_LP;				\
-  jmp L(pseudo_end);
+  ret;
 # endif	/* PIC */
 
 /* The Linux/x86-64 kernel expects the system call parameters in