2003-02-27 05:05:17

by Mike Hayward

[permalink] [raw]
Subject: 2.4.19 corrupt file system, 2.4.20 Makefile problem

I've been running 2.4.19 for quite awhile, but today it locked up, had
to be hard rebooted, and trashed my ext3 file system. Something about
a seemingly infinite number of Duplicate/Bad Blocks from fsck even
though the hard drive is fine. I assumed with the journal the file
system would be rock solid, but ... I'm hoping 2.4.20 proves more
stable; has anyone else seen 2.4.19 trash the hard drive?

2.4.20 doesn't build on my RH7.2 box which uses gcc 2.96 due to a mod
to the Makefile which I just undid and subsequently compiled just
fine. Without said line, stdarg.h (which isn't part of the linux
kernel includes) is not found since -nostdinc probably removes *all*
include directories not explicitly specified, including:
/usr/lib/gcc-lib/i386-redhat-linux/2.96/include

---New make line---
kbuild_2_4_nostdinc := -nostdinc -iwithprefix include

---Old make line---
kbuild_2_4_nostdinc := -nostdinc $(shell $(CC) -print-search-dirs
| sed -ne 's/install: \(.*\)/-I \1include/gp')

If stdarg.h doesn't belong in the kernel distribution, perhaps the
configure or make process could do some checking to make sure the
appropriate include directory for stdarg.h is included in that
variable?

- Mike


2003-02-27 12:04:35

by Denis Vlasenko

[permalink] [raw]
Subject: Re: 2.4.19 corrupt file system, 2.4.20 Makefile problem

On 27 February 2003 07:13, Mike Hayward wrote:
> I've been running 2.4.19 for quite awhile, but today it locked up,
> had to be hard rebooted, and trashed my ext3 file system. Something
> about a seemingly infinite number of Duplicate/Bad Blocks from fsck
> even though the hard drive is fine. I assumed with the journal the
> file system would be rock solid, but ... I'm hoping 2.4.20 proves
> more stable; has anyone else seen 2.4.19 trash the hard drive?

Journalling saves you from data loss due to abrupt power off.
No filesystem will ever save you from silent data corruption
due to failing hardware or from bugs in filesystem code itself.

> 2.4.20 doesn't build on my RH7.2 box which uses gcc 2.96 due to a mod
> to the Makefile which I just undid and subsequently compiled just
> fine. Without said line, stdarg.h (which isn't part of the linux
> kernel includes) is not found since -nostdinc probably removes *all*
> include directories not explicitly specified, including:
> /usr/lib/gcc-lib/i386-redhat-linux/2.96/include
>
> ---New make line---
> kbuild_2_4_nostdinc := -nostdinc -iwithprefix include
>
> ---Old make line---
> kbuild_2_4_nostdinc := -nostdinc $(shell $(CC) -print-search-dirs
>
> | sed -ne 's/install: \(.*\)/-I \1include/gp')
>
> If stdarg.h doesn't belong in the kernel distribution, perhaps the
> configure or make process could do some checking to make sure the
> appropriate include directory for stdarg.h is included in that
> variable?

IIRC this can happen if your gcc is in non-standard location.
Curiously, it will work just fine for 99,9% of other source packages,
but not the kernel.

Instead of playing with makefiles I got away with:

GCC_EXEC_PREFIX=/path/to/gcc-3.2/lib/gcc-lib make ....
--
vda