2001-07-10 16:52:25

by fabrizio.gennari

[permalink] [raw]
Subject: Kernel 2.4.6 does not compile on Sparc

We have a problem with kernel 2.4.6 on a Sparc. It seems that pgalloc.h defines as macros some identifiers which are defined elsewhere as functions, with a different number of args. Those are pte_alloc (defined in memory.c) and pmd_alloc (defined in
mm.h). It is the same problem as Alex Buell has, as he wrote on May 9th:

Has anyone got a patch to fix the following error when compiling
2.4.4 on SparcStation 4?


make[2]: Entering directory `/usr/src/linux-2.4.4/mm'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.4/include -Wall -Wstrict-prototypes
-O2 -fomit-frame-pointer -fno-strict-aliasing -m32 -pipe -mno-fpu
-fcall-used-g5 -fcall-used-g7 -c -o memory.o memory.c
memory.c:183: macro `pmd_alloc' used with too many (3) args
memory.c:204: macro `pte_alloc' used with too many (3) args
memory.c:725: macro `pte_alloc' used with too many (3) args
memory.c:750: macro `pmd_alloc' used with too many (3) args
memory.c:805: macro `pte_alloc' used with too many (3) args
memory.c:832: macro `pmd_alloc' used with too many (3) args
memory.c:1339: macro `pmd_alloc' used with too many (3) args
memory.c:1342: macro `pte_alloc' used with too many (3) args
memory.c:1392: macro `pte_alloc' used with too many (3) args
memory.c: In function `copy_page_range':
memory.c:183: warning: passing arg 1 of `___f_pmd_alloc' from incompatible
pointer type
memory.c:183: warning: passing arg 2 of `___f_pmd_alloc' makes integer
from pointer without a cast
memory.c:204: warning: passing arg 1 of `___f_pte_alloc' from incompatible
pointer type
memory.c:204: warning: passing arg 2 of `___f_pte_alloc' makes integer
from pointer without a cast
memory.c: In function `zeromap_pmd_range':
memory.c:725: warning: passing arg 1 of `___f_pte_alloc' from incompatible
pointer type
memory.c:725: warning: passing arg 2 of `___f_pte_alloc' makes integer
from pointer without a cast
memory.c: In function `zeromap_page_range':
memory.c:750: warning: passing arg 1 of `___f_pmd_alloc' from incompatible
pointer type
memory.c:750: warning: passing arg 2 of `___f_pmd_alloc' makes integer
from pointer without a cast
memory.c: In function `remap_pmd_range':
memory.c:805: warning: passing arg 1 of `___f_pte_alloc' from incompatible
pointer type
memory.c:805: warning: passing arg 2 of `___f_pte_alloc' makes integer
from pointer without a cast
memory.c: In function `remap_page_range':
memory.c:832: warning: passing arg 1 of `___f_pmd_alloc' from incompatible
pointer type
memory.c:832: warning: passing arg 2 of `___f_pmd_alloc' makes integer
from pointer without a cast
memory.c: In function `handle_mm_fault':
memory.c:1339: warning: passing arg 1 of `___f_pmd_alloc' from
incompatible pointer type
memory.c:1339: warning: passing arg 2 of `___f_pmd_alloc' makes integer
from pointer without a cast
memory.c:1342: warning: passing arg 1 of `___f_pte_alloc' from
incompatible pointer type
memory.c:1342: warning: passing arg 2 of `___f_pte_alloc' makes integer
from pointer without a cast
memory.c: In function `__pmd_alloc':
memory.c:1364: warning: implicit declaration of function
`pmd_alloc_one_fast'
memory.c:1364: warning: assignment makes pointer from integer without a
cast
memory.c:1367: warning: implicit declaration of function `pmd_alloc_one'
memory.c:1367: warning: assignment makes pointer from integer without a
cast
memory.c:1381: warning: implicit declaration of function `pgd_populate'
memory.c: At top level:
memory.c:1393: conflicting types for `___f_pte_alloc'
/usr/src/linux-2.4.4/include/asm/pgalloc.h:125: previous declaration of
`___f_pte_alloc'
memory.c: In function `___f_pte_alloc':
memory.c:1398: warning: implicit declaration of function
`pte_alloc_one_fast'
memory.c:1398: `address' undeclared (first use in this function)
memory.c:1398: (Each undeclared identifier is reported only once
memory.c:1398: for each function it appears in.)
memory.c:1398: warning: assignment makes pointer from integer without a
cast
memory.c:1401: warning: implicit declaration of function `pte_alloc_one'
memory.c:1401: warning: assignment makes pointer from integer without a
cast
memory.c:1415: warning: implicit declaration of function `pmd_populate'
make[2]: *** [memory.o] Error 1
make[2]: Leaving directory `/usr/src/linux-2.4.4/mm'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.4/mm'
make: *** [_dir_mm] Error 2

---------------------------------------------------------
Fabrizio Gennari tel. +39 039 203 7816
Philips Research Monza fax. +39 039 203 7800
via G. Casati 23 [email protected]
20052 Monza (MI) Italy http://www.research.philips.com



2001-07-10 17:28:16

by Doug McNaught

[permalink] [raw]
Subject: Re: Kernel 2.4.6 does not compile on Sparc

[email protected] writes:

> Has anyone got a patch to fix the following error when compiling
> 2.4.4 on SparcStation 4?

Currently, 2.4.X does not compile or run on Sparc32 due to lack of a
maintainer for that platform.

-Doug
--
The rain man gave me two cures; he said jump right in,
The first was Texas medicine--the second was just railroad gin,
And like a fool I mixed them, and it strangled up my mind,
Now people just get uglier, and I got no sense of time... --Dylan

2001-07-10 18:38:36

by Pete Zaitcev

[permalink] [raw]
Subject: Re: Kernel 2.4.6 does not compile on Sparc

> We have a problem with kernel 2.4.6 on a Sparc. [...]

Next time, please be so kind to fold your lines properly.

Now, if you a true hacker, you might want to give a whirl to this:
http://people.redhat.com/zaitcev/linux/linux-2.4.6-mallorn.diff

It certainly compiles, but does not work too well.
It may be a good start if you want to fix sparc(32).
Otherwise, forget it and use something else.

-- Pete

2001-07-11 06:00:58

by Alex Buell

[permalink] [raw]
Subject: Re: Kernel 2.4.6 does not compile on Sparc

On Tue, 10 Jul 2001, Pete Zaitcev wrote:

> Next time, please be so kind to fold your lines properly.

At least Pine does.

> It certainly compiles, but does not work too well. It may be a good
> start if you want to fix sparc(32). Otherwise, forget it and use
> something else.

I've got two weeks' vacation coming up next week, I intend to look into
this as I've no money to go anywhere, so might as well contribute my time!
Also if anyone in the UK is willing to donate a SparcStation 20 with dual
SM61s (or even better, SM71s) with a 24bit framebuffer, I can make sure
SMP works on sun4m.

--
Hey, they *are* out to get you, but it's nothing personal.

http://www.tahallah.demon.co.uk