* [REVIEW for merge] kbuild updates including silence of section mismatch check
@ 2008-02-02 20:35 Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Remove __INIT_REFOK and __INITDATA_REFOK Sam Ravnborg
` (12 more replies)
0 siblings, 13 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:35 UTC (permalink / raw)
To: linux-kbuild, LKML; +Cc: Andrew Morton
I have queued up 10 patched for kbuild.git.
As a few are new I post them for review here
before pushing to Linus.
The patchset from Mathieu causes the hing number of
lines changed - the rest is smaller stuff.
The most visible change is that I have made all the section mismatch
go away and in the end of the build modpost report the number
of section mismatch warnings and how to see detail.
The typical output is now:
modpost: Found 35 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
And CONFIG_DEBUG_SECTION_MISMATCH cannot be set
from the config anymore so we are not noisy in typical
allyesconfig builds.
When we are down to an acceptable number of warnings modpost
will start to be vocal again. The acceptable number is somewhere
below 20 for an allyseconfig/allmodconfig build.
All patches are pushed out to kbuild.git.
See below for more details and a combined patch.
Individual patches will be sent to kbuild only (and no cc:)
Sam
Bryan Wu (1):
kbuild: add svn revision information to setlocalversion
Geert Uytterhoeven (1):
kbuild: Spelling/grammar fixes for config DEBUG_SECTION_MISMATCH
Mathieu Desnoyers (5):
Fix ARM to play nicely with generic Instrumentation menu
Create arch/Kconfig
Add HAVE_OPROFILE
Add HAVE_KPROBES
Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig
Ralf Baechle (1):
Remove __INIT_REFOK and __INITDATA_REFOK
Sam Ravnborg (3):
kbuild: print only total number of section mismatces found
kconfig: mark config as changed when loading an alternate config
kconfig: ignore select of unknown symbol
arch/Kconfig | 31 +++++++++++++++++++
arch/alpha/Kconfig | 3 +-
arch/arm/Kconfig | 21 +++++++++++-
arch/arm/Kconfig.instrumentation | 62 --------------------------------------
arch/avr32/Kconfig | 5 +--
arch/blackfin/Kconfig | 3 +-
arch/cris/Kconfig | 2 -
arch/frv/Kconfig | 2 -
arch/h8300/Kconfig | 2 -
arch/ia64/Kconfig | 4 +-
arch/m32r/Kconfig | 3 +-
arch/m68k/Kconfig | 2 -
arch/m68knommu/Kconfig | 2 -
arch/mips/Kconfig | 3 +-
arch/parisc/Kconfig | 3 +-
arch/powerpc/Kconfig | 4 +-
arch/ppc/Kconfig | 4 +-
arch/s390/Kconfig | 4 +-
arch/sh/Kconfig | 3 +-
arch/sparc/Kconfig | 3 +-
arch/sparc64/Kconfig | 4 +-
arch/um/Kconfig | 2 -
arch/v850/Kconfig | 2 -
arch/x86/Kconfig | 8 +----
arch/xtensa/Kconfig | 2 -
include/linux/init.h | 3 --
init/Kconfig | 14 ++++++++
kernel/Kconfig.instrumentation | 49 ------------------------------
lib/Kconfig.debug | 14 ++++----
scripts/kconfig/mconf.c | 1 +
| 9 ++----
scripts/mod/modpost.c | 15 ++++-----
scripts/setlocalversion | 15 +++++++++
33 files changed, 118 insertions(+), 186 deletions(-)
diff --git a/arch/Kconfig b/arch/Kconfig
new file mode 100644
index 0000000..3d72dc3
--- /dev/null
+++ b/arch/Kconfig
@@ -0,0 +1,31 @@
+#
+# General architecture dependent options
+#
+
+config OPROFILE
+ tristate "OProfile system profiling (EXPERIMENTAL)"
+ depends on PROFILING
+ depends on HAVE_OPROFILE
+ help
+ OProfile is a profiling system capable of profiling the
+ whole system, include the kernel, kernel modules, libraries,
+ and applications.
+
+ If unsure, say N.
+
+config HAVE_OPROFILE
+ def_bool n
+
+config KPROBES
+ bool "Kprobes"
+ depends on KALLSYMS && MODULES
+ depends on HAVE_KPROBES
+ help
+ Kprobes allows you to trap at almost any kernel address and
+ execute a callback function. register_kprobe() establishes
+ a probepoint and specifies the callback. Kprobes is useful
+ for kernel debugging, non-intrusive instrumentation and testing.
+ If in doubt, say "N".
+
+config HAVE_KPROBES
+ def_bool n
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index c613d5f..9abcd5f 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -5,6 +5,7 @@
config ALPHA
bool
default y
+ select HAVE_OPROFILE
help
The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory,
@@ -649,8 +650,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/alpha/Kconfig.debug"
# DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4b1a8e3..36176f4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -10,6 +10,8 @@ config ARM
default y
select RTC_LIB
select SYS_SUPPORTS_APM_EMULATION
+ select HAVE_OPROFILE
+ select HAVE_KPROBES if (!XIP_KERNEL)
help
The ARM series is a line of low-power-consumption RISC chip designs
licensed by ARM Ltd and targeted at embedded applications and
@@ -135,6 +137,23 @@ config FIQ
config ARCH_MTD_XIP
bool
+if OPROFILE
+
+config OPROFILE_ARMV6
+ def_bool y
+ depends on CPU_V6 && !SMP
+ select OPROFILE_ARM11_CORE
+
+config OPROFILE_MPCORE
+ def_bool y
+ depends on CPU_V6 && SMP
+ select OPROFILE_ARM11_CORE
+
+config OPROFILE_ARM11_CORE
+ bool
+
+endif
+
config VECTORS_BASE
hex
default 0xffff0000 if MMU || CPU_HIGH_VECTOR
@@ -1128,8 +1147,6 @@ endmenu
source "fs/Kconfig"
-source "arch/arm/Kconfig.instrumentation"
-
source "arch/arm/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/arm/Kconfig.instrumentation b/arch/arm/Kconfig.instrumentation
deleted file mode 100644
index 453ad8e..0000000
--- a/arch/arm/Kconfig.instrumentation
+++ /dev/null
@@ -1,62 +0,0 @@
-menuconfig INSTRUMENTATION
- bool "Instrumentation Support"
- default y
- ---help---
- Say Y here to get to see options related to performance measurement,
- system-wide debugging, and testing. This option alone does not add any
- kernel code.
-
- If you say N, all options in this submenu will be skipped and
- disabled. If you're trying to debug the kernel itself, go see the
- Kernel Hacking menu.
-
-if INSTRUMENTATION
-
-config PROFILING
- bool "Profiling support (EXPERIMENTAL)"
- help
- Say Y here to enable the extended profiling support mechanisms used
- by profilers such as OProfile.
-
-config OPROFILE
- tristate "OProfile system profiling (EXPERIMENTAL)"
- depends on PROFILING && !UML
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-config OPROFILE_ARMV6
- bool
- depends on OPROFILE && CPU_V6 && !SMP
- default y
- select OPROFILE_ARM11_CORE
-
-config OPROFILE_MPCORE
- bool
- depends on OPROFILE && CPU_V6 && SMP
- default y
- select OPROFILE_ARM11_CORE
-
-config OPROFILE_ARM11_CORE
- bool
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES && !UML && !XIP_KERNEL
- help
- Kprobes allows you to trap at almost any kernel address and
- execute a callback function. register_kprobe() establishes
- a probepoint and specifies the callback. Kprobes is useful
- for kernel debugging, non-intrusive instrumentation and testing.
- If in doubt, say "N".
-
-config MARKERS
- bool "Activate markers"
- help
- Place an empty function call at each marker site. Can be
- dynamically changed for a probe function.
-
-endif # INSTRUMENTATION
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index e34e2c9..0e56e96 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -10,6 +10,8 @@ config AVR32
# With EMBEDDED=n, we get lots of stuff automatically selected
# that we usually don't need on AVR32.
select EMBEDDED
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
help
AVR32 is a high-performance 32-bit RISC microprocessor core,
designed for cost-sensitive embedded applications, with particular
@@ -54,9 +56,6 @@ config ARCH_HAS_ILOG2_U32
config ARCH_HAS_ILOG2_U64
def_bool n
-config ARCH_SUPPORTS_OPROFILE
- def_bool y
-
config GENERIC_HWEIGHT
def_bool y
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 4802eb7..ba21e33 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -24,6 +24,7 @@ config RWSEM_XCHGADD_ALGORITHM
config BLACKFIN
bool
default y
+ select HAVE_OPROFILE
config ZONE_DMA
bool
@@ -973,8 +974,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/blackfin/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 222da15..7f0be4c 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -213,8 +213,6 @@ source "drivers/pci/Kconfig"
source "drivers/usb/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/cris/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index e3f965c..68380cb 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -375,8 +375,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/frv/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index ff6a871..dc61222 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -223,8 +223,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/h8300/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index c9307c9..a0740fb 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -15,6 +15,8 @@ config IA64
select ACPI if (!IA64_HP_SIM)
select PM if (!IA64_HP_SIM)
select ARCH_SUPPORTS_MSI
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
default y
help
The Itanium Processor Family is Intel's 64-bit successor to
@@ -600,8 +602,6 @@ config IRQ_PER_CPU
source "arch/ia64/hp/sim/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/ia64/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 49326e9..1225975 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -8,6 +8,7 @@ mainmenu "Linux/M32R Kernel Configuration"
config M32R
bool
default y
+ select HAVE_OPROFILE
config SBUS
bool
@@ -426,8 +427,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/m32r/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 24e6bc0..8236e42 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -678,8 +678,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/m68k/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index bd92137..6abbbb8 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -711,8 +711,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/m68knommu/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 36a4018..d38ebd3 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1,6 +1,7 @@
config MIPS
bool
default y
+ select HAVE_OPROFILE
# Horrible source of confusion. Die, die, die ...
select EMBEDDED
select RTC_LIB
@@ -2095,8 +2096,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/mips/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 2b649c4..25c10fa 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -7,6 +7,7 @@ mainmenu "Linux/PA-RISC Kernel Configuration"
config PARISC
def_bool y
+ select HAVE_OPROFILE
help
The PA-RISC microprocessor is designed by Hewlett-Packard and used
in many of their workstations & servers (HP9000 700 and 800 series,
@@ -272,8 +273,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/parisc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 4a22c99..b94d450 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -87,6 +87,8 @@ config ARCH_NO_VIRT_TO_BUS
config PPC
bool
default y
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
config EARLY_PRINTK
bool
@@ -713,8 +715,6 @@ source "arch/powerpc/sysdev/qe_lib/Kconfig"
source "lib/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/powerpc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index db5934c..531156f 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -42,6 +42,8 @@ config GENERIC_CALIBRATE_DELAY
config PPC
bool
default y
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
config PPC32
bool
@@ -1256,8 +1258,6 @@ endmenu
source "lib/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/ppc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 6ef54d2..974f9c3 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -51,6 +51,8 @@ mainmenu "Linux Kernel Configuration"
config S390
def_bool y
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
source "init/Kconfig"
@@ -526,8 +528,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/s390/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index b30c4c3..bfbd54a 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -8,6 +8,7 @@ mainmenu "Linux/SuperH Kernel Configuration"
config SUPERH
def_bool y
select EMBEDDED
+ select HAVE_OPROFILE
help
The SuperH is a RISC processor targeted for use in embedded systems
and consumer electronics; it was also used in the Sega Dreamcast
@@ -896,8 +897,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/sh/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 527adc8..51008a2 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -63,6 +63,7 @@ config NR_CPUS
config SPARC
bool
default y
+ select HAVE_OPROFILE
# Identify this as a Sparc32 build
config SPARC32
@@ -320,8 +321,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/sparc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 158522f..a7739b5 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -8,6 +8,8 @@ mainmenu "Linux/UltraSPARC Kernel Configuration"
config SPARC
bool
default y
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
config SPARC64
bool
@@ -465,8 +467,6 @@ source "drivers/sbus/char/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/sparc64/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
index dd1689b..55945db 100644
--- a/arch/um/Kconfig
+++ b/arch/um/Kconfig
@@ -289,6 +289,4 @@ config INPUT
bool
default n
-source "kernel/Kconfig.instrumentation"
-
source "arch/um/Kconfig.debug"
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
index b6a50b8..ace479a 100644
--- a/arch/v850/Kconfig
+++ b/arch/v850/Kconfig
@@ -331,8 +331,6 @@ source "sound/Kconfig"
source "drivers/usb/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/v850/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7109037..3162cb4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -18,6 +18,8 @@ config X86_64
### Arch settings
config X86
def_bool y
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
config GENERIC_LOCKBREAK
def_bool n
@@ -106,10 +108,6 @@ config GENERIC_TIME_VSYSCALL
config HAVE_SETUP_PER_CPU_AREA
def_bool X86_64
-config ARCH_SUPPORTS_OPROFILE
- bool
- default y
-
select HAVE_KVM
config ARCH_HIBERNATION_POSSIBLE
@@ -1597,8 +1595,6 @@ source "drivers/firmware/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/x86/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 844721e..5d5546c 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -246,8 +246,6 @@ config EMBEDDED_RAMDISK_IMAGE
provide one yourself.
endmenu
-source "kernel/Kconfig.instrumentation"
-
source "arch/xtensa/Kconfig.debug"
source "security/Kconfig"
diff --git a/include/linux/init.h b/include/linux/init.h
index 2efbda0..90cdbbb 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -124,9 +124,6 @@
#define __REF .section ".ref.text", "ax"
#define __REFDATA .section ".ref.data", "aw"
#define __REFCONST .section ".ref.rodata", "aw"
-/* backward compatibility */
-#define __INIT_REFOK .section __REF
-#define __INITDATA_REFOK .section __REFDATA
#ifndef __ASSEMBLY__
/*
diff --git a/init/Kconfig b/init/Kconfig
index dcc96a8..b2acdeb 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -665,6 +665,20 @@ config SLOB
endchoice
+config PROFILING
+ bool "Profiling support (EXPERIMENTAL)"
+ help
+ Say Y here to enable the extended profiling support mechanisms used
+ by profilers such as OProfile.
+
+config MARKERS
+ bool "Activate markers"
+ help
+ Place an empty function call at each marker site. Can be
+ dynamically changed for a probe function.
+
+source "arch/Kconfig"
+
endmenu # General setup
config SLABINFO
diff --git a/kernel/Kconfig.instrumentation b/kernel/Kconfig.instrumentation
deleted file mode 100644
index 468f47a..0000000
--- a/kernel/Kconfig.instrumentation
+++ /dev/null
@@ -1,49 +0,0 @@
-menuconfig INSTRUMENTATION
- bool "Instrumentation Support"
- default y
- ---help---
- Say Y here to get to see options related to performance measurement,
- system-wide debugging, and testing. This option alone does not add any
- kernel code.
-
- If you say N, all options in this submenu will be skipped and
- disabled. If you're trying to debug the kernel itself, go see the
- Kernel Hacking menu.
-
-if INSTRUMENTATION
-
-config PROFILING
- bool "Profiling support (EXPERIMENTAL)"
- help
- Say Y here to enable the extended profiling support mechanisms used
- by profilers such as OProfile.
-
-config OPROFILE
- tristate "OProfile system profiling (EXPERIMENTAL)"
- depends on PROFILING && !UML
- depends on ARCH_SUPPORTS_OPROFILE || ALPHA || ARM || BLACKFIN || IA64 || M32R || PARISC || PPC || S390 || SUPERH || SPARC
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES && !UML
- depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
- help
- Kprobes allows you to trap at almost any kernel address and
- execute a callback function. register_kprobe() establishes
- a probepoint and specifies the callback. Kprobes is useful
- for kernel debugging, non-intrusive instrumentation and testing.
- If in doubt, say "N".
-
-config MARKERS
- bool "Activate markers"
- help
- Place an empty function call at each marker site. Can be
- dynamically changed for a probe function.
-
-endif # INSTRUMENTATION
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 0d8a5a4..0d385be 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -81,7 +81,7 @@ config HEADERS_CHECK
config DEBUG_SECTION_MISMATCH
bool "Enable full Section mismatch analysis"
- default n
+ depends on UNDEFINED
help
The section mismatch analysis checks if there are illegal
references from one section to another section.
@@ -90,19 +90,19 @@ config DEBUG_SECTION_MISMATCH
most likely result in an oops.
In the code functions and variables are annotated with
__init, __devinit etc. (see full list in include/linux/init.h)
- which result in the code/data being placed in specific sections.
- The section mismatch anaylsis are always done after a full
- kernel build but enabling this options will in addition
+ which results in the code/data being placed in specific sections.
+ The section mismatch analysis is always done after a full
+ kernel build but enabling this option will in addition
do the following:
- Add the option -fno-inline-functions-called-once to gcc
When inlining a function annotated __init in a non-init
- function we would loose the section information and thus
+ function we would lose the section information and thus
the analysis would not catch the illegal reference.
- This options tell gcc to inline less but will also
+ This option tells gcc to inline less but will also
result in a larger kernel.
- Run the section mismatch analysis for each module/built-in.o
When we run the section mismatch analysis on vmlinux.o we
- looses valueable information about where the mismatch was
+ lose valueble information about where the mismatch was
introduced.
Running the analysis for each module/built-in.o file
will tell where the mismatch happens much closer to the
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 50e61c4..734cf4f 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -821,6 +821,7 @@ static void conf_load(void)
return;
if (!conf_read(dialog_input_result)) {
set_config_filename(dialog_input_result);
+ sym_set_change_count(1);
return;
}
show_textbox(NULL, _("File does not exist!"), 5, 38);
--git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index fdad173..606ceb9 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -203,12 +203,9 @@ void sym_check_prop(struct symbol *sym)
prop_warn(prop,
"config symbol '%s' uses select, but is "
"not boolean or tristate", sym->name);
- else if (sym2->type == S_UNKNOWN)
- prop_warn(prop,
- "'select' used by config symbol '%s' "
- "refers to undefined symbol '%s'",
- sym->name, sym2->name);
- else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
+ else if (sym2->type != S_UNKNOWN &&
+ sym2->type != S_BOOLEAN &&
+ sym2->type != S_TRISTATE)
prop_warn(prop,
"'%s' has wrong type. 'select' only "
"accept arguments of boolean and "
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index f8efc93..c2e918e 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1125,15 +1125,15 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
to = to_is_func ? "function" : "variable";
to_p = to_is_func ? "()" : "";
+ sec_mismatch_count++;
+ if (!sec_mismatch_verbose)
+ return;
+
fprintf(stderr, "WARNING: %s(%s+0x%llx): Section mismatch in"
" reference from the %s %s%s to the %s %s:%s%s\n",
modname, fromsec, fromaddr, from, fromsym, from_p,
to, tosec, tosym, to_p);
- sec_mismatch_count++;
- if (!sec_mismatch_verbose)
- return;
-
switch (mismatch) {
case TEXT_TO_INIT:
fprintf(stderr,
@@ -1939,10 +1939,9 @@ int main(int argc, char **argv)
write_dump(dump_write);
if (sec_mismatch_count && !sec_mismatch_verbose)
fprintf(stderr, "modpost: Found %d section mismatch(es).\n"
- "To see additional details select \"Enable full "
- "Section mismatch analysis\"\n"
- "in the Kernel Hacking menu "
- "(CONFIG_SECTION_MISMATCH).\n", sec_mismatch_count);
+ "To see full details build your kernel with:\n"
+ "'make CONFIG_DEBUG_SECTION_MISMATCH=y'\n",
+ sec_mismatch_count);
return err;
}
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
old mode 100644
new mode 100755
index 52f032e..17b0028
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -45,3 +45,18 @@ if hgid=`hg id 2>/dev/null`; then
# All done with mercurial
exit
fi
+
+# Check for svn and a svn repo.
+if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` ; then
+ changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
+
+ # Are there uncommitted changes?
+ if [ $changes != 0 ]; then
+ printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
+ else
+ printf -- '-svn%s' "$rev"
+ fi
+
+ # All done with svn
+ exit
+fi
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] Remove __INIT_REFOK and __INITDATA_REFOK
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kbuild: Spelling/grammar fixes for config DEBUG_SECTION_MISMATCH Sam Ravnborg
` (11 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Ralf Baechle
From: Ralf Baechle <ralf@linux-mips.org>
Commit 312b1485fb509c9bc32eda28ad29537896658cb8 made __INIT_REFOK expand
into .section .section ".ref.text", "ax". Since the assembler doesn't
tolerate stuttering in the source that broke all MIPS builds.
Since with this change Sam downgraded __INIT_REFOK to just a backward
compat thing and there being only a single use in the MIPS arch code the
best solution is to delete both of __INIT_REFOK and __INITDATA_REFOK (which
was equally broken) being unused anyway these can be deleted.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
include/linux/init.h | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/include/linux/init.h b/include/linux/init.h
index 2efbda0..90cdbbb 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -124,9 +124,6 @@
#define __REF .section ".ref.text", "ax"
#define __REFDATA .section ".ref.data", "aw"
#define __REFCONST .section ".ref.rodata", "aw"
-/* backward compatibility */
-#define __INIT_REFOK .section __REF
-#define __INITDATA_REFOK .section __REFDATA
#ifndef __ASSEMBLY__
/*
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] kbuild: Spelling/grammar fixes for config DEBUG_SECTION_MISMATCH
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Remove __INIT_REFOK and __INITDATA_REFOK Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kbuild: add svn revision information to setlocalversion Sam Ravnborg
` (10 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Geert Uytterhoeven
From: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Including additional fixes from Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
lib/Kconfig.debug | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index d090d72..0d385be 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -90,19 +90,19 @@ config DEBUG_SECTION_MISMATCH
most likely result in an oops.
In the code functions and variables are annotated with
__init, __devinit etc. (see full list in include/linux/init.h)
- which result in the code/data being placed in specific sections.
- The section mismatch anaylsis are always done after a full
- kernel build but enabling this options will in addition
+ which results in the code/data being placed in specific sections.
+ The section mismatch analysis is always done after a full
+ kernel build but enabling this option will in addition
do the following:
- Add the option -fno-inline-functions-called-once to gcc
When inlining a function annotated __init in a non-init
- function we would loose the section information and thus
+ function we would lose the section information and thus
the analysis would not catch the illegal reference.
- This options tell gcc to inline less but will also
+ This option tells gcc to inline less but will also
result in a larger kernel.
- Run the section mismatch analysis for each module/built-in.o
When we run the section mismatch analysis on vmlinux.o we
- looses valueable information about where the mismatch was
+ lose valueble information about where the mismatch was
introduced.
Running the analysis for each module/built-in.o file
will tell where the mismatch happens much closer to the
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] kbuild: add svn revision information to setlocalversion
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Remove __INIT_REFOK and __INITDATA_REFOK Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kbuild: Spelling/grammar fixes for config DEBUG_SECTION_MISMATCH Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kconfig: mark config as changed when loading an alternate config Sam Ravnborg
` (9 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Bryan Wu
From: Bryan Wu <bryan.wu@analog.com>
follow git and mercurial style, include uncommitted changes detect
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
---
scripts/setlocalversion | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
mode change 100644 => 100755 scripts/setlocalversion
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
old mode 100644
new mode 100755
index 52f032e..17b0028
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -45,3 +45,18 @@ if hgid=`hg id 2>/dev/null`; then
# All done with mercurial
exit
fi
+
+# Check for svn and a svn repo.
+if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` ; then
+ changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
+
+ # Are there uncommitted changes?
+ if [ $changes != 0 ]; then
+ printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
+ else
+ printf -- '-svn%s' "$rev"
+ fi
+
+ # All done with svn
+ exit
+fi
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] kconfig: mark config as changed when loading an alternate config
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (2 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] kbuild: add svn revision information to setlocalversion Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kconfig: ignore select of unknown symbol Sam Ravnborg
` (8 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Sam Ravnborg
Michal Zachar <mgzachar@mail.t-com.sk> reported that
menuconfig did not save the new config when loading
an alternate config unless he altered it manually.
Mark config as changed upon load of alternate config fixed this.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Roman Zippel <zippel@linux-m68k.org>
---
scripts/kconfig/mconf.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 50e61c4..734cf4f 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -821,6 +821,7 @@ static void conf_load(void)
return;
if (!conf_read(dialog_input_result)) {
set_config_filename(dialog_input_result);
+ sym_set_change_count(1);
return;
}
show_textbox(NULL, _("File does not exist!"), 5, 38);
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] kconfig: ignore select of unknown symbol
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (3 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] kconfig: mark config as changed when loading an alternate config Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Fix ARM to play nicely with generic Instrumentation menu Sam Ravnborg
` (7 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Sam Ravnborg
We have had warnings for a long time about select of unknow symbol
but the warnings does not really makes sense since we may
select a symbol that is relevant and defined in one
arch but not in another arch.
And as long as we do not use a common set of Kconfig files
for all archs lets just ignore this case.
Previously we have used this to find bad uses of
select but we need a more relaible method to do so.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
---
| 9 +++------
1 files changed, 3 insertions(+), 6 deletions(-)
--git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index fdad173..606ceb9 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -203,12 +203,9 @@ void sym_check_prop(struct symbol *sym)
prop_warn(prop,
"config symbol '%s' uses select, but is "
"not boolean or tristate", sym->name);
- else if (sym2->type == S_UNKNOWN)
- prop_warn(prop,
- "'select' used by config symbol '%s' "
- "refers to undefined symbol '%s'",
- sym->name, sym2->name);
- else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
+ else if (sym2->type != S_UNKNOWN &&
+ sym2->type != S_BOOLEAN &&
+ sym2->type != S_TRISTATE)
prop_warn(prop,
"'%s' has wrong type. 'select' only "
"accept arguments of boolean and "
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] Fix ARM to play nicely with generic Instrumentation menu
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (4 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] kconfig: ignore select of unknown symbol Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Create arch/Kconfig Sam Ravnborg
` (6 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Mathieu Desnoyers
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
The conflicting commit for
move-kconfiginstrumentation-to-arch-kconfig-and-init-kconfig.patch
is the ARM fix from Linus :
commit 38ad9aebe70dc72df08851bbd1620d89329129ba
He just seemed to agree that my approach (just putting the missing ARM
config options in arch/arm/Kconfig) works too. The main advantage it has
is that it is smaller, does not need a cleanup in the future and does
not break the following patches unnecessarily.
It's just been discussed here
http://lkml.org/lkml/2008/1/15/267
However, Linus might prefer to stay with his own patch and I would
totally understand it that late in the release cycle. Therefore I submit
this for the next release cycle.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
CC: Russell King <rmk+lkml@arm.linux.org.uk>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/arm/Kconfig | 19 +++++++++++-
arch/arm/Kconfig.instrumentation | 62 --------------------------------------
kernel/Kconfig.instrumentation | 2 +-
3 files changed, 19 insertions(+), 64 deletions(-)
delete mode 100644 arch/arm/Kconfig.instrumentation
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4b1a8e3..623eaa1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -135,6 +135,23 @@ config FIQ
config ARCH_MTD_XIP
bool
+if OPROFILE
+
+config OPROFILE_ARMV6
+ def_bool y
+ depends on CPU_V6 && !SMP
+ select OPROFILE_ARM11_CORE
+
+config OPROFILE_MPCORE
+ def_bool y
+ depends on CPU_V6 && SMP
+ select OPROFILE_ARM11_CORE
+
+config OPROFILE_ARM11_CORE
+ bool
+
+endif
+
config VECTORS_BASE
hex
default 0xffff0000 if MMU || CPU_HIGH_VECTOR
@@ -1128,7 +1145,7 @@ endmenu
source "fs/Kconfig"
-source "arch/arm/Kconfig.instrumentation"
+source "kernel/Kconfig.instrumentation"
source "arch/arm/Kconfig.debug"
diff --git a/arch/arm/Kconfig.instrumentation b/arch/arm/Kconfig.instrumentation
deleted file mode 100644
index 453ad8e..0000000
--- a/arch/arm/Kconfig.instrumentation
+++ /dev/null
@@ -1,62 +0,0 @@
-menuconfig INSTRUMENTATION
- bool "Instrumentation Support"
- default y
- ---help---
- Say Y here to get to see options related to performance measurement,
- system-wide debugging, and testing. This option alone does not add any
- kernel code.
-
- If you say N, all options in this submenu will be skipped and
- disabled. If you're trying to debug the kernel itself, go see the
- Kernel Hacking menu.
-
-if INSTRUMENTATION
-
-config PROFILING
- bool "Profiling support (EXPERIMENTAL)"
- help
- Say Y here to enable the extended profiling support mechanisms used
- by profilers such as OProfile.
-
-config OPROFILE
- tristate "OProfile system profiling (EXPERIMENTAL)"
- depends on PROFILING && !UML
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-config OPROFILE_ARMV6
- bool
- depends on OPROFILE && CPU_V6 && !SMP
- default y
- select OPROFILE_ARM11_CORE
-
-config OPROFILE_MPCORE
- bool
- depends on OPROFILE && CPU_V6 && SMP
- default y
- select OPROFILE_ARM11_CORE
-
-config OPROFILE_ARM11_CORE
- bool
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES && !UML && !XIP_KERNEL
- help
- Kprobes allows you to trap at almost any kernel address and
- execute a callback function. register_kprobe() establishes
- a probepoint and specifies the callback. Kprobes is useful
- for kernel debugging, non-intrusive instrumentation and testing.
- If in doubt, say "N".
-
-config MARKERS
- bool "Activate markers"
- help
- Place an empty function call at each marker site. Can be
- dynamically changed for a probe function.
-
-endif # INSTRUMENTATION
diff --git a/kernel/Kconfig.instrumentation b/kernel/Kconfig.instrumentation
index 468f47a..a00dcb6 100644
--- a/kernel/Kconfig.instrumentation
+++ b/kernel/Kconfig.instrumentation
@@ -32,7 +32,7 @@ config OPROFILE
config KPROBES
bool "Kprobes"
depends on KALLSYMS && MODULES && !UML
- depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
+ depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32 || (ARM && !XIP_KERNEL)
help
Kprobes allows you to trap at almost any kernel address and
execute a callback function. register_kprobe() establishes
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] Create arch/Kconfig
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (5 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] Fix ARM to play nicely with generic Instrumentation menu Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Add HAVE_OPROFILE Sam Ravnborg
` (5 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Mathieu Desnoyers
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Puts the content of arch/Kconfig in the "General setup" menu.
Linus:
> Should it come with a re-duplication of it's content into each
> architecture, which was the case previously ? The oprofile and kprobes
> menu entries were litteraly cut and pasted from one architecture to
> another. Should we put its content in init/Kconfig then ?
I don't think it's a good idea to go back to making it per-architecture,
although that extensive "depends on <list-of-archiectures-here>" might
indicate that there certainly is room for cleanup there.
And I don't think it's wrong keeping it in kernel/Kconfig.xyz per se, I
just think it's wrong to (a) lump the code together when it really doesn't
necessarily need to and (b) show it to users as some kind of choice that
is tied together (whether it then has common code or not).
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like
depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
really shouldn't exist in a file like kernel/Kconfig.instrumentation.
It would be much better to do
depends on ARCH_SUPPORTS_KPROBES
in that generic file, and then architectures that do support it would just
have a
bool ARCH_SUPPORTS_KPROBES
default y
in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...
Sam Ravnborg:
Stuff it into a new file: arch/Kconfig
We can then extend this file to include all the 'trailing'
Kconfig things that are anyway equal for all ARCHs.
But it should be kept clean - so if we introduce such a file
then we should use ARCH_HAS_whatever in the arch specific Kconfig
files to enable stuff that is not shared.
[...]
The above suggestion is actually not exactly the best way to do it...
First the naming..
A quick grep shows following usage today (in Kconfig files)
ARCH_HAS 51
ARCH_SUPPORTS 4
HAVE_ARCH 7
ARCH_HAS is the clear winner.
In the common Kconfig file do:
config FOO
depends on ARCH_HAS_FOO
bool "bla bla"
config ARCH_HAS_FOO
def_bool n
In the arch specific Kconfig file in a suitable place do:
config SUITABLE_OPTION
select ARCH_HAS_FOO
The naming of ARCH_HAS_ is fixed and shall be:
ARCH_HAS_<config option it will enable>
Only a single line added pr. architecture.
And we will end up with a (maybe even commented) list of trivial selects.
- Yet another update :
Moving to HAVE_* now.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/Kconfig | 3 +++
init/Kconfig | 2 ++
2 files changed, 5 insertions(+), 0 deletions(-)
create mode 100644 arch/Kconfig
diff --git a/arch/Kconfig b/arch/Kconfig
new file mode 100644
index 0000000..2491714
--- /dev/null
+++ b/arch/Kconfig
@@ -0,0 +1,3 @@
+#
+# General architecture dependent options
+#
diff --git a/init/Kconfig b/init/Kconfig
index dcc96a8..8de6c48 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -665,6 +665,8 @@ config SLOB
endchoice
+source "arch/Kconfig"
+
endmenu # General setup
config SLABINFO
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] Add HAVE_OPROFILE
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (6 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] Create arch/Kconfig Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Add HAVE_KPROBES Sam Ravnborg
` (4 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Mathieu Desnoyers
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like
depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
really shouldn't exist in a file like kernel/Kconfig.instrumentation.
It would be much better to do
depends on ARCH_SUPPORTS_KPROBES
in that generic file, and then architectures that do support it would just
have a
bool ARCH_SUPPORTS_KPROBES
default y
in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...
Changelog:
Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use
config ARCH_SUPPORTS_KPROBES
def_bool y
instead, which is a bit denser.
We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...
Changelog :
- Moving to HAVE_*.
- Add AVR32 oprofile.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/alpha/Kconfig | 1 +
arch/arm/Kconfig | 1 +
arch/avr32/Kconfig | 4 +---
arch/blackfin/Kconfig | 1 +
arch/ia64/Kconfig | 1 +
arch/m32r/Kconfig | 1 +
arch/mips/Kconfig | 1 +
arch/parisc/Kconfig | 1 +
arch/powerpc/Kconfig | 1 +
arch/ppc/Kconfig | 1 +
arch/s390/Kconfig | 1 +
arch/sh/Kconfig | 1 +
arch/sparc/Kconfig | 1 +
arch/sparc64/Kconfig | 1 +
arch/x86/Kconfig | 5 +----
kernel/Kconfig.instrumentation | 5 ++++-
16 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index c613d5f..0ff5572 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -5,6 +5,7 @@
config ALPHA
bool
default y
+ select HAVE_OPROFILE
help
The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory,
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 623eaa1..3b3eb4e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -10,6 +10,7 @@ config ARM
default y
select RTC_LIB
select SYS_SUPPORTS_APM_EMULATION
+ select HAVE_OPROFILE
help
The ARM series is a line of low-power-consumption RISC chip designs
licensed by ARM Ltd and targeted at embedded applications and
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index e34e2c9..b46932c 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -10,6 +10,7 @@ config AVR32
# With EMBEDDED=n, we get lots of stuff automatically selected
# that we usually don't need on AVR32.
select EMBEDDED
+ select HAVE_OPROFILE
help
AVR32 is a high-performance 32-bit RISC microprocessor core,
designed for cost-sensitive embedded applications, with particular
@@ -54,9 +55,6 @@ config ARCH_HAS_ILOG2_U32
config ARCH_HAS_ILOG2_U64
def_bool n
-config ARCH_SUPPORTS_OPROFILE
- def_bool y
-
config GENERIC_HWEIGHT
def_bool y
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 4802eb7..3ba89dc 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -24,6 +24,7 @@ config RWSEM_XCHGADD_ALGORITHM
config BLACKFIN
bool
default y
+ select HAVE_OPROFILE
config ZONE_DMA
bool
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index c9307c9..5e410f2 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -15,6 +15,7 @@ config IA64
select ACPI if (!IA64_HP_SIM)
select PM if (!IA64_HP_SIM)
select ARCH_SUPPORTS_MSI
+ select HAVE_OPROFILE
default y
help
The Itanium Processor Family is Intel's 64-bit successor to
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 49326e9..b93897d 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -8,6 +8,7 @@ mainmenu "Linux/M32R Kernel Configuration"
config M32R
bool
default y
+ select HAVE_OPROFILE
config SBUS
bool
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 36a4018..eb8be54 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1,6 +1,7 @@
config MIPS
bool
default y
+ select HAVE_OPROFILE
# Horrible source of confusion. Die, die, die ...
select EMBEDDED
select RTC_LIB
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 2b649c4..e1a2f77 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -7,6 +7,7 @@ mainmenu "Linux/PA-RISC Kernel Configuration"
config PARISC
def_bool y
+ select HAVE_OPROFILE
help
The PA-RISC microprocessor is designed by Hewlett-Packard and used
in many of their workstations & servers (HP9000 700 and 800 series,
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 4a22c99..c3c29e7 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -87,6 +87,7 @@ config ARCH_NO_VIRT_TO_BUS
config PPC
bool
default y
+ select HAVE_OPROFILE
config EARLY_PRINTK
bool
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index db5934c..ea9eb48 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -42,6 +42,7 @@ config GENERIC_CALIBRATE_DELAY
config PPC
bool
default y
+ select HAVE_OPROFILE
config PPC32
bool
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 6ef54d2..c561f6f 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -51,6 +51,7 @@ mainmenu "Linux Kernel Configuration"
config S390
def_bool y
+ select HAVE_OPROFILE
source "init/Kconfig"
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index b30c4c3..f868691 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -8,6 +8,7 @@ mainmenu "Linux/SuperH Kernel Configuration"
config SUPERH
def_bool y
select EMBEDDED
+ select HAVE_OPROFILE
help
The SuperH is a RISC processor targeted for use in embedded systems
and consumer electronics; it was also used in the Sega Dreamcast
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 527adc8..3d9bc2f 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -63,6 +63,7 @@ config NR_CPUS
config SPARC
bool
default y
+ select HAVE_OPROFILE
# Identify this as a Sparc32 build
config SPARC32
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 158522f..ca14d88 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -8,6 +8,7 @@ mainmenu "Linux/UltraSPARC Kernel Configuration"
config SPARC
bool
default y
+ select HAVE_OPROFILE
config SPARC64
bool
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 7109037..6559488 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -18,6 +18,7 @@ config X86_64
### Arch settings
config X86
def_bool y
+ select HAVE_OPROFILE
config GENERIC_LOCKBREAK
def_bool n
@@ -106,10 +107,6 @@ config GENERIC_TIME_VSYSCALL
config HAVE_SETUP_PER_CPU_AREA
def_bool X86_64
-config ARCH_SUPPORTS_OPROFILE
- bool
- default y
-
select HAVE_KVM
config ARCH_HIBERNATION_POSSIBLE
diff --git a/kernel/Kconfig.instrumentation b/kernel/Kconfig.instrumentation
index a00dcb6..d9d010a 100644
--- a/kernel/Kconfig.instrumentation
+++ b/kernel/Kconfig.instrumentation
@@ -21,7 +21,7 @@ config PROFILING
config OPROFILE
tristate "OProfile system profiling (EXPERIMENTAL)"
depends on PROFILING && !UML
- depends on ARCH_SUPPORTS_OPROFILE || ALPHA || ARM || BLACKFIN || IA64 || M32R || PARISC || PPC || S390 || SUPERH || SPARC
+ depends on HAVE_OPROFILE
help
OProfile is a profiling system capable of profiling the
whole system, include the kernel, kernel modules, libraries,
@@ -29,6 +29,9 @@ config OPROFILE
If unsure, say N.
+config HAVE_OPROFILE
+ def_bool n
+
config KPROBES
bool "Kprobes"
depends on KALLSYMS && MODULES && !UML
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] Add HAVE_KPROBES
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (7 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] Add HAVE_OPROFILE Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig Sam Ravnborg
` (3 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Mathieu Desnoyers
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Linus:
On the per-architecture side, I do think it would be better to *not* have
internal architecture knowledge in a generic file, and as such a line like
depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32
really shouldn't exist in a file like kernel/Kconfig.instrumentation.
It would be much better to do
depends on ARCH_SUPPORTS_KPROBES
in that generic file, and then architectures that do support it would just
have a
bool ARCH_SUPPORTS_KPROBES
default y
in *their* architecture files. That would seem to be much more logical,
and is readable both for arch maintainers *and* for people who have no
clue - and don't care - about which architecture is supposed to support
which interface...
Changelog:
Actually, I know I gave this as the magic incantation, but now that I see
it, I realize that I should have told you to just use
config KPROBES_SUPPORT
def_bool y
instead, which is a bit denser.
We seem to use both kinds of syntax for these things, but this is really
what "def_bool" is there for...
- Use HAVE_KPROBES
- Use a select
- Yet another update :
Moving to HAVE_* now.
- Update ARM for kprobes support.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/arm/Kconfig | 1 +
arch/avr32/Kconfig | 1 +
arch/ia64/Kconfig | 1 +
arch/powerpc/Kconfig | 1 +
arch/ppc/Kconfig | 1 +
arch/s390/Kconfig | 1 +
arch/sparc64/Kconfig | 1 +
arch/x86/Kconfig | 1 +
kernel/Kconfig.instrumentation | 5 ++++-
9 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3b3eb4e..ea45eef 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -11,6 +11,7 @@ config ARM
select RTC_LIB
select SYS_SUPPORTS_APM_EMULATION
select HAVE_OPROFILE
+ select HAVE_KPROBES if (!XIP_KERNEL)
help
The ARM series is a line of low-power-consumption RISC chip designs
licensed by ARM Ltd and targeted at embedded applications and
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index b46932c..0e56e96 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -11,6 +11,7 @@ config AVR32
# that we usually don't need on AVR32.
select EMBEDDED
select HAVE_OPROFILE
+ select HAVE_KPROBES
help
AVR32 is a high-performance 32-bit RISC microprocessor core,
designed for cost-sensitive embedded applications, with particular
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 5e410f2..8db6324 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -16,6 +16,7 @@ config IA64
select PM if (!IA64_HP_SIM)
select ARCH_SUPPORTS_MSI
select HAVE_OPROFILE
+ select HAVE_KPROBES
default y
help
The Itanium Processor Family is Intel's 64-bit successor to
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index c3c29e7..c6f3eb5 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -88,6 +88,7 @@ config PPC
bool
default y
select HAVE_OPROFILE
+ select HAVE_KPROBES
config EARLY_PRINTK
bool
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index ea9eb48..92e37f5 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -43,6 +43,7 @@ config PPC
bool
default y
select HAVE_OPROFILE
+ select HAVE_KPROBES
config PPC32
bool
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index c561f6f..272c6c8 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -52,6 +52,7 @@ mainmenu "Linux Kernel Configuration"
config S390
def_bool y
select HAVE_OPROFILE
+ select HAVE_KPROBES
source "init/Kconfig"
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index ca14d88..cbdc80d 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -9,6 +9,7 @@ config SPARC
bool
default y
select HAVE_OPROFILE
+ select HAVE_KPROBES
config SPARC64
bool
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 6559488..72db31c 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -19,6 +19,7 @@ config X86_64
config X86
def_bool y
select HAVE_OPROFILE
+ select HAVE_KPROBES
config GENERIC_LOCKBREAK
def_bool n
diff --git a/kernel/Kconfig.instrumentation b/kernel/Kconfig.instrumentation
index d9d010a..2195b65 100644
--- a/kernel/Kconfig.instrumentation
+++ b/kernel/Kconfig.instrumentation
@@ -35,7 +35,7 @@ config HAVE_OPROFILE
config KPROBES
bool "Kprobes"
depends on KALLSYMS && MODULES && !UML
- depends on X86_32 || IA64 || PPC || S390 || SPARC64 || X86_64 || AVR32 || (ARM && !XIP_KERNEL)
+ depends on HAVE_KPROBES
help
Kprobes allows you to trap at almost any kernel address and
execute a callback function. register_kprobe() establishes
@@ -43,6 +43,9 @@ config KPROBES
for kernel debugging, non-intrusive instrumentation and testing.
If in doubt, say "N".
+config HAVE_KPROBES
+ def_bool n
+
config MARKERS
bool "Activate markers"
help
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* [PATCH] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (8 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] Add HAVE_KPROBES Sam Ravnborg
@ 2008-02-02 20:46 ` Sam Ravnborg
2008-02-02 21:25 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Frans Pop
` (2 subsequent siblings)
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 20:46 UTC (permalink / raw)
To: kbuild; +Cc: Mathieu Desnoyers
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Move the instrumentation Kconfig to
arch/Kconfig for architecture dependent options
- oprofile
- kprobes
and
init/Kconfig for architecture independent options
- profiling
- markers
Remove the "Instrumentation Support" menu. Everything moves to "General setup".
Delete the kernel/Kconfig.instrumentation file.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
arch/Kconfig | 28 ++++++++++++++++++++
arch/alpha/Kconfig | 2 -
arch/arm/Kconfig | 2 -
arch/blackfin/Kconfig | 2 -
arch/cris/Kconfig | 2 -
arch/frv/Kconfig | 2 -
arch/h8300/Kconfig | 2 -
arch/ia64/Kconfig | 2 -
arch/m32r/Kconfig | 2 -
arch/m68k/Kconfig | 2 -
arch/m68knommu/Kconfig | 2 -
arch/mips/Kconfig | 2 -
arch/parisc/Kconfig | 2 -
arch/powerpc/Kconfig | 2 -
arch/ppc/Kconfig | 2 -
arch/s390/Kconfig | 2 -
arch/sh/Kconfig | 2 -
arch/sparc/Kconfig | 2 -
arch/sparc64/Kconfig | 2 -
arch/um/Kconfig | 2 -
arch/v850/Kconfig | 2 -
arch/x86/Kconfig | 2 -
arch/xtensa/Kconfig | 2 -
init/Kconfig | 12 ++++++++
kernel/Kconfig.instrumentation | 55 ----------------------------------------
25 files changed, 40 insertions(+), 99 deletions(-)
delete mode 100644 kernel/Kconfig.instrumentation
diff --git a/arch/Kconfig b/arch/Kconfig
index 2491714..3d72dc3 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -1,3 +1,31 @@
#
# General architecture dependent options
#
+
+config OPROFILE
+ tristate "OProfile system profiling (EXPERIMENTAL)"
+ depends on PROFILING
+ depends on HAVE_OPROFILE
+ help
+ OProfile is a profiling system capable of profiling the
+ whole system, include the kernel, kernel modules, libraries,
+ and applications.
+
+ If unsure, say N.
+
+config HAVE_OPROFILE
+ def_bool n
+
+config KPROBES
+ bool "Kprobes"
+ depends on KALLSYMS && MODULES
+ depends on HAVE_KPROBES
+ help
+ Kprobes allows you to trap at almost any kernel address and
+ execute a callback function. register_kprobe() establishes
+ a probepoint and specifies the callback. Kprobes is useful
+ for kernel debugging, non-intrusive instrumentation and testing.
+ If in doubt, say "N".
+
+config HAVE_KPROBES
+ def_bool n
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 0ff5572..9abcd5f 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -650,8 +650,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/alpha/Kconfig.debug"
# DUMMY_CONSOLE may be defined in drivers/video/console/Kconfig
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ea45eef..36176f4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1147,8 +1147,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/arm/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 3ba89dc..ba21e33 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -974,8 +974,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/blackfin/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 222da15..7f0be4c 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -213,8 +213,6 @@ source "drivers/pci/Kconfig"
source "drivers/usb/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/cris/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index e3f965c..68380cb 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -375,8 +375,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/frv/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index ff6a871..dc61222 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -223,8 +223,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/h8300/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 8db6324..a0740fb 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -602,8 +602,6 @@ config IRQ_PER_CPU
source "arch/ia64/hp/sim/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/ia64/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index b93897d..1225975 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -427,8 +427,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/m32r/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 24e6bc0..8236e42 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -678,8 +678,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/m68k/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index bd92137..6abbbb8 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -711,8 +711,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/m68knommu/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index eb8be54..d38ebd3 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2096,8 +2096,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/mips/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index e1a2f77..25c10fa 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -273,8 +273,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/parisc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index c6f3eb5..b94d450 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -715,8 +715,6 @@ source "arch/powerpc/sysdev/qe_lib/Kconfig"
source "lib/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/powerpc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index 92e37f5..531156f 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -1258,8 +1258,6 @@ endmenu
source "lib/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/ppc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 272c6c8..974f9c3 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -528,8 +528,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/s390/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index f868691..bfbd54a 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -897,8 +897,6 @@ source "drivers/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/sh/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 3d9bc2f..51008a2 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -321,8 +321,6 @@ endmenu
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/sparc/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index cbdc80d..a7739b5 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -467,8 +467,6 @@ source "drivers/sbus/char/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/sparc64/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
index dd1689b..55945db 100644
--- a/arch/um/Kconfig
+++ b/arch/um/Kconfig
@@ -289,6 +289,4 @@ config INPUT
bool
default n
-source "kernel/Kconfig.instrumentation"
-
source "arch/um/Kconfig.debug"
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
index b6a50b8..ace479a 100644
--- a/arch/v850/Kconfig
+++ b/arch/v850/Kconfig
@@ -331,8 +331,6 @@ source "sound/Kconfig"
source "drivers/usb/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/v850/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 72db31c..3162cb4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1595,8 +1595,6 @@ source "drivers/firmware/Kconfig"
source "fs/Kconfig"
-source "kernel/Kconfig.instrumentation"
-
source "arch/x86/Kconfig.debug"
source "security/Kconfig"
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 844721e..5d5546c 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -246,8 +246,6 @@ config EMBEDDED_RAMDISK_IMAGE
provide one yourself.
endmenu
-source "kernel/Kconfig.instrumentation"
-
source "arch/xtensa/Kconfig.debug"
source "security/Kconfig"
diff --git a/init/Kconfig b/init/Kconfig
index 8de6c48..b2acdeb 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -665,6 +665,18 @@ config SLOB
endchoice
+config PROFILING
+ bool "Profiling support (EXPERIMENTAL)"
+ help
+ Say Y here to enable the extended profiling support mechanisms used
+ by profilers such as OProfile.
+
+config MARKERS
+ bool "Activate markers"
+ help
+ Place an empty function call at each marker site. Can be
+ dynamically changed for a probe function.
+
source "arch/Kconfig"
endmenu # General setup
diff --git a/kernel/Kconfig.instrumentation b/kernel/Kconfig.instrumentation
deleted file mode 100644
index 2195b65..0000000
--- a/kernel/Kconfig.instrumentation
+++ /dev/null
@@ -1,55 +0,0 @@
-menuconfig INSTRUMENTATION
- bool "Instrumentation Support"
- default y
- ---help---
- Say Y here to get to see options related to performance measurement,
- system-wide debugging, and testing. This option alone does not add any
- kernel code.
-
- If you say N, all options in this submenu will be skipped and
- disabled. If you're trying to debug the kernel itself, go see the
- Kernel Hacking menu.
-
-if INSTRUMENTATION
-
-config PROFILING
- bool "Profiling support (EXPERIMENTAL)"
- help
- Say Y here to enable the extended profiling support mechanisms used
- by profilers such as OProfile.
-
-config OPROFILE
- tristate "OProfile system profiling (EXPERIMENTAL)"
- depends on PROFILING && !UML
- depends on HAVE_OPROFILE
- help
- OProfile is a profiling system capable of profiling the
- whole system, include the kernel, kernel modules, libraries,
- and applications.
-
- If unsure, say N.
-
-config HAVE_OPROFILE
- def_bool n
-
-config KPROBES
- bool "Kprobes"
- depends on KALLSYMS && MODULES && !UML
- depends on HAVE_KPROBES
- help
- Kprobes allows you to trap at almost any kernel address and
- execute a callback function. register_kprobe() establishes
- a probepoint and specifies the callback. Kprobes is useful
- for kernel debugging, non-intrusive instrumentation and testing.
- If in doubt, say "N".
-
-config HAVE_KPROBES
- def_bool n
-
-config MARKERS
- bool "Activate markers"
- help
- Place an empty function call at each marker site. Can be
- dynamically changed for a probe function.
-
-endif # INSTRUMENTATION
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [REVIEW for merge] kbuild updates including silence of section mismatch check
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (9 preceding siblings ...)
2008-02-02 20:46 ` [PATCH] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig Sam Ravnborg
@ 2008-02-02 21:25 ` Frans Pop
2008-02-02 21:30 ` Sam Ravnborg
2008-02-02 22:37 ` [Additional PATCH] kbuild: do not warn about __*init/__*exit symbols being exported Sam Ravnborg
2008-02-05 10:38 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Geert Uytterhoeven
12 siblings, 1 reply; 19+ messages in thread
From: Frans Pop @ 2008-02-02 21:25 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: akpm, linux-kbuild, linux-kernel
Sam Ravnborg wrote:
> --- a/scripts/setlocalversion
> +++ b/scripts/setlocalversion
> @@ -45,3 +45,18 @@ if hgid=`hg id 2>/dev/null`; then
> # All done with mercurial
> exit
> fi
> +
> +# Check for svn and a svn repo.
> +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` ; then
> + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
> +
> + # Are there uncommitted changes?
> + if [ $changes != 0 ]; then
> + printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
> + else
> + printf -- '-svn%s' "$rev"
> + fi
> +
> + # All done with svn
> + exit
> +fi
This looks broken. Unless I'm very much mistaken the 'if' statement is
always going to be true because the awk statement will always execute
without error. Try: echo "" | awk '{print $NF}' || echo Error
So, the code should probably be changed to:
+if rev=`svn info 2>/dev/null | grep '^Revision' ; then
+ rev=`echo $rev | awk '{print $NF}'`
+ changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
or alternatively:
+if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` && \
+ [ -n "$rev" ] ; then
+ changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
Cheers,
FJP
P.S. Looks like the mercurial section is missing some indentation.
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [REVIEW for merge] kbuild updates including silence of section mismatch check
2008-02-02 21:25 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Frans Pop
@ 2008-02-02 21:30 ` Sam Ravnborg
2008-02-03 3:30 ` Bryan Wu
2008-02-03 6:13 ` [PATCH try#2 ] kbuild: add svn revision information to setlocalversion Bryan Wu
0 siblings, 2 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 21:30 UTC (permalink / raw)
To: Frans Pop, Bryan Wu; +Cc: akpm, linux-kbuild, linux-kernel
Bryan this was from you - please comment/fix.
Sam
On Sat, Feb 02, 2008 at 10:25:51PM +0100, Frans Pop wrote:
> Sam Ravnborg wrote:
> > --- a/scripts/setlocalversion
> > +++ b/scripts/setlocalversion
> > @@ -45,3 +45,18 @@ if hgid=`hg id 2>/dev/null`; then
> > # All done with mercurial
> > exit
> > fi
> > +
> > +# Check for svn and a svn repo.
> > +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` ; then
> > + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
> > +
> > + # Are there uncommitted changes?
> > + if [ $changes != 0 ]; then
> > + printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
> > + else
> > + printf -- '-svn%s' "$rev"
> > + fi
> > +
> > + # All done with svn
> > + exit
> > +fi
>
> This looks broken. Unless I'm very much mistaken the 'if' statement is
> always going to be true because the awk statement will always execute
> without error. Try: echo "" | awk '{print $NF}' || echo Error
>
> So, the code should probably be changed to:
> +if rev=`svn info 2>/dev/null | grep '^Revision' ; then
> + rev=`echo $rev | awk '{print $NF}'`
> + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
>
> or alternatively:
> +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` && \
> + [ -n "$rev" ] ; then
> + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
>
> Cheers,
> FJP
>
> P.S. Looks like the mercurial section is missing some indentation.
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [REVIEW for merge] kbuild updates including silence of section mismatch check
2008-02-02 21:30 ` Sam Ravnborg
@ 2008-02-03 3:30 ` Bryan Wu
2008-02-03 6:13 ` [PATCH try#2 ] kbuild: add svn revision information to setlocalversion Bryan Wu
1 sibling, 0 replies; 19+ messages in thread
From: Bryan Wu @ 2008-02-03 3:30 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: Frans Pop, Bryan Wu, akpm, linux-kbuild, linux-kernel
On Sat, 2008-02-02 at 22:30 +0100, Sam Ravnborg wrote:
> Bryan this was from you - please comment/fix.
>
> Sam
>
> On Sat, Feb 02, 2008 at 10:25:51PM +0100, Frans Pop wrote:
> > Sam Ravnborg wrote:
> > > --- a/scripts/setlocalversion
> > > +++ b/scripts/setlocalversion
> > > @@ -45,3 +45,18 @@ if hgid=`hg id 2>/dev/null`; then
> > > # All done with mercurial
> > > exit
> > > fi
> > > +
> > > +# Check for svn and a svn repo.
> > > +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` ; then
> > > + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
> > > +
> > > + # Are there uncommitted changes?
> > > + if [ $changes != 0 ]; then
> > > + printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
> > > + else
> > > + printf -- '-svn%s' "$rev"
> > > + fi
> > > +
> > > + # All done with svn
> > > + exit
> > > +fi
> >
> > This looks broken. Unless I'm very much mistaken the 'if' statement is
> > always going to be true because the awk statement will always execute
> > without error. Try: echo "" | awk '{print $NF}' || echo Error
> >
You are right, it will always plus a '-svn' string at the end of kernel
version string even if it is not a svn repo.
> > So, the code should probably be changed to:
> > +if rev=`svn info 2>/dev/null | grep '^Revision' ; then
> > + rev=`echo $rev | awk '{print $NF}'`
> > + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
> >
I prefer to this one. A updated version will be sent out soon.
> > or alternatively:
> > +if rev=`svn info 2>/dev/null | grep '^Revision' | awk '{print $NF}'` && \
> > + [ -n "$rev" ] ; then
> > + changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
> >
> > Cheers,
> > FJP
> >
> > P.S. Looks like the mercurial section is missing some indentation.
I will fix this, too.
Regards,
-Bryan Wu
^ permalink raw reply [flat|nested] 19+ messages in thread* [PATCH try#2 ] kbuild: add svn revision information to setlocalversion
2008-02-02 21:30 ` Sam Ravnborg
2008-02-03 3:30 ` Bryan Wu
@ 2008-02-03 6:13 ` Bryan Wu
2008-02-03 10:04 ` Sam Ravnborg
1 sibling, 1 reply; 19+ messages in thread
From: Bryan Wu @ 2008-02-03 6:13 UTC (permalink / raw)
To: Sam Ravnborg, Frans Pop; +Cc: Bryan Wu, akpm, linux-kbuild, linux-kernel
From 0a7a2c6f19d32a85ca1a7887382325170ef19a66 Mon Sep 17 00:00:00 2001
From: Bryan Wu <bryan.wu@analog.com>
Date: Sun, 3 Feb 2008 14:05:00 +0800
Subject: [PATCH] [Scripts] add svn revision information to setlocalversion
follow git and mercurial style, include uncommitted changes detect
Cc: Frans Pop <elendil@planet.nl>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
---
scripts/setlocalversion | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
mode change 100644 => 100755 scripts/setlocalversion
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
old mode 100644
new mode 100755
index 52f032e..1c1bdaf
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -45,3 +45,19 @@ if hgid=`hg id 2>/dev/null`; then
# All done with mercurial
exit
fi
+
+# Check for svn and a svn repo.
+if rev=`svn info 2>/dev/null | grep '^Revision'`; then
+ rev=`echo $rev | awk '{print $NF}'`
+ changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
+
+ # Are there uncommitted changes?
+ if [ $changes != 0 ]; then
+ printf -- '-svn%s%s%s' "$rev" -dirty "$changes"
+ else
+ printf -- '-svn%s' "$rev"
+ fi
+
+ # All done with svn
+ exit
+fi
--
1.5.3.4
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [PATCH try#2 ] kbuild: add svn revision information to setlocalversion
2008-02-03 6:13 ` [PATCH try#2 ] kbuild: add svn revision information to setlocalversion Bryan Wu
@ 2008-02-03 10:04 ` Sam Ravnborg
0 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-03 10:04 UTC (permalink / raw)
To: Bryan Wu; +Cc: Frans Pop, akpm, linux-kbuild, linux-kernel
On Sun, Feb 03, 2008 at 02:13:26PM +0800, Bryan Wu wrote:
> >From 0a7a2c6f19d32a85ca1a7887382325170ef19a66 Mon Sep 17 00:00:00 2001
> From: Bryan Wu <bryan.wu@analog.com>
> Date: Sun, 3 Feb 2008 14:05:00 +0800
> Subject: [PATCH] [Scripts] add svn revision information to setlocalversion
>
> follow git and mercurial style, include uncommitted changes detect
>
> Cc: Frans Pop <elendil@planet.nl>
> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Applied and pushed out.
Thanks for the review Frans and thanks for the quick fix Bryan.
Sam
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Additional PATCH] kbuild: do not warn about __*init/__*exit symbols being exported
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (10 preceding siblings ...)
2008-02-02 21:25 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Frans Pop
@ 2008-02-02 22:37 ` Sam Ravnborg
2008-02-05 10:38 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Geert Uytterhoeven
12 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-02 22:37 UTC (permalink / raw)
To: linux-kbuild, LKML; +Cc: Andrew Morton
From e01639fd02bcf0126fcdedd09536a060e2593f07 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Sat, 2 Feb 2008 23:30:22 +0100
Subject: [PATCH] kbuild: do not warn about __*init/__*exit symbols being exported
We have several legitimate uses where we export symbols
annotated with one of:
__devinit, __cpuinit, __meminit and their exit counterpart.
So let's stop warning about those being exported in favour
of adding all sorts of workaround to silence the warning.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
scripts/mod/modpost.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index c2e918e..5d54646 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -870,7 +870,7 @@ const struct sectioncheck sectioncheck[] = {
/* Do not export init/exit functions or data */
{
.fromsec = { "__ksymtab*", NULL },
- .tosec = { ALL_INIT_SECTIONS, ALL_EXIT_SECTIONS, NULL },
+ .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
.mismatch = EXPORT_TO_INIT_EXIT
}
};
--
1.5.4.rc3.14.g44397
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [REVIEW for merge] kbuild updates including silence of section mismatch check
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
` (11 preceding siblings ...)
2008-02-02 22:37 ` [Additional PATCH] kbuild: do not warn about __*init/__*exit symbols being exported Sam Ravnborg
@ 2008-02-05 10:38 ` Geert Uytterhoeven
2008-02-06 20:58 ` Sam Ravnborg
12 siblings, 1 reply; 19+ messages in thread
From: Geert Uytterhoeven @ 2008-02-05 10:38 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linux-kbuild, LKML, Andrew Morton
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2846 bytes --]
On Sat, 2 Feb 2008, Sam Ravnborg wrote:
> The most visible change is that I have made all the section mismatch
> go away and in the end of the build modpost report the number
> of section mismatch warnings and how to see detail.
>
> The typical output is now:
>
> modpost: Found 35 section mismatch(es).
> To see full details build your kernel with:
> 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
Can we get a `warning' string literal in that message, so I notice it when
grepping for compiler warnings?
... Ah, there already exists a warn() routine, so let's use it.
Subject: modpost: Use warn() for announcing section mismatches
From: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
modpost: Use warn() for announcing section mismatches, for easy grepping for
warnings in build logs.
Also change an existing call from fprintf() to warn() while we're at it.
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
---
scripts/mod/modpost.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1129,10 +1129,10 @@ static void report_sec_mismatch(const ch
if (!sec_mismatch_verbose)
return;
- fprintf(stderr, "WARNING: %s(%s+0x%llx): Section mismatch in"
- " reference from the %s %s%s to the %s %s:%s%s\n",
- modname, fromsec, fromaddr, from, fromsym, from_p,
- to, tosec, tosym, to_p);
+ warn("%s(%s+0x%llx): Section mismatch in reference from the %s %s%s "
+ "to the %s %s:%s%s\n",
+ modname, fromsec, fromaddr, from, fromsym, from_p, to, tosec,
+ tosym, to_p);
switch (mismatch) {
case TEXT_TO_INIT:
@@ -1938,10 +1938,10 @@ int main(int argc, char **argv)
if (dump_write)
write_dump(dump_write);
if (sec_mismatch_count && !sec_mismatch_verbose)
- fprintf(stderr, "modpost: Found %d section mismatch(es).\n"
- "To see full details build your kernel with:\n"
- "'make CONFIG_DEBUG_SECTION_MISMATCH=y'\n",
- sec_mismatch_count);
+ warn("modpost: Found %d section mismatch(es).\n"
+ "To see full details build your kernel with:\n"
+ "'make CONFIG_DEBUG_SECTION_MISMATCH=y'\n",
+ sec_mismatch_count);
return err;
}
With kind regards,
Geert Uytterhoeven
Software Architect
Sony Network and Software Technology Center Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium
Phone: +32 (0)2 700 8453
Fax: +32 (0)2 700 8622
E-mail: Geert.Uytterhoeven@sonycom.com
Internet: http://www.sony-europe.com/
Sony Network and Software Technology Center Europe
A division of Sony Service Centre (Europe) N.V.
Registered office: Technologielaan 7 · B-1840 Londerzeel · Belgium
VAT BE 0413.825.160 · RPR Brussels
Fortis Bank Zaventem · Swift GEBABEBB08A · IBAN BE39001382358619
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [REVIEW for merge] kbuild updates including silence of section mismatch check
2008-02-05 10:38 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Geert Uytterhoeven
@ 2008-02-06 20:58 ` Sam Ravnborg
0 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2008-02-06 20:58 UTC (permalink / raw)
To: Geert Uytterhoeven; +Cc: linux-kbuild, LKML, Andrew Morton
On Tue, Feb 05, 2008 at 11:38:49AM +0100, Geert Uytterhoeven wrote:
> On Sat, 2 Feb 2008, Sam Ravnborg wrote:
> > The most visible change is that I have made all the section mismatch
> > go away and in the end of the build modpost report the number
> > of section mismatch warnings and how to see detail.
> >
> > The typical output is now:
> >
> > modpost: Found 35 section mismatch(es).
> > To see full details build your kernel with:
> > 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
>
> Can we get a `warning' string literal in that message, so I notice it when
> grepping for compiler warnings?
>
> ... Ah, there already exists a warn() routine, so let's use it.
>
> Subject: modpost: Use warn() for announcing section mismatches
Fair enough. Applied.
Sam
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2008-02-06 20:58 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-02 20:35 [REVIEW for merge] kbuild updates including silence of section mismatch check Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Remove __INIT_REFOK and __INITDATA_REFOK Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kbuild: Spelling/grammar fixes for config DEBUG_SECTION_MISMATCH Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kbuild: add svn revision information to setlocalversion Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kconfig: mark config as changed when loading an alternate config Sam Ravnborg
2008-02-02 20:46 ` [PATCH] kconfig: ignore select of unknown symbol Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Fix ARM to play nicely with generic Instrumentation menu Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Create arch/Kconfig Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Add HAVE_OPROFILE Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Add HAVE_KPROBES Sam Ravnborg
2008-02-02 20:46 ` [PATCH] Move Kconfig.instrumentation to arch/Kconfig and init/Kconfig Sam Ravnborg
2008-02-02 21:25 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Frans Pop
2008-02-02 21:30 ` Sam Ravnborg
2008-02-03 3:30 ` Bryan Wu
2008-02-03 6:13 ` [PATCH try#2 ] kbuild: add svn revision information to setlocalversion Bryan Wu
2008-02-03 10:04 ` Sam Ravnborg
2008-02-02 22:37 ` [Additional PATCH] kbuild: do not warn about __*init/__*exit symbols being exported Sam Ravnborg
2008-02-05 10:38 ` [REVIEW for merge] kbuild updates including silence of section mismatch check Geert Uytterhoeven
2008-02-06 20:58 ` Sam Ravnborg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox