2006-01-11 18:21:51

by Yinghai Lu

[permalink] [raw]
Subject: can not compile in the latest git

the functions are in
#if CONFIG_MIGRATION
...

mm/built-in.o(.text+0x16fc3): In function `check_pte_range':
mempolicy.c: undefined reference to `isolate_lru_page'
mm/built-in.o(.text+0x189a6): In function `swap_pages':
mempolicy.c: undefined reference to `migrate_pages'
mm/built-in.o(.text+0x189b3):mempolicy.c: undefined reference to
`putback_lru_pages'
mm/built-in.o(.text+0x189bd):mempolicy.c: undefined reference to
`putback_lru_pages'
mm/built-in.o(.text+0x18c98): In function `do_mbind':
: undefined reference to `putback_lru_pages'
mm/built-in.o(.text+0x18efe): In function `do_migrate_pages':
: undefined reference to `putback_lru_pages'
make: *** [.tmp_vmlinux1] Error 1


YH


2006-01-11 20:13:50

by Christoph Lameter

[permalink] [raw]
Subject: Re: can not compile in the latest git

On Wed, 11 Jan 2006, yhlu wrote:

> : undefined reference to `putback_lru_pages'
> make: *** [.tmp_vmlinux1] Error 1

Please post your .config file.

2006-01-12 20:36:58

by Yinghai Lu

[permalink] [raw]
Subject: Re: can not compile in the latest git

It turns out, if I disable "Support for paging of anonymous memory
(swap)" --- SWAP

the CONFIG_MIGRATION will disappear from the .config

the mm/mempolicy.c may need some #if CONFIG_MIRGRATION to comment out
these calling.

YH

On 1/11/06, Christoph Lameter <[email protected]> wrote:
> On Wed, 11 Jan 2006, yhlu wrote:
>
> > : undefined reference to `putback_lru_pages'
> > make: *** [.tmp_vmlinux1] Error 1
>
> Please post your .config file.
>
>

2006-01-13 03:59:43

by Christoph Lameter

[permalink] [raw]
Subject: Re: can not compile in the latest git

On Thu, 12 Jan 2006, yhlu wrote:

> It turns out, if I disable "Support for paging of anonymous memory
> (swap)" --- SWAP
>
> the CONFIG_MIGRATION will disappear from the .config
>
> the mm/mempolicy.c may need some #if CONFIG_MIRGRATION to comment out
> these calling.

Could you try this patch:

Index: linux-2.6/include/linux/swap.h
===================================================================
--- linux-2.6.orig/include/linux/swap.h 2006-01-08 22:37:45.504089980 -0800
+++ linux-2.6/include/linux/swap.h 2006-01-12 19:56:35.665086037 -0800
@@ -180,6 +180,11 @@
extern int putback_lru_pages(struct list_head *l);
extern int migrate_pages(struct list_head *l, struct list_head *t,
struct list_head *moved, struct list_head *failed);
+#else
+static inline int isolate_lru_pages(struct page *p) { return -ENOSYS; }
+static inline int putback_lru_pages(struct list_head *) { return 0; }
+static inline int migrate_pages(struct list_head *l, struct list_head *t,
+ struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
#endif

#ifdef CONFIG_MMU

2006-01-13 17:30:43

by Yinghai Lu

[permalink] [raw]
Subject: Re: can not compile in the latest git

It works but there are some typo

+static inline int isolate_lru_pages(struct page *p) { return -ENOSYS; }
+static inline int putback_lru_pages(struct list_head *) { return 0; }
+static inline int migrate_pages(struct list_head *l, struct list_head *t,
+ struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
===>
+static inline int isolate_lru_page(struct page *p) { return -ENOSYS; }
+static inline int putback_lru_pages(struct list_head *l) { return 0; }
+static inline int migrate_pages(struct list_head *l, struct list_head *t,
+ struct list_head *moved, struct list_head *failed) { return -ENOSYS; }

So the CONFIG_MIGRATION depends on CONFIG_NUMA and CONFIG_SWAP?

YH

2006-01-13 19:17:19

by Christoph Lameter

[permalink] [raw]
Subject: Re: can not compile in the latest git

On Fri, 13 Jan 2006, yhlu wrote:

> So the CONFIG_MIGRATION depends on CONFIG_NUMA and CONFIG_SWAP?

Yes. Maybe this will change in the future if we can find another way to
preserve the anonymous mappings.