From: Linus Torvalds Date: Wed, 23 Sep 2009 22:37:02 +0000 (-0700) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c37efa932598de5e30330a1414e34d9e082e0d9e;hp=-c;p=mv-sheeva.git Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (30 commits) Use macros for .data.page_aligned section. Use macros for .bss.page_aligned section. Use new __init_task_data macro in arch init_task.c files. kbuild: Don't define ALIGN and ENTRY when preprocessing linker scripts. arm, cris, mips, sparc, powerpc, um, xtensa: fix build with bash 4.0 kbuild: add static to prototypes kbuild: fail build if recordmcount.pl fails kbuild: set -fconserve-stack option for gcc 4.5 kbuild: echo the record_mcount command gconfig: disable "typeahead find" search in treeviews kbuild: fix cc1 options check to ensure we do not use -fPIC when compiling checkincludes.pl: add option to remove duplicates in place markup_oops: use modinfo to avoid confusion with underscored module names checkincludes.pl: provide usage helper checkincludes.pl: close file as soon as we're done with it ctags: usability fix kernel hacking: move STRIP_ASM_SYMS from General gitignore usr/initramfs_data.cpio.bz2 and usr/initramfs_data.cpio.lzma kbuild: Check if linker supports the -X option kbuild: introduce ld-option ... Fix trivial conflict in scripts/basic/fixdep.c --- c37efa932598de5e30330a1414e34d9e082e0d9e diff --combined arch/arm/Makefile index 54661125a8b,c695fdac5b3..a73caaf6676 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@@ -14,7 -14,7 +14,7 @@@ LDFLAGS_vmlinux :=-p --no-undefined - ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) LDFLAGS_vmlinux += --be8 endif - CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) + OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S GZFLAGS :=-9 #KBUILD_CFLAGS +=-pipe @@@ -25,7 -25,7 +25,7 @@@ KBUILD_CFLAGS +=$(call cc-option,-marm, # Select a platform tht is kept up-to-date KBUILD_DEFCONFIG := versatile_defconfig -# defines filename extension depending memory manement type. +# defines filename extension depending memory management type. ifeq ($(CONFIG_MMU),) MMUEXT := -nommu endif @@@ -279,7 -279,7 +279,7 @@@ define archhel echo ' (supply initrd image via make variable INITRD=)' echo ' install - Install uncompressed kernel' echo ' zinstall - Install compressed kernel' - echo ' Install using (your) ~/bin/installkernel or' - echo ' (distribution) /sbin/installkernel or' + echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or' + echo ' (distribution) /sbin/$(INSTALLKERNEL) or' echo ' install to $$(INSTALL_PATH) and run lilo' endef diff --combined arch/avr32/mm/init.c index 376f18c4a6c,cc60d10cf8f..94925641e53 --- a/arch/avr32/mm/init.c +++ b/arch/avr32/mm/init.c @@@ -24,11 -24,9 +24,9 @@@ #include #include - #define __page_aligned __attribute__((section(".data.page_aligned"))) - DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); - pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned; + pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned_data; struct page *empty_zero_page; EXPORT_SYMBOL(empty_zero_page); @@@ -141,7 -139,7 +139,7 @@@ void __init mem_init(void printk ("Memory: %luk/%luk available (%dk kernel code, " "%dk reserved, %dk data, %dk init)\n", - (unsigned long)nr_free_pages() << (PAGE_SHIFT - 10), + nr_free_pages() << (PAGE_SHIFT - 10), totalram_pages << (PAGE_SHIFT - 10), codesize >> 10, reservedpages << (PAGE_SHIFT - 10), diff --combined arch/sparc/kernel/Makefile index 3a048fad7ee,96aad394cd3..5b47fab9966 --- a/arch/sparc/kernel/Makefile +++ b/arch/sparc/kernel/Makefile @@@ -7,7 -7,11 +7,11 @@@ ccflags-y := -Werro extra-y := head_$(BITS).o extra-y += init_task.o - extra-y += vmlinux.lds + + # Undefine sparc when processing vmlinux.lds - it is used + # And teach CPP we are doing $(BITS) builds (for this case) + CPPFLAGS_vmlinux.lds := -Usparc -m$(BITS) + extra-y += vmlinux.lds obj-$(CONFIG_SPARC32) += entry.o wof.o wuf.o obj-$(CONFIG_SPARC32) += etrap_32.o @@@ -104,5 -108,5 +108,5 @@@ obj-$(CONFIG_AUDIT) += audit. audit--$(CONFIG_AUDIT) := compat_audit.o obj-$(CONFIG_COMPAT) += $(audit--y) -pc--$(CONFIG_PERF_COUNTERS) := perf_counter.o +pc--$(CONFIG_PERF_EVENTS) := perf_event.o obj-$(CONFIG_SPARC64) += $(pc--y) diff --combined init/Kconfig index 0aa6579504c,85c24ff9484..c7bac39d6c6 --- a/init/Kconfig +++ b/init/Kconfig @@@ -331,8 -331,7 +331,8 @@@ config TREE_PREEMPT_RC This option selects the RCU implementation that is designed for very large SMP systems with hundreds or thousands of CPUs, but for which real-time response - is also required. + is also required. It also scales down nicely to + smaller systems. endchoice @@@ -916,36 -915,31 +916,36 @@@ config AI by some high performance threaded applications. Disabling this option saves about 7k. -config HAVE_PERF_COUNTERS +config HAVE_PERF_EVENTS bool help See tools/perf/design.txt for details. -menu "Performance Counters" +menu "Kernel Performance Events And Counters" -config PERF_COUNTERS - bool "Kernel Performance Counters" - default y if PROFILING - depends on HAVE_PERF_COUNTERS +config PERF_EVENTS + bool "Kernel performance events and counters" + default y if (PROFILING || PERF_COUNTERS) + depends on HAVE_PERF_EVENTS select ANON_INODES help - Enable kernel support for performance counter hardware. + Enable kernel support for various performance events provided + by software and hardware. + + Software events are supported either build-in or via the + use of generic tracepoints. - Performance counters are special hardware registers available - on most modern CPUs. These registers count the number of certain + Most modern CPUs support performance events via performance + counter registers. These registers count the number of certain types of hw events: such as instructions executed, cachemisses suffered, or branches mis-predicted - without slowing down the kernel or applications. These registers can also trigger interrupts when a threshold number of events have passed - and can thus be used to profile the code that runs on that CPU. - The Linux Performance Counter subsystem provides an abstraction of - these hardware capabilities, available via a system call. It + The Linux Performance Event subsystem provides an abstraction of + these software and hardware cevent apabilities, available via a + system call and used by the "perf" utility in tools/perf/. It provides per task and per CPU counters, and it provides event capabilities on top of those. @@@ -953,29 -947,17 +953,29 @@@ config EVENT_PROFILE bool "Tracepoint profiling sources" - depends on PERF_COUNTERS && EVENT_TRACING + depends on PERF_EVENTS && EVENT_TRACING default y help - Allow the use of tracepoints as software performance counters. + Allow the use of tracepoints as software performance events. - When this is enabled, you can create perf counters based on + When this is enabled, you can create perf events based on tracepoints using PERF_TYPE_TRACEPOINT and the tracepoint ID found in debugfs://tracing/events/*/*/id. (The -e/--events option to the perf tool can parse and interpret symbolic tracepoints, in the subsystem:tracepoint_name format.) +config PERF_COUNTERS + bool "Kernel performance counters (old config option)" + depends on HAVE_PERF_EVENTS + help + This config has been obsoleted by the PERF_EVENTS + config option - please see that one for details. + + It has no effect on the kernel whether you enable + it or not, it is a compatibility placeholder. + + Say N if unsure. + endmenu config VM_EVENT_COUNTERS @@@ -1006,14 -988,6 +1006,6 @@@ config SLUB_DEBU SLUB sysfs support. /sys/slab will not exist and there will be no support for cache validation etc. - config STRIP_ASM_SYMS - bool "Strip assembler-generated symbols during link" - default n - help - Strip internal assembler-generated symbols during a link (symbols - that look like '.Lxxx') so they don't pollute the output of - get_wchan() and suchlike. - config COMPAT_BRK bool "Disable heap randomization" default y @@@ -1072,6 -1046,13 +1064,6 @@@ config PROFILIN config TRACEPOINTS bool -config MARKERS - bool "Activate markers" - select TRACEPOINTS - help - Place an empty function call at each marker site. Can be - dynamically changed for a probe function. - source "arch/Kconfig" config SLOW_WORK diff --combined scripts/basic/fixdep.c index 8ab44861168,d7c1b04791f..6bf21f83837 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@@ -16,7 -16,8 +16,7 @@@ * tells make when to remake a file. * * To use this list as-is however has the drawback that virtually - * every file in the kernel includes which then again - * includes + * every file in the kernel includes . * * If the user re-runs make *config, linux/autoconf.h will be * regenerated. make notices that and will rebuild every file which @@@ -124,7 -125,8 +124,7 @@@ char *target char *depfile; char *cmdline; - void usage(void) + static void usage(void) - { fprintf(stderr, "Usage: fixdep \n"); exit(1); @@@ -133,7 -135,7 +133,7 @@@ /* * Print out the commandline prefixed with cmd_ := */ - void print_cmdline(void) + static void print_cmdline(void) { printf("cmd_%s := %s\n\n", target, cmdline); } @@@ -146,7 -148,7 +146,7 @@@ int len_config = 0 * Grow the configuration string to a desired length. * Usually the first growth is plenty. */ - void grow_config(int len) + static void grow_config(int len) { while (len_config + len > size_config) { if (size_config == 0) @@@ -162,7 -164,7 +162,7 @@@ /* * Lookup a value in the configuration string. */ - int is_defined_config(const char * name, int len) + static int is_defined_config(const char * name, int len) { const char * pconfig; const char * plast = str_config + len_config - len; @@@ -178,7 -180,7 +178,7 @@@ /* * Add a new value to the configuration string. */ - void define_config(const char * name, int len) + static void define_config(const char * name, int len) { grow_config(len + 1); @@@ -190,7 -192,7 +190,7 @@@ /* * Clear the set of configuration strings. */ - void clear_config(void) + static void clear_config(void) { len_config = 0; define_config("", 0); @@@ -199,7 -201,7 +199,7 @@@ /* * Record the use of a CONFIG_* word. */ - void use_config(char *m, int slen) + static void use_config(char *m, int slen) { char s[PATH_MAX]; char *p; @@@ -220,7 -222,7 +220,7 @@@ printf(" $(wildcard include/config/%s.h) \\\n", s); } - void parse_config_file(char *map, size_t len) + static void parse_config_file(char *map, size_t len) { int *end = (int *) (map + len); /* start at +1, so that p can never be < map */ @@@ -254,7 -256,7 +254,7 @@@ } /* test is s ends in sub */ - int strrcmp(char *s, char *sub) + static int strrcmp(char *s, char *sub) { int slen = strlen(s); int sublen = strlen(sub); @@@ -265,7 -267,7 +265,7 @@@ return memcmp(s + slen - sublen, sub, sublen); } - void do_config_file(char *filename) + static void do_config_file(char *filename) { struct stat st; int fd; @@@ -296,7 -298,7 +296,7 @@@ close(fd); } - void parse_dep_file(void *map, size_t len) + static void parse_dep_file(void *map, size_t len) { char *m = map; char *end = m + len; @@@ -336,7 -338,7 +336,7 @@@ printf("$(deps_%s):\n", target); } - void print_deps(void) + static void print_deps(void) { struct stat st; int fd; @@@ -368,7 -370,7 +368,7 @@@ close(fd); } - void traps(void) + static void traps(void) { static char test[] __attribute__((aligned(sizeof(int)))) = "CONF"; int *p = (int *)test;