Re: 2.6.22-rc4-mm2: kvm compile breakage with X86_CMPXCHG64=n

From: Dave Jones
Date: Tue Jun 12 2007 - 18:17:51 EST


On Tue, Jun 12, 2007 at 03:03:57PM -0700, Andrew Morton wrote:
> On Mon, 11 Jun 2007 23:22:24 -0400
> Dave Jones <davej@xxxxxxxxxx> wrote:
>
> > Add -Werror-implicit-function-declaration
> > This makes builds fail sooner if something is implicitly defined instead
> > of having to wait half an hour for it to fail at the linking stage.
> >
> > Signed-off-by: Dave Jones <davej@xxxxxxxxxx>
> >
> > --- linux-2.6/Makefile~ 2007-06-04 16:46:24.000000000 -0400
> > +++ linux-2.6/Makefile 2007-06-04 16:46:53.000000000 -0400
> > @@ -313,7 +313,8 @@ LINUXINCLUDE := -Iinclude \
> > CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE)
> >
> > CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> > - -fno-strict-aliasing -fno-common
> > + -fno-strict-aliasing -fno-common \
> > + -Werror-implicit-function-declaration
> > AFLAGS := -D__ASSEMBLY__
> >
> > # Read KERNELRELEASE from include/config/kernel.release (if it exists)
>
> This causes the i386 allmodconfig build to fail:

Seems to be doing its job rather effectively.

> include/linux/uaccess.h: In function 'pagefault_disable':
> include/linux/uaccess.h:23: error: implicit declaration of function '__memory_barrier'
>
> I didn't look to see why...

include/linux/compiler.h ..

/* Optimization barrier */
#ifndef barrier
# define barrier() __memory_barrier()
#endif

We shouldn't be hitting this, because barrier should be getting defined
in the compiler specific headers above..

#if __GNUC__ >= 4
# include <linux/compiler-gcc4.h>
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
# include <linux/compiler-gcc3.h>
#else
# error Sorry, your compiler is too old/not recognized.
#endif

both of those include linux/compiler-gcc.h, which defines barrier.
How strange. What compiler version is this?

Dave

--
http://www.codemonkey.org.uk
-
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/