Re: Cannot compile linux-2.4.27-rc1 ... ipt_REJECT.c

From: Martin MOKREJŠ
Date: Tue Jun 22 2004 - 04:12:43 EST


On Mon, 21 Jun 2004, Mikael Pettersson wrote:

Thanks, this patch helped.

> Martin MOKREJ? writes:
> > gcc -D__KERNEL__ -I/usr/src/linux-2.4.27-rc1/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -fno-unit-at-a-time -nostdinc -iwithprefix include -DKBUILD_BASENAME=vt -c -o vt.o vt.c
> > vt.c: In function `do_kdsk_ioctl':
> > vt.c:166: warning: comparison is always false due to limited range of data type
> > vt.c: In function `do_kdgkb_ioctl':
> > vt.c:283: warning: comparison is always false due to limited range of data type
>
> This happens with many gcc-3.x versions, not just gcc-3.4.
> In any case, it doesn't prevent a successful kernel build.
>
> > gcc -D__KERNEL__ -I/usr/src/linux-2.4.27-rc1/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -fno-unit-at-a-time -nostdinc -iwithprefix include -DKBUILD_BASENAME=highmem -c -o highmem.o highmem.c
> > highmem.c:133: error: conflicting types for 'kmap_high'
> > /usr/src/linux-2.4.27-rc1/include/asm/highmem.h:59: error: previous declaration of 'kmap_high' was here
> > highmem.c:133: error: conflicting types for 'kmap_high'
> > /usr/src/linux-2.4.27-rc1/include/asm/highmem.h:59: error: previous declaration of 'kmap_high' was here
> > highmem.c:158: error: conflicting types for 'kunmap_high'
> > /usr/src/linux-2.4.27-rc1/include/asm/highmem.h:60: error: previous declaration of 'kunmap_high' was here
> > highmem.c:158: error: conflicting types for 'kunmap_high'
> > /usr/src/linux-2.4.27-rc1/include/asm/highmem.h:60: error: previous declaration of 'kunmap_high' was here
>
> This is HIGHMEM which I never tested before. The problem is yet
> another FASTCALL/fastcall discrepancy where a function's definition
> doesn't have the exact same attributes as its prototype.
>
> My updated gcc340 patch fixes this problem. Get
> <http://www.csd.uu.se/~mikpe/linux/patches/2.4/patch-gcc340-fixes-v2-2.4.27-rc1>
> or simply apply the patch below on top of the previous version.
>
> /Mikael
>
> --- linux-2.4.27-rc1/mm/highmem.c.~1~ 2003-06-14 13:30:29.000000000 +0200
> +++ linux-2.4.27-rc1/mm/highmem.c 2004-06-21 22:42:58.000000000 +0200
> @@ -129,7 +129,7 @@
> return vaddr;
> }
>
> -void *kmap_high(struct page *page, int nonblocking)
> +void fastcall *kmap_high(struct page *page, int nonblocking)
> {
> unsigned long vaddr;
>
> @@ -154,7 +154,7 @@
> return (void*) vaddr;
> }
>
> -void kunmap_high(struct page *page)
> +void fastcall kunmap_high(struct page *page)
> {
> unsigned long vaddr;
> unsigned long nr;
>

--
Martin Mokrejs
GPG key is at http://www.natur.cuni.cz/~mmokrejs
-
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/