This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] SH: A few nptl fixups


Hi,

The attached patch removes DT_TEXTREL from libpthread.so and
fixes frame info of a few .S files.

Regards,
	kaz
--
2004-04-19  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
	Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
	info.  Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.

diff -u3prN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
--- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S	Sat Jul 12 10:28:54 2003
+++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S	Mon Apr 19 12:48:43 2004
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -33,6 +33,7 @@
 	.globl	sem_timedwait
 	.type	sem_timedwait,@function
 	.align	5
+	cfi_startproc
 sem_timedwait:
 	/* First check for cancellation.  */
 	stc	gbr, r0
@@ -59,11 +60,22 @@ sem_timedwait:
 1:
 	/* Check whether the timeout value is valid.  */
 	mov.l	r8, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r8, 0)
 	mov.l	r9, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r9, 0)
 	mov.l	r10, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r10, 0)
 	mov.l	r12, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r12, 0)
 	sts.l	pr, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (pr, 0)
 	add	#-8, r15
+	cfi_adjust_cfa_offset(8)
 	mov	r4, r8
 	mov	r5, r9
 
@@ -193,8 +205,10 @@ sem_timedwait:
 	stc	gbr, r0
 	mov.w	.Lclbuf, r1
 	mov.l	.Lunwind, r2
-	jmp	@r2
+	braf	r2
 	 mov.l	@(r0,r1), r4
+.Lunwindb:
+	cfi_endproc
 
 .L1k:
 	.word	1000
@@ -221,5 +235,5 @@ sem_timedwait:
 .Ldisable0:
 	.long	__pthread_disable_asynccancel-.Ldisable0b
 .Lunwind:
-	.long	__pthread_unwind
+	.long	HIDDEN_JUMPTARGET (__pthread_unwind)-.Lunwindb
 	.size	sem_timedwait,.-sem_timedwait
diff -u3prN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S
--- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S	Sat Mar 20 15:24:30 2004
+++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S	Mon Apr 19 12:49:01 2004
@@ -121,18 +121,10 @@ __new_sem_wait:
 	mov	#-1, r0
 9:
 	lds.l	@r15+, pr
-	cfi_adjust_cfa_offset (-4)
-	cfi_restore (pr)
 	mov.l	@r15+, r12
-	cfi_adjust_cfa_offset (-4)
-	cfi_restore (r12)
 	mov.l	@r15+, r10
-	cfi_adjust_cfa_offset (-4)
-	cfi_restore (r10)
 	rts
 	 mov.l	@r15+, r8
-	cfi_adjust_cfa_offset (-4)
-	cfi_restore (r8)
 5:
 	/* Canceled.  */
 	stc	gbr, r0
@@ -144,8 +136,9 @@ __new_sem_wait:
 	stc	gbr, r0
 	mov.w	.Lclbuf, r1
 	mov.l	.Lunwind, r2
-	jmp	@r2
+	braf	r2
 	 mov.l	@(r0,r1), r4
+.Lunwindb:
 	cfi_endproc
 
 .Lchand:
@@ -169,6 +162,6 @@ __new_sem_wait:
 .Ldisable0:
 	.long	__pthread_disable_asynccancel-.Ldisable0b
 .Lunwind:
-	.long	__pthread_unwind
+	.long	HIDDEN_JUMPTARGET (__pthread_unwind)-.Lunwindb
 	.size	__new_sem_wait,.-__new_sem_wait
 	versioned_symbol(libpthread, __new_sem_wait, sem_wait, GLIBC_2_1)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]