Re: 2.6.22-rc1-mm1

From: Andrew Morton
Date: Wed May 16 2007 - 14:04:33 EST


On Wed, 16 May 2007 18:40:47 +0100
mel@xxxxxxxxx (Mel Gorman) wrote:

> On (16/05/07 08:16), H. Peter Anvin didst pronounce:
> > Andy Whitcroft wrote:
> > > Getting this on both x86 and x86_64 boxes, they are the older boxen so
> > > likely older compilers:
> >
> > Please give the gcc version number.
> >
> > > CC arch/x86_64/boot/memory.o
> > > arch/i386/boot/memory.c: In function `detect_memory':
> > > arch/i386/boot/memory.c:32: error: can't find a register in class `DREG'
> > > while reloading `asm'
> > >
> > > Seems to come from git-netsetup, but that tree isn't pulled into your
> > > git version of -mm so I can't be more specific.
> >
> > Does the following patch work for you?
> >
>
> With the patch, elm3b6 from test.kernel.org builds and boots. It's
> x86_64. elm3b132 which is x86 fails with
>
> CC arch/i386/boot/video-bios.o
> HOSTCC arch/i386/boot/tools/build
> AS arch/i386/boot/compressed/head.o
> CC arch/i386/boot/compressed/misc.o
> OBJCOPY arch/i386/boot/compressed/vmlinux.bin
> LD arch/i386/boot/setup.elf
> ld:arch/i386/boot/setup.ld:47: syntax error

ASSERT(_end <= 0x8000, "Setup too big!")

Which compiler/binutils are you running over there?

> make[1]: *** [arch/i386/boot/setup.elf] Error 1
> make[1]: *** Waiting for unfinished jobs....
> GZIP arch/i386/boot/compressed/vmlinux.bin.gz
> include/asm/processor.h: In function `native_get_debugreg':
> include/asm/processor.h:531: warning: asm operand 0 probably doesn't
> match constraints
> include/asm/processor.h: In function `native_set_debugreg':
> include/asm/processor.h:558: warning: asm operand 0 probably doesn't
> match constraints

static inline unsigned long native_get_debugreg(int regno)
{
unsigned long val = 0; /* Damn you, gcc! */

switch (regno) {
case 0:
asm("movl %%db0, %0" :"=r" (val)); break;
case 1:
asm("movl %%db1, %0" :"=r" (val)); break;
case 2:
asm("movl %%db2, %0" :"=r" (val)); break;
case 3:
asm("movl %%db3, %0" :"=r" (val)); break;
case 6:
asm("movl %%db6, %0" :"=r" (val)); break;
case 7:
asm("movl %%db7, %0" :"=r" (val)); break;
default:
--> BUG();
}
return val;
}

weird.

There are no significant changes in processor.h relative to 2.6.22-rc1.

If the file-n-line aren't screwed up, it's disliking

#define BUG() \
do { \
asm volatile("1:\tud2\n" \
".pushsection __bug_table,\"a\"\n" \
"2:\t.long 1b, %c0\n" \
"\t.word %c1, 0\n" \
"\t.org 2b+%c2\n" \
".popsection" \
: : "i" (__FILE__), "i" (__LINE__), \
"i" (sizeof(struct bug_entry))); \
for(;;) ; \
} while(0)

and we haven't changedanything in there recently either.

> LD arch/i386/boot/compressed/piggy.o
> LD arch/i386/boot/compressed/vmlinux
> make: *** [bzImage] Error 2
> 05/16/07-17:27:44 Build the kernel. Failed rc = 2
> 05/16/07-17:27:44 build: kernel build Failed rc = 1
> Failed and terminated the run
>
> I haven't checked yet if that has anything to do with git-newsetup or
> not.

It built and ran 2.6.22-rc1-git4 happily.


-
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/