Kernel Bug Tracker – Bug 11450
2.6.27-rc3 to rc6 x86_64 broken KBUILD_OUTPUT
Last modified: 2008-10-01 05:25:53 UTC
Latest working kernel version:2.6.26
Earliest failing kernel version:2.6.27-rc3
Note however that -rc2 failed to run, apparently unrelated as it compiled, so I've not been able to run any .27 rcs (I didn't try rc1)
Hardware Environment: Tyan s2885, dual Opteron 290s, 8 gigs RAM, 4 SATA-disk md/mdp RAID
Software Environment: compiler, Gentoo's gcc-4.3.1-r1
Note that I patch the makefile to unlimited parallel jobs (adding -j to makeopts).
Problem Description: Since 2.6.27-rc3, I've been unable to compile, with the following errors. .config and build output log to be attached, see the output log for the details. (Local path prefixes deleted below, but in build output log.)
arch/x86/kernel/entry_64.S:54:24: error: asm/ftrace.h: No such file or directory
make: *** [arch/x86/kernel/entry_64.o] Error 1
include2/asm/proto.h:17: error: conflicting types for 'reserve_bootmem_generic'
include/linux/bootmem.h:118: error: previous declaration of 'reserve_bootmem_generic' was here
arch/x86/mm/ioremap.c: In function '__ioremap_caller':make: *** [arch/x86/mm/fault.o] Error 1
/arch/x86/mm/pat.c:250: error: implicit declaration of function 'is_ISA_range'
arch/x86/mm/pat.c: In function 'phys_mem_access_prot_allowed':
arch/x86/mm/pat.c:476: error: 'max_low_pfn_mapped' undeclared (first use in this function)
[bunch more errors in arch/x86/mm/ioremap.c and gup.c]
make: *** [arch/x86/mm/pat.o] Error 1
make: *** [arch/x86/mm/ioremap.o] Error 1
make: *** [arch/x86/mm/gup.o] Error 1
include/asm-generic/pci-dma-compat.h: In function 'pci_dma_mapping_error':
include/asm-generic/pci-dma-compat.h:104: warning: passing argument 1 of 'dma_mapping_error' makes integer from pointer without a cast
include/asm-generic/pci-dma-compat.h:104: error: too many arguments to function 'dma_mapping_error'
... many more. search the build log for "error".
Created attachment 17531 [details]
2.6.27-rc5 build log
Created attachment 17532 [details]
Looks like a completely wreckaged source tree. Your config compiles fine here.
Reopening and changing the summary to reflect further test results. The bug occurs with -rc6 also. The source tree gpg-verifies fine.
It turns out it's not the config but something else in my setup I neglected to mention before. Try setting KBUILD_OUTPUT (as documented in the root makefile). Here, with it set to outputdir (as an additional subdir at the kernel tree root, so the absolute path is /usr/src/linux/outputdir/), I have the problem. With it unset, no problem. (This is as tested on -rc6, now.)
As best I can tell from the errors and above results, when the arch-include/headers stuff was moved around it broke KBUILD_OUTPUT, and I must be one of very few -rc testers using it, at least on x86_64.
Well, I'm using make O=/path/to/object/output all the time as I use it
to build various configs from one source tree.
That's basically the same as setting KBUILD_OUTPUT as far as I can tell from a quick check of Makefile.
Can you try that instead for verification ?
> Can you try that instead for verification ?
And please use a completely unpatched source tree. Just noticed that
you hack makeopts as well. If you want to do a parallel build add it
to the make command line.
# make O=/outputpath -j .....
OK, my mistake.
I was copying the outputdir from the old 2.6.26 kernel over (effectively patching in place and rebuilding, only I simply copied the outputdir into the new sources, this normally saves several hundred make jobs from having to be redone unnecessarily, as best I can tell) and evidently with the include dirs changes, that didn't work and I needed to start with a clean (butfor the old .config) outputdir, before I did the the make oldconfig and tried to build in the new sources.
Starting from a clean (but for the .config) outputdir worked fine.
So re-rejecting as invalid. Thanks for your time.