Re: 2.6.5+BK compile error: binfmt_elf on sparc64

From: David S. Miller
Date: Wed Apr 14 2004 - 13:54:52 EST


On Wed, 14 Apr 2004 11:33:00 +0300 (EEST)
Meelis Roos <mroos@xxxxxxxx> wrote:

> Because of -Werror, it bails out:
>
> In file included from arch/sparc64/kernel/binfmt_elf32.c:154:
> fs/binfmt_elf.c: In function `load_elf_interp':
> fs/binfmt_elf.c:369: warning: comparison is always false due to limited range of data type
> fs/binfmt_elf.c: In function `load_elf_binary':
> fs/binfmt_elf.c:780: warning: comparison is always false due to limited range of data type
>
> It's the comparision "elf_ppnt->p_memsz > TASK_SIZE".
>
> p_memsz is Elf32_Word, TASK_SIZE is defined as
> #define TASK_SIZE ((unsigned long)-VPTE_SIZE)
>
> At the first glance I can't see what's wrong here.

The compiler is telling us that the condition is always false because a 32-bit
value can never have the codition being tested against a 64-bit one (TASK_SIZE).
I've tried everything to kill this warning, even casting both sides of the
conparison to 64-bit, but gcc can still see things clearly.

So just comment out the -Werror line in arch/sparc64/kernel/Makefile which is
how I'm (unfortunately) solving this for now.
-
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/