Re: parisc compile error

From: rubisher
Date: Wed Feb 13 2008 - 01:56:51 EST


> On Thu, Feb 07, 2008 at 03:33:07PM -0800, Christoph Lameter wrote:
> > On Thu, 7 Feb 2008, Kyle McMartin wrote:
> >
> > > yes, it's in my batch of fixes.
> >
> > <big sigh of relief> So I do not have to worry about it?
> >
>
> haha no. i don't expect people to have to untangle the mess of includes
> that is <asm-parisc/*.h> :)
>
> cheers, kyle
> -
This move to define those symbol before including linux/mm.h seems to make the
drill:
--- include/asm-parisc/pgtable.h.Orig 2007-10-22 08:19:20.000000000 +0000
+++ include/asm-parisc/pgtable.h 2008-02-12 16:28:36.000000000 +0000
@@ -10,6 +10,12 @@
* we simulate an x86-style page table for the linux mm code
*/

+extern void *vmalloc_start;
+#define PCXL_DMA_MAP_SIZE (8*1024*1024)
+#define VMALLOC_START ((unsigned long)vmalloc_start)
+/* this is a fixmap remnant, see fixmap.h */
+#define VMALLOC_END (KERNEL_MAP_END)
+
#include <linux/mm.h> /* for vm_area_struct */
#include <linux/bitops.h>
#include <asm/processor.h>
@@ -116,14 +122,6 @@

#define FIRST_USER_ADDRESS 0

-#ifndef __ASSEMBLY__
-extern void *vmalloc_start;
-#define PCXL_DMA_MAP_SIZE (8*1024*1024)
-#define VMALLOC_START ((unsigned long)vmalloc_start)
-/* this is a fixmap remnant, see fixmap.h */
-#define VMALLOC_END (KERNEL_MAP_END)
-#endif
-
/* NB: The tlb miss handlers make certain assumptions about the order */
/* of the following bits, so be careful (One example, bits 25-31 */
/* are moved together in one instruction). */
=== <> ====

But next compile error appears there:

In file included from
/CAD/linux-2.6.25-rc1-pa-git-20080212/arch/parisc/mm/init.c:26:
include2/asm/pgalloc.h:142: error: conflicting types for 'pte_free_kernel'
include2/asm/pgalloc.h:137: error: previous definition of 'pte_free_kernel'
was here
include2/asm/pgalloc.h: In function 'pte_free_kernel':
include2/asm/pgalloc.h:144: error: expected ')' before ';' token
include2/asm/pgalloc.h:145: error: too few arguments to function 'pte_free_kernel'
include2/asm/pgalloc.h:145: error: expected ';' before '}' token
make[2]: *** [arch/parisc/mm/init.o] Error 1
make[1]: *** [arch/parisc/mm] Error 2
make: *** [sub-make] Error 2


and in include/asm-parisc/pgalloc.h we can read:

static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
{
free_page((unsigned long)pte);
}

static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte)
{
pgtable_page_dtor(pte);
pte_free_kernel(page_address((pte));
}

i.e. 2 time the definition of the same function: which is the right definition?

Cheers,
r.

---
Scarlet One, ADSL 6 Mbps + Telephone, from EUR 29,95...
http://www.scarlet.be/

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