When compiling hardened sources 2.6.28-r3 without "Support for paging of anonymous memory (swap)" I get an ld error relating to a use of an undefined function: ____ilog2_NaN inside of mm/page-writeback.c Reproducible: Always Steps to Reproduce: 1.Configure the kernel without "Support for paging of anonymous memory (swap)" 2.run make Actual Results: Compilations fails due to undefined symbol Expected Results: The kernel compiles smoothly Maybe it can affect previous versions and even vanilla kernels. I haven't tried.
I forgot to say that, according to ld the responsible function is test_clear_page_writeback()
Please post emerge --info, the failing kernel config and the error message (along with about 10 lines leading up to it).
CCed upstream. They may not need it for this particular issue, but would be cool if you would provide the requested information ahead of time to potentially prevent unnecessary back-and-forth.
it's a vanilla linux bug, or that of gcc-3.4.6 as 4.3.3 compiles the code fine. since not many things depend on CONFIG_SWAP, i guess it's got something to do with PAGEFLAG_FALSE(SwapCache) in include/linux/page-flags.h but i leave the rest for the kernel devs to figure out ;).
klondike, Can you try with sys-kernel/gentoo-sources-2.6.28-r4?
Created attachment 186332 [details] Kernel conmfig file
Created attachment 186333 [details] emerge --info
Created attachment 186335 [details] last lines before error message
First, I beg your pardon for taking too long to post :( I don't have almost time from monday to wednesdays and this was a long weekend :/ All those are with r6 but are reproducible too on r4.
gcc-4.3.4 is stable and you should be able to compile a kernel without swap support with it. Closing as CANTFIX.
I can confirm that using gcc-4.3 solves the problem, feel free to close it as solved if you want :)
Created attachment 228941 [details] real solution look http://software.intel.com/en-us/articles/compiler-moblin2-kernel-sources-with-intel-compiler/ from Intel development about compiling kernel with icc. There is nothing special in kernel which cant be compiled with gcc 3.4.6 ... 4.1.2