[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