Re: wierd problem with 'make dep'

Ralf Baechle (ralf@cobaltmicro.com)
Thu, 2 Oct 1997 09:08:51 -0700 (PDT)


> On Wed, 1 Oct 1997, Richard A. Soderberg wrote:
>
> > This would be a sig11 error (128+11=139). Sig11 is almost always
> > hardware, and often memory chips failing or other. Soemone will send you
> > the URL for the more official site, I'm sure.. Did you change any hardware
> > recently?
> >
> > Richard
>
> Are these problems happening when the source is on an NFS-mounted
> directory?
>
> I was plagued with these during testing of the knfs server, and was able
> to trace it to an odd race condition. If you replace the back-ticked
> command substitution with a seperate step that actually writes out a file,
> then have mkdep read that file afterwards, I'll bet it goes away.
>
> However, the compile generally fails later on due to d_entry wierdness
> (at least Bill Hawes thinks that is the underlying cause)..
>
> The Sig11 was caused by mkdep getting real lost on what turned out to be a
> truncated input list. Put a printf statement into mkdep and take a look
> at what it's being fed when it blows up.

There is another bug in mkdep. mkdep mmap(2) the file to work on. The
algorithem it uses may access upto 6 bytes beyond the end of the mapped
file. If those 6 bytes happen to be on the following page, the kernel
will send mkdep into the kingdom of happy signals. This however only
happens for more strictly standard conforming implementations of mmap
(like when crosscompiling on Solaris or IRIX); by my interpretation
Linux's isn't.

Ralf