Trying to make new kernel i run into this:
CC arch/x86/lib/delay.o
AS arch/x86/lib/getuser.o
AS arch/x86/lib/putuser.o
CC arch/x86/lib/usercopy_32.o
AR arch/x86/lib/lib.a
LD vmlinux.o
MODPOST vmlinux.o
WARNING: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
kernel/built-in.o: In function `free_event':
perf_event.c:(.text+0x66eb3): undefined reference to `irq_work_sync'
kernel/built-in.o: In function `perf_output_put_handle':
perf_event.c:(.text+0x680e1): undefined reference to `irq_work_queue'
kernel/built-in.o: In function `__perf_event_overflow':
perf_event.c:(.text+0x6a75e): undefined reference to `irq_work_queue'
make: *** [.tmp_vmlinux1] Îøèáêà 1
kernel.org git master up to
commit eb8abb927ae2fd1730e24ea94cd9527f3c086292
Author: Theodore Ts'o <tytso@mit.edu>
Date: Tue Nov 2 09:34:50 2010 -0400
ext4: Remove useless spinlock in ext4_getattr()
this is my .config
#
# Automatically generated make config: don't edit
# Linux/i386 2.6.37-rc1 Kernel Configuration
# Tue Nov 2 12:49:06 2010
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
# CONFIG_NEED_DMA_MAP_STATE is not set
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# ...No, same error. I'm using (Linux/GNU Binutils) 2.20.51.0.8.20100412 , gcc (GCC) 4.4.4 on Slackware -current box (glibc-2.12.1-i486-2). Not sure what else i can do for debugging this. --
The build fails for me with the given .config file. It's due to selects and depends, finally comes down to HAVE_PERF_EVENTS not being enabled for M386 or M486. Do you actually have a processor of that vintage? We can probably fix the Kconfig files to prevent this build error... (Ingo: FYI) --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** --
No, i have AMD k7: cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 3 model name : AMD Duron(tm) Processor stepping : 1 cpu MHz : 950.014 cache size : 64 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow up bogomips : 1900.02 clflush size : 32 cache_alignment : 32 address sizes : 36 bits physical, 32 bits virtual power management: but i prefer to build kernel for i486 (i686 was giving me troubles on old k6-2 machine some time ago, and i used variant of this config for LiveCD, sometimes for some QEMU tests ... i have real 486 box but it has too litle memory , 4mb, for being useful.) --
FWIW this .config generates a _TON_ of Kconfig dep warnings..
Urgh, Kconfig hell.
config PERF_EVENTS
bool "Kernel performance events and counters"
default y if (PROFILING || PERF_COUNTERS)
depends on HAVE_PERF_EVENTS
select ANON_INODES
select IRQ_WORK
# grep PERF_EVENTS borken-build/.config
CONFIG_PERF_EVENTS=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
So we managed to get PERF_EVENTS=y even though its dependency
HAVE_PERF_EVENTS=n.
I bet that's because of:
config X86
select HAVE_PERF_EVENTS if (!M386 && !M486)
select PERF_EVENTS
Ingo, should we simply do something like the below patch?
---
Subject: x86: Remove M[34]86 conditional on HAVE_PERF_EVENTS
x86 requires PERF_EVENTS because of the hardware breakpoint mess,
so don't make it conditional on M[34]86.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
arch/x86/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e832768..e330da2 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -21,7 +21,7 @@ config X86
select HAVE_UNSTABLE_SCHED_CLOCK
select HAVE_IDE
select HAVE_OPROFILE
- select HAVE_PERF_EVENTS if (!M386 && !M486)
+ select HAVE_PERF_EVENTS
select HAVE_IRQ_WORK
select HAVE_IOREMAP_PROT
select HAVE_KPROBES
--
Yeah, i guess that would be fine. Even an i386 has hw breakpoints. Thanks, Ingo --
Yeah, they are all MEDIA-related, known about, and someone is working Acked-by: Randy Dunlap <randy.dunlap@oracle.com> -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** --
| Greg KH | Og dreams of kernels |
| Jens Axboe | [PATCH 31/33] Fusion: sg chaining support |
| Arnd Bergmann | Re: finding your own dead "CONFIG_" variables |
| Mark Brown | [PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset |
| Tony Breeds | [LGUEST] Look in object dir for .config |
git: | |
| Brian Downing | Re: Git in a Nutshell guide |
| John Benes | Re: master has some toys |
| Matthias Lederhofer | [PATCH 4/7] introduce GIT_WORK_TREE to specify the work tree |
| Alexander Sulfrian | [RFC/PATCH] RE: git calls SSH_ASKPASS even if DISPLAY is not set |
| Junio C Hamano | Re: Rss produced by git is not valid xml? |
| Linux Kernel Mailing List | iSeries: fix section mismatch in iseries_veth |
| Linux Kernel Mailing List | ixbge: remove TX lock and redo TX accounting. |
| Linux Kernel Mailing List | ixgbe: fix several counter register errata |
| Linux Kernel Mailing List | b43: fix build with CONFIG_SSB_PCIHOST=n |
| Linux Kernel Mailing List | 9p: block-based vi |
