Re: Bug#200215: some debug info... gdb and strace broken on casals?
reassign 200215 glibc
tags 200215 +patch, +sid, +sarge
thanks
Brendan O'Dea wrote:
>On Wed, Sep 03, 2003 at 10:03:25AM -0500, Drew Scott Daniels wrote:
>>On Tue, 2 Sep 2003, Colin Watson wrote:
>>
>>> > Have you had any luck figuring out why recent perl uploads FTBFS on mips?
>>>
>>> No. Sorry. I could've sworn I'd mailed a report of how far I'd got
>>> somewhere, but can't find it in my mail archives just now. Inserting a
>>> no-op PerlIO_printf(Perl_error_log, "") before the point of the crash in
>>> doio.c seemed to "fix" it, which points to dodgy memory handling
>>> elsewhere or something; don't have enough mips expertise to follow
>>> through properly though, and gdb and strace being semi-broken on
>>> casals.debian.org really doesn't help. Feel free to quote this wherever.
>
> I've managed to get a smallish test case for this bug (which appears to
> be kernel/gcc/libc related).
It is a glibc bug. The 'struct msqid_ds' definition doesn't match the
kernel one. I believe the appended patch fixes it, but haven't tested
it yet.
Btw, this means IPC is mostly broken ATM, which is probably causing
those autobuilder timeouts. I observe hanging make processes eating
cpu time on unstable.
Thiemo
2003-09-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* sysdeps/unix/sysv/linux/mips/bits/msq.h (msqid_ds): Add missing
padding.
Index: sysdeps/unix/sysv/linux/mips/bits/msq.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/bits/msq.h,v
retrieving revision 1.1
diff -u -p -r1.1 msq.h
--- sysdeps/unix/sysv/linux/mips/bits/msq.h 26 Aug 2002 01:49:55 -0000 1.1
+++ sysdeps/unix/sysv/linux/mips/bits/msq.h 18 Sep 2003 10:24:45 -0000
@@ -39,15 +39,24 @@ struct msqid_ds
{
struct ipc_perm msg_perm; /* structure describing operation permission */
__time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32
+ unsigned long int __unused1;
+#endif
__time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32
+ unsigned long int __unused2;
+#endif
__time_t msg_ctime; /* time of last change */
+#if __WORDSIZE == 32
+ unsigned long int __unused3;
+#endif
unsigned long int __msg_cbytes; /* current number of bytes on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __unused1;
- unsigned long int __unused2;
+ unsigned long int __unused4;
+ unsigned long int __unused5;
};
#ifdef __USE_MISC
Reply to: