Bug 11450

Summary: 2.6.27-rc3 to rc6 x86_64 broken KBUILD_OUTPUT
Product: Platform Specific/Hardware Reporter: Duncan (1i5t5.duncan)
Component: x86-64Assignee: platform_x86_64 (platform_x86_64)
Status: REJECTED INVALID    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.27-rc3 Subsystem:
Regression: --- Bisected commit-id:
Attachments: 2.6.27-rc5 build log
2.6.27-rc5 .config

Description Duncan 2008-08-29 08:01:16 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)

Distribution:  Gentoo/~amd64

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[2]: *** [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[2]: *** [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[2]: *** [arch/x86/mm/pat.o] Error 1
make[2]: *** [arch/x86/mm/ioremap.o] Error 1
make[2]: *** [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".

Duncan
Comment 1 Duncan 2008-08-29 08:06:06 UTC
Created attachment 17531 [details]
2.6.27-rc5 build log
Comment 2 Duncan 2008-08-29 08:08:13 UTC
Created attachment 17532 [details]
2.6.27-rc5 .config
Comment 3 Thomas Gleixner 2008-09-04 12:32:52 UTC
Looks like a completely wreckaged source tree. Your config compiles fine here.
Comment 4 Duncan 2008-09-14 07:20:58 UTC
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.
Comment 5 Thomas Gleixner 2008-09-14 12:47:13 UTC
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 ?

Thanks,

	tglx
Comment 6 Thomas Gleixner 2008-09-14 13:25:31 UTC
> 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 .....

Thanks,

	tglx
Comment 7 Duncan 2008-09-24 08:26:00 UTC
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.