[parisc-linux] glibc 2.3.2 patches updated, still no working sysdep-cancel

Joel Soete jsoe0708@tiscali.be
Wed, 26 Mar 2003 15:17:57 +0100


Hi Carlos,
>
>A grab your last patches and original src from ftp.gnu.org and in your patch
>glibc23-05b-hppa-sysdep, the second hunk was rejected and so I change it
>as follow:
>=====
>--- glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/sysdep.h.orig	2002-08-26 23:16:19.000000000
>+0200
>+++ glibc-2.3.2/sysdeps/unix/sysv/linux/hppa/sysdep.h	2003-03-26 12:41:50.000000000
>+0100
>@@ -101,20 +101,27 @@
>    which means
> 	ENTRY(name)
> 	DO_CALL(...)
>-	nop
> 	bv 0(2)
> 	nop
> */
> 
> #define	PSEUDO(name, syscall_name, args)				      \
>   ENTRY (name)								      \
>-  DO_CALL(syscall_name, args)					ASM_LINE_SEP  \
>-  nop
>+  DO_CALL(syscall_name, args)					ASM_LINE_SEP 
> 
> #undef	PSEUDO_END
> #define	PSEUDO_END(name)						      \
>   END (name)
> 
>+#define	PSEUDO_NOERRNO(name, syscall_name, args)			      \
>+  ENTRY (name)								      \
>+  DO_CALL_NOERRNO(syscall_name, args)				ASM_LINE_SEP 
>+
>+#undef	PSEUDO_END_NOERRNO
>+#define	PSEUDO_END_NOERRNO(name)					      \
>+  END (name)
>+ 
>+#undef JUMPTARGET
> #define JUMPTARGET(name)	name
> #define SYSCALL_PIC_SETUP	/* Nothing.  */
> 
>@@ -165,6 +172,13 @@
> 0:						ASM_LINE_SEP	\
> 	UNDOARGS_##args
> 
>+#undef	DO_CALL_NOERRNO
>+#define DO_CALL_NOERRNO(syscall_name, args)			\
>+	DOARGS_##args						\
>+	ble  0x100(%sr2,%r0)			ASM_LINE_SEP	\
>+	ldi SYS_ify (syscall_name), %r20	ASM_LINE_SEP	\
>+	UNDOARGS_##args
>+
> #define DOARGS_0 /* nothing */
> #define DOARGS_1 /* nothing */
> #define DOARGS_2 /* nothing */
>@@ -183,7 +197,7 @@
> #define UNDOARGS_5 /* nothing */
> #define UNDOARGS_6 /* nothing */
> 
>-#else
>+#else /* !__ASSEMBLER__ */
> 
> #undef INLINE_SYSCALL
> #define INLINE_SYSCALL(name, nr, args...)	({		\
>@@ -206,6 +220,35 @@
> 	__sys_res;						\
> })
> 
>+#undef INTERNAL_SYSCALL_DECL
>+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
>+
>+#undef INTERNAL_SYSCALL_ERROR_P
>+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
>+  ((unsigned long) (val) >= -4095L)
>+
>+#undef INTERNAL_SYSCALL_ERRNO
>+#define INTERNAL_SYSCALL_ERRNO(val, err)        (-(val))
>+
>+/* Similar to INLINE_SYSCALL but we don't set errno */
>+#undef INTERNAL_SYSCALL
>+#define INTERNAL_SYSCALL(name, err, nr, args...) 		\
>+({								\
>+	long __sys_res;						\
>+	{							\
>+		register unsigned long __res asm("r28");	\
>+		LOAD_ARGS_##nr(args)				\
>+		asm volatile(					\
>+			"ble  0x100(%%sr2, %%r0)\n\t"		\
>+			" ldi %1, %%r20"			\
>+			: "=r" (__res)				\
>+			: "i" (SYS_ify(name)) ASM_ARGS_##nr	\
>+			);					\
>+		__sys_res = __res;				\
>+	}							\
>+	__sys_res;						\
>+ })
>+
> #define LOAD_ARGS_0()
> #define LOAD_ARGS_1(r26)					\
> 	register unsigned long __r26 __asm__("r26") = (unsigned long)r26;	\
>=====
>
>Or do I grab bad src?
>

Well that help me to complet the rebuild of libc6; excepted that at one moment
I had to kill a 'tst-cancel-stat' because it was eating 99% of cpu usage.
As it was evidently looping, strace -p 31611 shows me hundred of thousand
messages: kill(31610, SIGRT_1)    =-1 (no such process)

hth,
    Joel

Joel


---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be