On Wed, Mar 27, 2013 at 03:02:07PM +0100, Andrea Arcangeli wrote: > Hi, > > On Wed, Mar 27, 2013 at 05:26:31PM +0800, Fengguang Wu wrote: > > Hi Andrea, > > > > FYI, kernel build failed on > > > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux master > > head: a12183c62717ac4579319189a00f5883a18dff08 > > commit: 71e3aac0724ffe8918992d76acfe3aad7d8724a5 thp: transparent hugepage core > > date: 2 years, 2 months ago > > config: make ARCH=mips allmodconfig > > > > All error/warnings: > > > > mm/huge_memory.c:19:15: error: expected identifier or '(' before numeric constant > > mm/huge_memory.c: In function 'double_flag_show': > > mm/huge_memory.c:28:24: error: lvalue required as unary '&' operand > > mm/huge_memory.c:29:3: error: lvalue required as unary '&' operand > > mm/huge_memory.c:31:32: error: lvalue required as unary '&' operand > > It's certainly mips specific, TRANSPARENT_HUGEPAGE gets set but > there's likely some asm header screwup, maybe hidden by > setting/unsetting some other config option. Wondering if there's any > pending push that may be fixing this already. If you need I can build > the cross compiler and solve it but it's good idea to check if there's > a pending push somewhere (or in -mm) first. Hi Andrea! Unfortunately there are no pending fixes. My build script will auto check linux-next if it's an upstream build error. Which can be further verified with the below reproduce log. Thanks, Fengguang --- =============== linus/master linus/master =============== /home/wfg/linux HEAD is now at de55eb1... Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs /home/wfg/linux/obj-compiletest make ARCH=mips allmodconfig make ARCH=mips mm/huge_memory.o !!! BUILD ERROR !!! grep -a -F mm/huge_memory.c /tmp/build-err-de55eb1d60d2ed0f1ba5e13226d91b3bfbe1c108-wfg --color warning: (LOCKDEP && FAULT_INJECTION_STACKTRACE_FILTER && LATENCYTOP && KMEMCHECK) selects FRAME_POINTER which has unmet direct dependencies (DEBUG_KERNEL && (CRIS || M68K || FRV || UML || AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS) warning: (LOCKDEP && FAULT_INJECTION_STACKTRACE_FILTER && LATENCYTOP && KMEMCHECK) selects FRAME_POINTER which has unmet direct dependencies (DEBUG_KERNEL && (CRIS || M68K || FRV || UML || AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS) /c/wfg/linux/mm/huge_memory.c: In function 'set_huge_zero_page': /c/wfg/linux/mm/huge_memory.c:773:2: error: implicit declaration of function 'pfn_pmd' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:773:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' cc1: some warnings being treated as errors make[2]: *** [mm/huge_memory.o] Error 1 =============== linux-next next/master =============== /home/wfg/linux Checking out files: 100% (5078/5078), done. Previous HEAD position was de55eb1... Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs HEAD is now at b77e727... Add linux-next specific files for 20130327 /home/wfg/linux/obj-compiletest make ARCH=mips allmodconfig make ARCH=mips mm/huge_memory.o !!! BUILD ERROR !!! grep -a -F mm/huge_memory.c /tmp/build-err-b77e727878653a2e6caf89234d2488025e9ea5c3-wfg --color warning: (LOCKDEP && FAULT_INJECTION_STACKTRACE_FILTER && LATENCYTOP && KMEMCHECK) selects FRAME_POINTER which has unmet direct dependencies (DEBUG_KERNEL && (CRIS || M68K || FRV || UML || AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS) warning: (LOCKDEP && FAULT_INJECTION_STACKTRACE_FILTER && LATENCYTOP && KMEMCHECK) selects FRAME_POINTER which has unmet direct dependencies (DEBUG_KERNEL && (CRIS || M68K || FRV || UML || AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || ARCH_WANT_FRAME_POINTERS) /c/wfg/linux/mm/huge_memory.c:36:15: error: expected identifier or '(' before numeric constant /c/wfg/linux/mm/huge_memory.c:48:62: error: braced-group within expression allowed only inside a function /c/wfg/linux/mm/huge_memory.c:63:62: error: braced-group within expression allowed only inside a function /c/wfg/linux/mm/huge_memory.c: In function 'set_recommended_min_free_kbytes': /c/wfg/linux/mm/huge_memory.c:109:2: error: implicit declaration of function 'khugepaged_enabled' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function 'is_huge_zero_pmd': /c/wfg/linux/mm/huge_memory.c:176:2: error: implicit declaration of function 'pmd_pfn' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function 'get_huge_zero_page': /c/wfg/linux/mm/huge_memory.c:189:18: error: 'THP_ZERO_PAGE_ALLOC_FAILED' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c:189:18: note: each undeclared identifier is reported only once for each function it appears in /c/wfg/linux/mm/huge_memory.c:192:17: error: 'THP_ZERO_PAGE_ALLOC' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c: In function 'double_flag_show': /c/wfg/linux/mm/huge_memory.c:243:24: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:244:3: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:246:32: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c: In function 'double_flag_store': /c/wfg/linux/mm/huge_memory.c:259:20: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:260:23: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:263:22: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:264:21: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:267:22: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:268:23: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c: In function 'single_flag_show': /c/wfg/linux/mm/huge_memory.c:313:27: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c: In function 'single_flag_store': /c/wfg/linux/mm/huge_memory.c:331:17: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:333:19: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c: In function 'hugepage_init': /c/wfg/linux/mm/huge_memory.c:623:2: error: implicit declaration of function 'has_transparent_hugepage' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:624:30: error: lvalue required as left operand of assignment /c/wfg/linux/mm/huge_memory.c:644:30: error: lvalue required as left operand of assignment /c/wfg/linux/mm/huge_memory.c: In function 'setup_transparent_hugepage': /c/wfg/linux/mm/huge_memory.c:662:4: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:664:6: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:668:6: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:670:4: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:674:6: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c:676:6: error: lvalue required as unary '&' operand /c/wfg/linux/mm/huge_memory.c: In function 'maybe_pmd_mkwrite': /c/wfg/linux/mm/huge_memory.c:690:3: error: implicit declaration of function 'pmd_mkwrite' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:690:7: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function 'mk_huge_pmd': /c/wfg/linux/mm/huge_memory.c:697:2: error: implicit declaration of function 'mk_pmd' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:697:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c:698:2: error: implicit declaration of function 'pmd_mkdirty' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:698:2: error: incompatible type for argument 1 of 'maybe_pmd_mkwrite' /c/wfg/linux/mm/huge_memory.c:687:7: note: expected 'pmd_t' but argument is of type 'int' /c/wfg/linux/mm/huge_memory.c:699:2: error: implicit declaration of function 'pmd_mkhuge' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:699:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function '__do_huge_pmd_anonymous_page': /c/wfg/linux/mm/huge_memory.c:715:2: error: implicit declaration of function 'clear_huge_page' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:734:3: error: implicit declaration of function 'set_pmd_at' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function 'set_huge_zero_page': /c/wfg/linux/mm/huge_memory.c:773:2: error: implicit declaration of function 'pfn_pmd' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:773:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c:774:2: error: implicit declaration of function 'pmd_wrprotect' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:774:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c:775:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function 'do_huge_pmd_anonymous_page': /c/wfg/linux/mm/huge_memory.c:796:5: error: implicit declaration of function 'transparent_hugepage_use_zero_page' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:806:20: error: 'THP_FAULT_FALLBACK' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c:819:3: error: implicit declaration of function 'transparent_hugepage_defrag' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:825:18: error: 'THP_FAULT_ALLOC' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c:858:2: error: implicit declaration of function 'handle_pte_fault' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function 'copy_huge_pmd': /c/wfg/linux/mm/huge_memory.c:920:2: error: implicit declaration of function 'pmd_mkold' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:920:6: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function 'huge_pmd_set_accessed': /c/wfg/linux/mm/huge_memory.c:946:2: error: implicit declaration of function 'pmd_mkyoung' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:946:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function 'do_huge_pmd_wp_page': /c/wfg/linux/mm/huge_memory.c:1152:9: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c:1153:3: error: incompatible type for argument 1 of 'maybe_pmd_mkwrite' /c/wfg/linux/mm/huge_memory.c:687:7: note: expected 'pmd_t' but argument is of type 'int' /c/wfg/linux/mm/huge_memory.c:1163:6: error: implicit declaration of function 'transparent_hugepage_debug_cow' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:1170:18: error: 'THP_FAULT_FALLBACK' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c:1183:17: error: 'THP_FAULT_ALLOC' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c:1198:3: error: implicit declaration of function 'copy_user_huge_page' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function 'follow_trans_huge_pmd': /c/wfg/linux/mm/huge_memory.c:1269:8: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: At top level: /c/wfg/linux/mm/huge_memory.c:1290:5: error: redefinition of 'do_huge_pmd_numa_page' /c/wfg/linux/include/linux/huge_mm.h:218:19: note: previous definition of 'do_huge_pmd_numa_page' was here /c/wfg/linux/mm/huge_memory.c: In function 'zap_huge_pmd': /c/wfg/linux/mm/huge_memory.c:1359:2: error: implicit declaration of function '__pmd_trans_huge_lock' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:1364:3: error: implicit declaration of function 'pmdp_get_and_clear' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:1364:12: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function 'move_huge_pmd': /c/wfg/linux/mm/huge_memory.c:1432:7: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function 'change_huge_pmd': /c/wfg/linux/mm/huge_memory.c:1449:9: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c:1451:4: error: implicit declaration of function 'pmd_modify' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:1451:10: error: incompatible types when assigning to type 'pmd_t' from type 'int' /c/wfg/linux/mm/huge_memory.c: In function '__split_huge_page_refcount': /c/wfg/linux/mm/huge_memory.c:1576:2: error: implicit declaration of function 'mem_cgroup_split_huge_fixup' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:1657:2: error: implicit declaration of function 'ClearPageCompound' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function '__split_huge_page_map': /c/wfg/linux/mm/huge_memory.c:1708:4: error: implicit declaration of function 'pmd_young' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: In function '__split_huge_page': /c/wfg/linux/mm/huge_memory.c:1768:3: error: implicit declaration of function 'vma_address' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:1769:3: error: implicit declaration of function 'is_vma_temporary_stack' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: At top level: /c/wfg/linux/mm/huge_memory.c:1802:5: error: redefinition of 'split_huge_page' /c/wfg/linux/include/linux/huge_mm.h:189:19: note: previous definition of 'split_huge_page' was here /c/wfg/linux/mm/huge_memory.c: In function 'split_huge_page': /c/wfg/linux/mm/huge_memory.c:1828:17: error: 'THP_SPLIT' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c: At top level: /c/wfg/linux/mm/huge_memory.c:1840:5: error: redefinition of 'hugepage_madvise' /c/wfg/linux/include/linux/huge_mm.h:200:19: note: previous definition of 'hugepage_madvise' was here /c/wfg/linux/mm/huge_memory.c:1962:5: error: redefinition of 'khugepaged_enter_vma_merge' /c/wfg/linux/include/linux/khugepaged.h:61:19: note: previous definition of 'khugepaged_enter_vma_merge' was here /c/wfg/linux/mm/huge_memory.c: In function 'khugepaged_alloc_hugepage': /c/wfg/linux/mm/huge_memory.c:2195:3: error: implicit declaration of function 'khugepaged_defrag' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c:2197:19: error: 'THP_COLLAPSE_ALLOC_FAILED' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c:2204:19: error: 'THP_COLLAPSE_ALLOC' undeclared (first use in this function) /c/wfg/linux/mm/huge_memory.c: In function 'hugepage_vma_check': /c/wfg/linux/mm/huge_memory.c:2234:2: error: implicit declaration of function 'khugepaged_always' [-Werror=implicit-function-declaration] /c/wfg/linux/mm/huge_memory.c: At top level: /c/wfg/linux/mm/huge_memory.c:2713:6: error: expected identifier or '(' before 'do' /c/wfg/linux/mm/huge_memory.c:2713:6: error: expected identifier or '(' before 'while' /c/wfg/linux/mm/huge_memory.c: In function 'single_flag_show': /c/wfg/linux/mm/huge_memory.c:314:1: warning: control reaches end of non-void function [-Wreturn-type] /c/wfg/linux/mm/huge_memory.c: In function 'double_flag_show': /c/wfg/linux/mm/huge_memory.c:250:1: warning: control reaches end of non-void function [-Wreturn-type] cc1: some warnings being treated as errors make[2]: *** [mm/huge_memory.o] Error 1