[patch] Use ENTRY/END in sysdeps/x86_64/nptl/pthread_spin*.S

Paul Pluzhnikov ppluzhnikov@google.com
Mon Jan 18 23:44:00 GMT 2016


On Mon, Jan 18, 2016 at 3:22 PM, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
> On Mon, Jan 18, 2016 at 2:18 PM, Carlos O'Donell <carlos@redhat.com> wrote:
>
>> It needs a public bug though.
>
> I opened https://sourceware.org/bugzilla/show_bug.cgi?id=19490

Updated patch with fixed ChangeLog, pthread_cond_{broadcast,signal}
and BZ entry added.


2016-01-18  Paul Pluzhnikov  <ppluzhnikov@google.com>

        [BZ #19490]
        * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
        (pthread_cond_broadcast): Use ENTRY/END
        * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
        (pthread_cond_signal): Likewise
        * sysdeps/x86_64/nptl/pthread_spin_lock.S (pthread_spin_lock):
        Likewise
        * sysdeps/x86_64/nptl/pthread_spin_trylock.S (pthread_spin_trylock):
        Likewise
        * sysdeps/x86_64/nptl/pthread_spin_unlock.S (pthread_spin_unlock):
        Likewise


-- 
Paul Pluzhnikov
-------------- next part --------------
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
index b32397ca..de455dd 100644
--- a/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
+++ b/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
@@ -28,10 +28,7 @@
 	.text
 
 	/* int pthread_cond_broadcast (pthread_cond_t *cond) */
-	.globl	__pthread_cond_broadcast
-	.type	__pthread_cond_broadcast, @function
-	.align	16
-__pthread_cond_broadcast:
+ENTRY(__pthread_cond_broadcast)
 
 	LIBC_PROBE (cond_broadcast, 1, %rdi)
 
@@ -174,6 +171,7 @@ __pthread_cond_broadcast:
 	movl	$SYS_futex, %eax
 	syscall
 	jmp	10b
-	.size	__pthread_cond_broadcast, .-__pthread_cond_broadcast
+END(__pthread_cond_broadcast)
+
 versioned_symbol (libpthread, __pthread_cond_broadcast, pthread_cond_broadcast,
 		  GLIBC_2_3_2)
diff --git a/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
index 84665d7..da14bc3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
+++ b/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
@@ -28,11 +28,7 @@
 
 	.text
 
-	/* int pthread_cond_signal (pthread_cond_t *cond) */
-	.globl	__pthread_cond_signal
-	.type	__pthread_cond_signal, @function
-	.align	16
-__pthread_cond_signal:
+ENTRY(__pthread_cond_signal)
 
 	LIBC_PROBE (cond_signal, 1, %rdi)
 
@@ -159,6 +155,7 @@ __pthread_cond_signal:
 	cmovne	%eax, %esi
 	callq	__lll_unlock_wake
 	jmp	6b
-	.size	__pthread_cond_signal, .-__pthread_cond_signal
+END(__pthread_cond_signal)
+
 versioned_symbol (libpthread, __pthread_cond_signal, pthread_cond_signal,
 		  GLIBC_2_3_2)
diff --git a/sysdeps/x86_64/nptl/pthread_spin_lock.S b/sysdeps/x86_64/nptl/pthread_spin_lock.S
index c9b9424..b871241 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_lock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_lock.S
@@ -16,11 +16,9 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <lowlevellock.h>
+#include <sysdep.h>
 
-	.globl	pthread_spin_lock
-	.type	pthread_spin_lock,@function
-	.align	16
-pthread_spin_lock:
+ENTRY(pthread_spin_lock)
 1:	LOCK
 	decl	0(%rdi)
 	jne	2f
@@ -33,4 +31,4 @@ pthread_spin_lock:
 	cmpl	$0, 0(%rdi)
 	jg	1b
 	jmp	2b
-	.size	pthread_spin_lock,.-pthread_spin_lock
+END(pthread_spin_lock)
diff --git a/sysdeps/x86_64/nptl/pthread_spin_trylock.S b/sysdeps/x86_64/nptl/pthread_spin_trylock.S
index fc74d77..c9c5317 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_trylock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_trylock.S
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <pthread-errnos.h>
+#include <sysdep.h>
 
 
 #ifdef UP
@@ -25,10 +26,7 @@
 # define LOCK lock
 #endif
 
-	.globl	pthread_spin_trylock
-	.type	pthread_spin_trylock,@function
-	.align	16
-pthread_spin_trylock:
+ENTRY(pthread_spin_trylock)
 	movl	$1, %eax
 	xorl	%ecx, %ecx
 	LOCK
@@ -36,4 +34,4 @@ pthread_spin_trylock:
 	movl	$EBUSY, %eax
 	cmovel	%ecx, %eax
 	retq
-	.size	pthread_spin_trylock,.-pthread_spin_trylock
+END(pthread_spin_trylock)
diff --git a/sysdeps/x86_64/nptl/pthread_spin_unlock.S b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
index e341018..188de2e 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_unlock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
@@ -16,14 +16,13 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-	.globl	pthread_spin_unlock
-	.type	pthread_spin_unlock,@function
-	.align	16
-pthread_spin_unlock:
+#include <sysdep.h>
+
+ENTRY(pthread_spin_unlock)
 	movl	$1, (%rdi)
 	xorl	%eax, %eax
 	retq
-	.size	pthread_spin_unlock,.-pthread_spin_unlock
+END(pthread_spin_unlock)
 
 	/* The implementation of pthread_spin_init is identical.  */
 	.globl	pthread_spin_init


More information about the Libc-alpha mailing list