Skip to contentSkip to conversation

2.6.36-git14 build break - fs/compat.c :631 (PAGE_CACHE_MASK undeclared)

s390 Sachin Sant 3 participants 4 messages Oct 30, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

Latest 2.6.36 git [commit 44234d0c46...] fails to build on s390x with following error :

fs/compat.c: In function compat_rw_copy_check_uvector:
fs/compat.c:631: error: PAGE_CACHE_MASK undeclared (first use in this function) fs/compat.c:631: error: (Each undeclared identifier is reported only once fs/compat.c:631: error: for each function it appears in.)
make[1]: *** [fs/compat.o] Error 1

The code in question was added via following commit:

commit 435f49a518c78eec8e2edbbadd912737246cbe20 readv/writev: do the same MAX_RW_COUNT truncation that read/write does

Thanks
-Sachin

Signature · 6 lines
---------------------------------
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
---------------------------------
#1 lore raw

The same problem on MIPS.

Perhaps this can help:

$ git diff
fs/compat.c +1 -0
index ff66c0d..c580c32 100644
@@ -49,6 +49,7 @@
 #include <linux/eventpoll.h>
 #include <linux/fs_struct.h>
 #include <linux/slab.h>
+#include <linux/pagemap.h>
 
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>

I'm not sure if this is a good fixup, because the problem is introduced by MAX_RW_COUNT defined in include/linux/fs.h:

#define MAX_RW_COUNT (INT_MAX & PAGE_CACHE_MASK)

and the PAGE_CACHE_MASK is defined in pagemap.h, we may be possible to add <linux/pagemap.h> in include/linux/fs.h but pagemap.h has included <linux/fs.h> too ...

Regards,
Wu Zhangjin

Quoted 17 lines · Sachin Sant

Latest 2.6.36 git [commit 44234d0c46...] fails to build on s390x with following error :

fs/compat.c: In function compat_rw_copy_check_uvector:
fs/compat.c:631: error: PAGE_CACHE_MASK undeclared (first use in this function)
fs/compat.c:631: error: (Each undeclared identifier is reported only once fs/compat.c:631: error: for each function it appears in.) make[1]: *** [fs/compat.o] Error 1

The code in question was added via following commit:

commit 435f49a518c78eec8e2edbbadd912737246cbe20 readv/writev: do the same MAX_RW_COUNT truncation that read/write does

Thanks
-Sachin

#2 lore raw

(Seems Linus added that patch, add him in this loop)

Quoted 49 lines · wu zhangjin

The same problem on MIPS.

Perhaps this can help:

$ git diff
fs/compat.c +1 -0
index ff66c0d..c580c32 100644
@@ -49,6 +49,7 @@
  #include <linux/eventpoll.h>
  #include <linux/fs_struct.h>
  #include <linux/slab.h>
+#include <linux/pagemap.h>
 
  #include <asm/uaccess.h>
  #include <asm/mmu_context.h>

I'm not sure if this is a good fixup, because the problem is introduced by MAX_RW_COUNT defined in include/linux/fs.h:

#define MAX_RW_COUNT (INT_MAX & PAGE_CACHE_MASK)

and the PAGE_CACHE_MASK is defined in pagemap.h, we may be possible to add <linux/pagemap.h> in include/linux/fs.h but pagemap.h has included <linux/fs.h> too ...

Regards,
Wu Zhangjin

Quoted 17 lines · Sachin Sant

Latest 2.6.36 git [commit 44234d0c46...] fails to build on s390x with following error :

fs/compat.c: In function compat_rw_copy_check_uvector:
fs/compat.c:631: error: PAGE_CACHE_MASK undeclared (first use in this function)
fs/compat.c:631: error: (Each undeclared identifier is reported only once fs/compat.c:631: error: for each function it appears in.) make[1]: *** [fs/compat.o] Error 1

The code in question was added via following commit:

commit 435f49a518c78eec8e2edbbadd912737246cbe20 readv/writev: do the same MAX_RW_COUNT truncation that read/write does

Thanks
-Sachin

#3 lore raw
Quoted 2 lines · wu zhangjin

(Seems Linus added that patch, add him in this loop)

My bad. It was such a totally obvious and trivial patch, and it compiled for me on x86-64. Too bad our header include dependencies are such a mess, and actually change from one architecture to another.

I'd love to fix up the header mess, but that's not going to happen. So I'll take the <linux/filemap.h> addition.

Thanks,

Linus