xfs
[Top] [All Lists]

Re: linux/fs/xfs/xfs_log.h:_lsn_cmp not declared __inline__ with gcc 2.9

To: Seth Mos <knuffie@xxxxxxxxx>
Subject: Re: linux/fs/xfs/xfs_log.h:_lsn_cmp not declared __inline__ with gcc 2.95
From: Chris Wedgwood <cw@xxxxxxxx>
Date: Mon, 17 Feb 2003 13:33:23 -0800
Cc: Steve Lord <lord@xxxxxxx>, linux-xfs@xxxxxxxxxxx
In-reply-to: <4.3.2.7.2.20030215192415.03a259e8@pop.xs4all.nl>
References: <20030214202615.GB25088@f00f.org> <20030214201059.GA25006@f00f.org> <1045253892.463.1183.camel@jen.americas.sgi.com> <20030214202615.GB25088@f00f.org> <4.3.2.7.2.20030215192415.03a259e8@pop.xs4all.nl>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.3.28i
On Sat, Feb 15, 2003 at 07:25:43PM +0100, Seth Mos wrote:

> Zombie proccesses. Mainly loopdiloops. Process stuck in D state. A
> very early version of 2.96 also had this IIRC.  2.95.2 was the main
> crulpit. 2.95.3 and above are safe.

I did manage to get problems with 2.95.4 but they are different to
what you describe (processed stuck in IO wait, but would come unstuck
if I remounted RO underneath them).

Perhaps we can have a comment in the source as to *why* the __inline__
is omitted for certain gcc versions, perhaps something like:


diff -u -r1.64 xfs_log.h
--- xfs_log.h   13 Feb 2003 17:41:15 -0000      1.64
+++ xfs_log.h   17 Feb 2003 21:24:05 -0000
@@ -53,8 +53,11 @@
  * endian issues in treating two 32 bit numbers as one 64 bit number
  */
 static
+/* Some versions of gcc (2.95.x for example) will miscompile if
+ * this is declared __inline__, later versions of gcc (3.2+) appear to
+ * work correctly. */
 #ifdef __GNUC__
-# if !((__GNUC__ == 2) && (__GNUC_MINOR__ == 95))
+#if !((__GNUC__ == 2) && ((__GNUC_MINOR__ == 95) || __GNUC_MINOR__ == 96))
 __inline__
 #endif
 #endif




Thanks,

  --cw


<Prev in Thread] Current Thread [Next in Thread>