2002-02-21 23:57:38

by Pavel Roskin

[permalink] [raw]
Subject: 2.4.18-rc2 doesn't compile on ia64

Hello!

I'm trying to compile Linux for ia64 and it doesn't compile:

$ gcc -D__KERNEL__ -I/home/proski/linux/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common
-pipe -ffixed-r13 -mfixed-range=f10-f15,f32-f127 -falign-functions=32
-frename-registers --param max-inline-insns=400 -mconstant-gp
-DKBUILD_BASENAME=main -c -o init/main.o init/main.c
In file included from /home/proski/linux/include/linux/pagemap.h:16,
from /home/proski/linux/include/linux/locks.h:8,
from
/home/proski/linux/include/linux/devfs_fs_kernel.h:6,
from init/main.c:16:
/home/proski/linux/include/linux/highmem.h: In function
`clear_user_highpage':
/home/proski/linux/include/linux/highmem.h:49: warning: passing arg 2 of
`clear_user_page' makes pointer from integer without a cast
/home/proski/linux/include/linux/highmem.h: In function
`copy_user_highpage':
/home/proski/linux/include/linux/highmem.h:81: too few arguments to
function `copy_user_page'
make: *** [init/main.o] Error 1

Indeed, clear_user_page() is defined with 3 arguments for ia-64
(include/asm-ia64/pgalloc.h) and with 2 arguments for other platforms
(include/asm-i386/page.h)

clear_user_page() is used with 2 arguments in include/linux/highmem.h, it
is also documented with 2 arguments in Documentation/cachetlb.txt

The problem is fixed in the ia-64 patch at
http://www.kernel.org/pub/linux/kernel/ports/ia64/v2.4/ but it's still not
in the official kernel, which means that 2.4.18 won't compile for ia-64
unless this problem is taken care of.

--
Regards,
Pavel Roskin


2002-02-22 00:06:19

by Keith Owens

[permalink] [raw]
Subject: Re: 2.4.18-rc2 doesn't compile on ia64

On Thu, 21 Feb 2002 18:57:12 -0500 (EST),
Pavel Roskin <[email protected]> wrote:
>I'm trying to compile Linux for ia64 and it doesn't compile:

It won't without the ia64 add on patch.

>Indeed, clear_user_page() is defined with 3 arguments for ia-64
>(include/asm-ia64/pgalloc.h) and with 2 arguments for other platforms
>(include/asm-i386/page.h)

ia64 needs to change the definition of clear_user_page and related
functions. That change affects all architectures and has not been
folded into the base kernel tree, you have to apply the ia64 add on
patch to compile for ia64.