Re: fstat suddenly return -EINVAL [Was: Bus error on makeallyesconfig, kernelbuild with HEAD]

From: Sam Ravnborg
Date: Mon Nov 08 2010 - 14:05:14 EST


> >
> fstat appears to be failing for every file (the file= line is printed
> right before the fstat; there seems to be a corresponding error for
> every file= so I'm inferring that it must always fail):
>
> $ make
> HOSTCC scripts/basic/fixdep
> file=scripts/basic/.fixdep.d
> fixdep: fstat failed: Invalid argument

But open succedd - because we see no output from that one.

> It actually seems as if the problem might be that none of these files
> actually exist:
>
> $ find scripts -iname .*.d
> $
>
> How are .d files supposed to be generated?

They are generated by kbuild.
See scripts/Kbuild.include:

# Execute the command and also postprocess generated .d dependencies file.
if_changed_dep = $(if $(strip $(any-prereq) $(arg-check) ), \
@set -e; \
$(echo-cmd) $(cmd_$(1)); \
scripts/basic/fixdep $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;\
==> rm -f $(depfile); \
mv -f $(dot-target).tmp $(dot-target).cmd)


If you delete the line marked "==>" then you should have .d files are a build.

> > From your previous posting it looks like you have some special setting
> > that impact your choice of HOST gcc.
> > Do you define HOSTCC somewhere?
> >
> I don't think I do define HOSTCC anywhere. My cross compilation
> environment is as follows,
>
> source /usr/local/angstrom/arm/environment-setup
> export ARCH=arm
> export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
So far it looks OK.

> export CC=${CROSS_COMPILE}gcc
> export CXX=${CROSS_COMPILE}g++
This part is wrong. The kernel will do this for you.
It should not cause any harm...

>
> OE_ENV_ROOT=/home/bgamari/OE/angstrom-dev
> SYSROOT=$OE_ENV_ROOT/sysroots/armv7a-angstrom-linux-gnueabi
> export LD_LIBRARY_PATH=$SYSROOT/lib:$SYSROOT/usr/lib
> export CFLAGS=-I$OE_ROOT/lib/gcc/arm-angstrom-linux-gnueabi/4.3.1/include

These looks unrelated.

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/