1. 18 6月, 2010 1 次提交
    • M
      kbuild: Clean up and speed up the localversion logic · 09155120
      Michal Marek 提交于
      Now that we run scripts/setlocalversion during every build, it makes
      sense to move all the localversion logic there. This cleans up the
      toplevel Makefile and also makes sure that the script is called only
      once in 'make prepare' (previously, it would be called every time due to
      a variable expansion in an ifneq statement). No user-visible change is
      intended, unless one runs the setlocalversion script directly.
      Reported-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Greg Thelen <gthelen@google.com>
      Cc: Nico Schottelius <nico-linuxsetlocalversion@schottelius.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      09155120
  2. 04 6月, 2010 1 次提交
    • D
      Makefile.build: make KBUILD_SYMTYPES work again · e26d6b83
      Don Zickus 提交于
      commit 37a8d9f6 tried to combine some
      duplicate code and accidentally broke how KBUILD_SYMTYPES worked
      
      This fixes the code to match the original intention by the author who
      originally added the code I believe.
      
      The fixes include:
      - removing extra whitespaces in the if-statements
      - moving the if-statement from around the -r to the -T
      - adding a second arg to cmd_gensymtypes to simplify the options passed
        to genksyms.
      
      Tested by instrumenting genksyms and seeing what options were passed in
      during a make, KBUILD_SYMTYPES make, and when a foo.symref was created.
      
      Everything compiled and looked ok.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      e26d6b83
  3. 14 4月, 2010 6 次提交
  4. 23 3月, 2010 3 次提交
    • J
      kbuild: Include gen_initramfs_list.sh and the file list in the .d file · b8341936
      Jason Gunthorpe 提交于
      Expand the dependency set used for the initrd to include the
      CONFIG_INITRAMFS_SOURCE file and the generator script itself.
      Otherwise changing the initramfs file list does not rebuild the CPIO.
      Signed-off-by: NJason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      b8341936
    • L
      kconfig: recalc symbol value before showing search results · da6df879
      Li Zefan 提交于
      A symbol's value won't be recalc-ed until we save config file or
      enter the menu where the symbol sits.
      
      So If I enable OPTIMIZE_FOR_SIZE, and search FUNCTION_GRAPH_TRACER:
      
        Symbol: FUNCTION_GRAPH_TRACER [=y]
        Prompt: Kernel Function Graph Tracer
          Defined at kernel/trace/Kconfig:140
          Depends on: ... [=y] && (!X86_32 [=y] || !CC_OPTIMIZE_FOR_SIZE [=y])
          ...
      
      From the dependency it should result in FUNCTION_GRAPH_TRACER=n,
      but it still shows FUNCTION_GRAPH_TRACER=y.
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      da6df879
    • S
      headerdep: perlcritic warning · 1dcd8100
      Stephen Hemminger 提交于
      Minor perlcritic warning:
      headerdep.pl: "return" statement with explicit "undef" at line 84, column 2.  See page 199 of PBP.  (Severity: 5)
      
      The rationale according to PBP is that an explicit return of undef
      (contrary to most people's expectations) doesn't
      always evaluate as false. It has to with the fact that perl return value
      depends on context the function is called. If function is used in
      list context, the appropriate return value for false is an empty list;
      whereas in scalar context the return value for false is undefined.
      By just using a "return" both cases are handled.
      
      In the context of a trivial script this doesn't matter. But one script
      may be cut-paste into later code (most people like me only know 50%
      of perl), that is why perlcritic always complains
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      1dcd8100
  5. 11 3月, 2010 1 次提交
  6. 08 3月, 2010 9 次提交
  7. 07 3月, 2010 1 次提交
  8. 03 3月, 2010 2 次提交
  9. 22 2月, 2010 1 次提交
  10. 17 2月, 2010 1 次提交
    • G
      tags: include headers before source files · f81b1be4
      Guennadi Liakhovetski 提交于
      Currently looking up a structure definition in TAGS / tags takes one to
      one of multiple "static struct X" definitions in arch sources, which makes
      it for many structs practically impossible to get to the required header.
      This patch changes the order of sources being tagged to first scan
      architecture includes, then the top-level include/ directory, and only
      then the rest. It also takes into account, that many architectures have
      more than one include directory, i.e., not only arch/$ARCH/include, but
      also arch/$ARCH/mach-X/include etc.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Reviewed-by: NWANG Cong <xiyou.wangcong@gmail.com>
      [mmarek@suse.cz: fix 'var+=text' bashism]
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      f81b1be4
  11. 06 2月, 2010 2 次提交
    • H
      markup_oops.pl: minor fixes · 59dde385
      Hui Zhu 提交于
      1. Fix a little format issue.
      2. Check the return of "Getopt::Long::GetOptions".  Output usage and
         exit if it get error.
      3. Change $ARGV[$#ARGV] to $ARGV[0].
      4. Change the code which get $modulefile from modinfo.  Replace the
         pipeline with `modinfo -F filename $module`.
      4. Change usage from "Specify the module directory name" to "Specify the
         module filename".
      Signed-off-by: NHui Zhu <teawater@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      59dde385
    • H
      markup_oops.pl: add options to improve cross-sompilation environments · 52e13e21
      Hui Zhu 提交于
      The markup_oops.pl have 3 troubles to support cross-compiler environment:
      1.  It use objdump directly.
      2.  It use modinfo to get the message of module.
      3.  It use hex function that cannot support 64-bit number in 32-bit arch.
      
      This patch add 3 options to markup_oops.pl:
      1. -c CROSS_COMPILE	Specify the prefix used for toolchain.
      2. -m MODULE_DIRNAME	Specify the module directory name.
      3. Change hex function to Math::BigInt->from_hex.
      
      After this patch, parse the x8664 oops in x86, we can:
      cat amd64m | perl ~/kernel/tmp/m.pl -c /home/teawater/kernel/bin/x8664- -m ./e.ko vmlinux
      
      Thanks,
      Hui
      Signed-off-by: NHui Zhu <teawater@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: ozan@pardus.org.tr
      Cc: Matthew Wilcox <willy@linux.intel.com>
      Acked-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      52e13e21
  12. 02 2月, 2010 12 次提交
    • J
      scripts: use %_tmppath in "make rpm-pkg" · 880df92f
      John Saalwaechter 提交于
      The mkspec script hardcodes "/var/tmp" into the generated rpm spec file's
      BuildRoot. The user, however, may have a custom setting for %_tmppath,
      which should be used in BuildRoot.  This patch changes mkspec's
      BuildRoot output to appropriately use %_tmppath.
      Signed-off-by: NJohn Saalwaechter <saalwaechter@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      880df92f
    • H
      markup_oops.pl: fix for faulting instruction in the first line of a range · 0139f1d9
      Hui Zhu 提交于
      I got a "No matching code found" when I use markup_oops.pl parse a error
      in a x86_64 module.
      
      cat e.c
      
      int init_module(void)
      {
      	char	*buf = 0;
      
      	buf[0] = 3;
      
      	return 0;
      }
      
      void cleanup_module(void)
      {
      	//char	*buf = 0;
      
      	//buf[0] = 3;
      }
      
      MODULE_AUTHOR("Hui Zhu");
      MODULE_LICENSE("GPL");
      
      0000000000000000 <init_module>:
      init_module():
      /home/teawater/study/kernel/stack2core/example/e.c:10
         0:	c6 04 25 00 00 00 00 	movb   $0x3,0x0
         7:	03
      /home/teawater/study/kernel/stack2core/example/e.c:13
         8:	31 c0                	xor    %eax,%eax
         a:	c3                   	retq
         b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
      
      0000000000000010 <cleanup_module>:
      cleanup_module():
      /home/teawater/study/kernel/stack2core/example/e.c:20
        10:	f3 c3                	repz retq
        12:	90                   	nop
        13:	90                   	nop
      Disassembly of section .modinfo:
      
      This is because the faulting instruction "movb   $0x3,0x0" is the first
      line of the range.
      
      In the markup_oops.pl:
      main::(./scripts/markup_oops.pl:245):
      245:				if (InRange($1, $target)) {
        DB<2> p $line
      ffffffffa001b000:	c6 04 25 00 00 00 00 	movb   $0x3,0x0
        DB<3> p $counter
      0
      
      It just set $center in next loop. So it cannot get the $center.
      
      And even if $center is set to the right value 0.
      if ($center == 0) {
      	print "No matching code found \n";
      	exit;
      }
      The first line $center will be 0, so I change the default value to -1.
      Signed-off-by: NHui Zhu <teawater@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      0139f1d9
    • D
      scripts: change scripts to use system python instead of env · 94a47083
      Don Zickus 提交于
      Just a small change to a couple of scripts to go from
      
       #!/usr/bin/env python
      
      to
      
       #!/usr/bin/python
      
      This shouldn't effect anyone, unless they don't install python there.
      
      In preparation for python3, Fedora is doing a big push to change the scripts
      to use the system python.  This allows developers to put the python3 in
      their path without fear of breaking existing scripts.
      
      Now I am pretty sure anyone using python3 for testing purposes will probably
      not run any of the scripts I changed, but Fedora has this automated tool
      that checks for this stuff so I thought I would try to push it upstream.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Acked-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Acked-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      94a47083
    • H
      scripts/kallsyms: suppress build warning · 71d41aed
      Himanshu Chauhan 提交于
      Suppress a warn_unused_result warning.
      
      fgets is called as a part of error handling.  It is called just to drop a
      line and return immediately.  read_map is reading the file in a loop and
      read_symbol reads line by line.  So I think there is no point in using
      return value for useful checking.  Other checks like 3 items were returned
      or !EOF have already been done.
      Signed-off-by: NHimanshu Chauhan <hschauhan@nulltrace.org>
      Cc: WANG Cong <xiyou.wangcong@gmail.com>
      Cc: Michal Marek <mmarek@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      71d41aed
    • M
      scripts/mkcompile_h: don't test for hardcoded paths · d4987bd7
      Michal Marek 提交于
      Don't test for /bin/{dnsdomainname,domainname}, simply try to execute
      the command and check if it returned something.
      Reported-by: NGlenn Sommer <glemsom@gmail.com>
      Acked-by: NWANG Cong <xiyou.wangcong@gmail.com>
      Tested-by: NGlenn Sommer <glemsom@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      d4987bd7
    • A
      Improve kconfig symbol hashing · e66f25d7
      Andi Kleen 提交于
      While looking for something else I noticed that the symbol
      hash function used by kconfig is quite poor. It doesn't
      use any of the standard hash techniques but simply
      adds up the string and then uses power of two masking,
      which is both known to perform poorly.
      
      The current x86 kconfig has over 7000 symbols.
      
      When I instrumented it showed that the minimum hash chain
      length was 16 and a significant number of them was over
      30.
      
      It didn't help that the hash table size was only 256 buckets.
      
      This patch increases the hash table size to a larger prime
      and switches to a FNV32 hash. I played around with a couple of hash
      functions, but that one seemed to perform best with reasonable
      hash table sizes.
      
      Increasing the hash table size even further didn't
      seem like a good idea, because there are a couple of global
      walks which walk the complete hash table.
      
      I also moved the unnamed bucket to 0. It's still the longest
      of all the buckets (44 entries), but hopefully it's not
      often hit except for the global walk which doesn't care.
      
      The result is a much nicer distribution:
      (first column bucket length, second number of buckets with that length)
      
      1: 3505
      2: 1236
      3: 294
      4: 52
      5: 3
      47: 1		<--- this is the unnamed symbols bucket
      
      There are still some 5+ buckets, but increasing the hash table
      even more would be likely not worth it.
      
      This also cleans up the code slightly by removing hard coded
      magic numbers.
      
      I didn't notice a big performance difference either way
      on my Nehalem system, but I presume it'll help somewhat
      on slower systems.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      e66f25d7
    • N
      nconfig: minor fix · 68c16edd
      Nir Tzachar 提交于
      This patch fixes two problems reported by Jan Engelhardt:
      1) Border is now properly placed, to always be visible
      2) Long menu items are properly displayed
      Reported-by: NJan Engelhardt <jengelh@medozas.de>
      Signed-off-by: NNir Tzachar <nir.tzachar@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      68c16edd
    • M
      nconfig: mark local functions as such · 851190c9
      Michal Marek 提交于
      scripts/kconfig/nconf.gui.c:23: warning: no previous prototype for 'set_normal_colors'
      scripts/kconfig/nconf.gui.c:68: warning: no previous prototype for 'normal_color_theme'
      scripts/kconfig/nconf.gui.c:100: warning: no previous prototype for 'no_colors_theme'
      scripts/kconfig/nconf.c:455: warning: no previous prototype for 'process_special_keys'
      scripts/kconfig/nconf.c:487: warning: no previous prototype for 'get_next_hot'
      scripts/kconfig/nconf.c:506: warning: no previous prototype for 'canbhot'
      scripts/kconfig/nconf.c:514: warning: no previous prototype for 'is_hot'
      scripts/kconfig/nconf.c:522: warning: no previous prototype for 'make_hot'
      scripts/kconfig/nconf.c:582: warning: no previous prototype for 'item_make'
      scripts/kconfig/nconf.c:626: warning: no previous prototype for 'item_add_str'
      scripts/kconfig/nconf.c:656: warning: no previous prototype for 'item_tag'
      scripts/kconfig/nconf.c:668: warning: no previous prototype for 'curses_item_index'
      scripts/kconfig/nconf.c:673: warning: no previous prototype for 'item_data'
      scripts/kconfig/nconf.c:684: warning: no previous prototype for 'item_is_tag'
      scripts/kconfig/nconf.c:691: warning: no previous prototype for 'set_config_filename'
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      851190c9
    • N
      kconfig: new configuration interface (nconfig) · 692d97c3
      nir.tzachar@gmail.com 提交于
      This patch was inspired by the kernel projects page, where an ncurses
      replacement for menuconfig was mentioned (by Sam Ravnborg).
      
      Building on menuconfig, this patch implements a more modern look
      interface using ncurses and ncurses' satellite libraries (menu, panel,
      form). The implementation does not depend on lxdialog, which is
      currently distributed with the kernel.
      Signed-off-by: NNir Tzachar <nir.tzachar@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      692d97c3
    • A
      genksyms: close ref_file after use · c64152bf
      Alexander Beregalov 提交于
      It is the last place when the file is read, so close it.
      Signed-off-by: NAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      c64152bf
    • V
      menuconfig: wrap long help lines · da60fbbc
      Vadim Bendebury (вб) 提交于
      Help text for certain config options is very extensive (the text
      includes the names of all  other options the option in question depends
      on). Long lines are not wrapped, making it impossible to see the list
      without scrolling horizontally.
      
      This patch adds some logic which wraps help screen lines at word
      boundaries to prevent truncating.
      
      Tested by running
      
        ARCH=powerpc make menuconfig O=/tmp/build
      
      which shows that the long lines are now wrapped, and
      
       ARCH=powerpc make xconfig O=/tmp/build
      
      to demonstrate that it still compiles and operates as expected.
      Signed-off-by: NVadim Bendebury <vbendeb@google.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      da60fbbc
    • R
      scripts: add ARM support to decodecode · 5358db0b
      Rabin Vincent 提交于
      This patch adds support for decoding ARM oopses to scripts/decodecode.
      The following things are handled:
      
       - ARCH and CROSS_COMPILE environment variables are respected.
      
       - The Code: in x86 oopses is in bytes, while it is in either words (4
         bytes) or halfwords for ARM.
      
       - Some versions of ARM objdump refuse to disassemble instructions
         generated by literal constants (".word 0x...").  The workaround is to
         strip the object file first.
      
       - The faulting instruction is marked (liked so) in ARM, but <like so>
         in x86.
      
       - ARM mnemonics may include characters such as [] which need to be
         escaped before being passed to sed for the "<- trapping instruction"
         substitution.
      Signed-off-by: NRabin Vincent <rabin@rab.in>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      5358db0b