2008-02-08 22:25:22

by Adrian Bunk

[permalink] [raw]
Subject: m68knommu compile error

Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 breaks m68knommu:

<-- snip -->

...
CC init/main.o
In file included from include2/asm/uaccess.h:8,
from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/poll.h:13,
from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/rtc.h:113,
from /home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/efi.h:19,
from /home/bunk/linux/kernel-2.6/git/linux-2.6/init/main.c:43:
/home/bunk/linux/kernel-2.6/git/linux-2.6/include/linux/mm.h:1151:
error: expected declaration specifiers or '...' before 'pgtable_t'
make[2]: *** [init/main.o] Error 1

<-- snip -->

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed


2008-02-09 10:21:27

by Martin Schwidefsky

[permalink] [raw]
Subject: Re: m68knommu compile error

On Sat, 2008-02-09 at 00:25 +0200, Adrian Bunk wrote:
> Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 breaks m68knommu:

Does the patch below fixes the problem? I tried to cross compile for
m68knommu but it seems like you need a special m68k compiler to get it
compile all the way through. With the patch it did fail with a different
error, so I assume it is fixed. The problem is that the pgtable_t is
simply missing for m68knommu, I must have overlooked a reject for one of
the constant regenerations of the patch to keep up with upstream. Sorry
about that.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

---
[m68knommu] Add pgtable_t.

Fix the compile error:

CC init/main.o
In file included from include2/asm/uaccess.h:8,
from include/linux/poll.h:13,
from include/linux/rtc.h:113,
from include/linux/efi.h:19,
from linux-2.6/init/main.c:43:
include/linux/mm.h:1151:
error: expected declaration specifiers or '...' before 'pgtable_t'
make[2]: *** [init/main.o] Error 1

Signed-off-by: Martin Schwidefsky <[email protected]>
---

include/asm-m68knommu/page.h | 1 +
1 file changed, 1 insertion(+)

diff -urpN linux-2.6/include/asm-m68knommu/page.h linux-2.6-patched/include/asm-m68knommu/page.h
--- linux-2.6/include/asm-m68knommu/page.h 2008-02-09 11:15:14.000000000 +0100
+++ linux-2.6-patched/include/asm-m68knommu/page.h 2008-02-09 11:15:21.000000000 +0100
@@ -31,6 +31,7 @@ typedef struct { unsigned long pte; } pt
typedef struct { unsigned long pmd[16]; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
+typedef struct page *pgtable_t;

#define pte_val(x) ((x).pte)
#define pmd_val(x) ((&x)->pmd[0])

2008-02-09 10:53:36

by Adrian Bunk

[permalink] [raw]
Subject: Re: m68knommu compile error

On Sat, Feb 09, 2008 at 11:21:12AM +0100, Martin Schwidefsky wrote:
> On Sat, 2008-02-09 at 00:25 +0200, Adrian Bunk wrote:
> > Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 breaks m68knommu:
>
> Does the patch below fixes the problem?

Thanks, it fixes it.

> I tried to cross compile for
> m68knommu but it seems like you need a special m68k compiler to get it
> compile all the way through.

I'm using one from upstream svn head (= tree that will become gcc 4.3).

> With the patch it did fail with a different
> error, so I assume it is fixed.

That's Matt's "break all no-MMU architectures in swapops.h" regression
for which a patch is already floating around.

> The problem is that the pgtable_t is
> simply missing for m68knommu, I must have overlooked a reject for one of
> the constant regenerations of the patch to keep up with upstream. Sorry
> about that.
>
> blue skies,
> Martin.

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-02-09 10:58:52

by Martin Schwidefsky

[permalink] [raw]
Subject: Re: m68knommu compile error

On Sat, 2008-02-09 at 11:21 +0100, Martin Schwidefsky wrote:
> On Sat, 2008-02-09 at 00:25 +0200, Adrian Bunk wrote:
> > Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 breaks m68knommu:
>
> Does the patch below fixes the problem? I tried to cross compile for
> m68knommu but it seems like you need a special m68k compiler to get it
> compile all the way through. With the patch it did fail with a different
> error, so I assume it is fixed. The problem is that the pgtable_t is
> simply missing for m68knommu, I must have overlooked a reject for one of
> the constant regenerations of the patch to keep up with upstream. Sorry
> about that.

This is a problem for all nommu architectures. The patch fixed all four
of them.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

---
[PATCH] Add pgtable_t to nommu architectures.

From: Martin Schwidefsky <[email protected]>

The pte_fn_t in include/linux/mm.h make it necessary for all
architecture to define a pgtable_t type, even those that do
not have an mmu.

Signed-off-by: Martin Schwidefsky <[email protected]>
---

include/asm-blackfin/page.h | 1 +
include/asm-h8300/page.h | 1 +
include/asm-m68knommu/page.h | 1 +
include/asm-v850/page.h | 1 +
4 files changed, 4 insertions(+)

diff -urpN linux-2.6/include/asm-blackfin/page.h linux-2.6-patched/include/asm-blackfin/page.h
--- linux-2.6/include/asm-blackfin/page.h 2008-02-09 11:46:28.000000000 +0100
+++ linux-2.6-patched/include/asm-blackfin/page.h 2008-02-09 11:46:36.000000000 +0100
@@ -39,6 +39,7 @@ typedef struct {
typedef struct {
unsigned long pgprot;
} pgprot_t;
+typedef struct page *pgtable_t;

#define pte_val(x) ((x).pte)
#define pmd_val(x) ((&x)->pmd[0])
diff -urpN linux-2.6/include/asm-h8300/page.h linux-2.6-patched/include/asm-h8300/page.h
--- linux-2.6/include/asm-h8300/page.h 2008-02-09 11:46:28.000000000 +0100
+++ linux-2.6-patched/include/asm-h8300/page.h 2008-02-09 11:46:36.000000000 +0100
@@ -31,6 +31,7 @@ typedef struct { unsigned long pte; } pt
typedef struct { unsigned long pmd[16]; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
+typedef struct page *pgtable_t;

#define pte_val(x) ((x).pte)
#define pmd_val(x) ((&x)->pmd[0])
diff -urpN linux-2.6/include/asm-m68knommu/page.h linux-2.6-patched/include/asm-m68knommu/page.h
--- linux-2.6/include/asm-m68knommu/page.h 2008-02-09 11:46:28.000000000 +0100
+++ linux-2.6-patched/include/asm-m68knommu/page.h 2008-02-09 11:46:36.000000000 +0100
@@ -31,6 +31,7 @@ typedef struct { unsigned long pte; } pt
typedef struct { unsigned long pmd[16]; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
+typedef struct page *pgtable_t;

#define pte_val(x) ((x).pte)
#define pmd_val(x) ((&x)->pmd[0])
diff -urpN linux-2.6/include/asm-v850/page.h linux-2.6-patched/include/asm-v850/page.h
--- linux-2.6/include/asm-v850/page.h 2008-02-09 11:46:29.000000000 +0100
+++ linux-2.6-patched/include/asm-v850/page.h 2008-02-09 11:46:36.000000000 +0100
@@ -57,6 +57,7 @@ typedef struct { unsigned long pte; } pt
typedef struct { unsigned long pmd; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
+typedef struct page *pgtable_t;

#define pte_val(x) ((x).pte)
#define pmd_val(x) ((x).pmd)

2008-02-09 17:59:59

by Mike Frysinger

[permalink] [raw]
Subject: Re: m68knommu compile error

On Feb 9, 2008 5:58 AM, Martin Schwidefsky <[email protected]> wrote:
> On Sat, 2008-02-09 at 11:21 +0100, Martin Schwidefsky wrote:
> > On Sat, 2008-02-09 at 00:25 +0200, Adrian Bunk wrote:
> > > Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 breaks m68knommu:
> >
> > Does the patch below fixes the problem? I tried to cross compile for
> > m68knommu but it seems like you need a special m68k compiler to get it
> > compile all the way through. With the patch it did fail with a different
> > error, so I assume it is fixed. The problem is that the pgtable_t is
> > simply missing for m68knommu, I must have overlooked a reject for one of
> > the constant regenerations of the patch to keep up with upstream. Sorry
> > about that.
>
> This is a problem for all nommu architectures. The patch fixed all four
> of them.
>
> ---
> [PATCH] Add pgtable_t to nommu architectures.
>
> From: Martin Schwidefsky <[email protected]>
>
> The pte_fn_t in include/linux/mm.h make it necessary for all
> architecture to define a pgtable_t type, even those that do
> not have an mmu.
>
> Signed-off-by: Martin Schwidefsky <[email protected]>
> ---
>
> include/asm-blackfin/page.h | 1 +
> include/asm-h8300/page.h | 1 +
> include/asm-m68knommu/page.h | 1 +
> include/asm-v850/page.h | 1 +
> 4 files changed, 4 insertions(+)
>
> diff -urpN linux-2.6/include/asm-blackfin/page.h linux-2.6-patched/include/asm-blackfin/page.h
> --- linux-2.6/include/asm-blackfin/page.h 2008-02-09 11:46:28.000000000 +0100
> +++ linux-2.6-patched/include/asm-blackfin/page.h 2008-02-09 11:46:36.000000000 +0100
> @@ -39,6 +39,7 @@ typedef struct {
> typedef struct {
> unsigned long pgprot;
> } pgprot_t;
> +typedef struct page *pgtable_t;
>
> #define pte_val(x) ((x).pte)
> #define pmd_val(x) ((&x)->pmd[0])

thanks, this fixed building Blackfin for me.

Signed-off-by: Mike Frysinger <[email protected]>
-mike

2008-02-11 05:22:33

by Greg Ungerer

[permalink] [raw]
Subject: Re: m68knommu compile error



Martin Schwidefsky wrote:
> On Sat, 2008-02-09 at 11:21 +0100, Martin Schwidefsky wrote:
>> On Sat, 2008-02-09 at 00:25 +0200, Adrian Bunk wrote:
>>> Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 breaks m68knommu:
>> Does the patch below fixes the problem? I tried to cross compile for
>> m68knommu but it seems like you need a special m68k compiler to get it
>> compile all the way through. With the patch it did fail with a different
>> error, so I assume it is fixed. The problem is that the pgtable_t is
>> simply missing for m68knommu, I must have overlooked a reject for one of
>> the constant regenerations of the patch to keep up with upstream. Sorry
>> about that.
>
> This is a problem for all nommu architectures. The patch fixed all four
> of them.

Confirmed, good for m68knommu.

Acked-by: Greg Ungerer <[email protected]>



--
------------------------------------------------------------------------
Greg Ungerer -- Chief Software Dude EMAIL: [email protected]
Secure Computing Corporation PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com