06 Jun, 2017

1 commit

  • When the kernel is compiled with an "O=" argument, the object files are
    not in the source tree, but in the build tree.

    This patch fixes O= build by looking for object files in the build tree.

    Fixes: 923e02ecf3f8 ("scripts/tags.sh: Support compiled source")
    Signed-off-by: Robert Jarzmik
    Signed-off-by: Masahiro Yamada

    Robert Jarzmik
     

23 Feb, 2017

1 commit

  • Kconfig files under arch/ directory are ignored by all_kconfigs(),
    so include them for tags generation.

    Link: http://lkml.kernel.org/r/1486206053-38223-1-git-send-email-houtao1@huawei.com
    Signed-off-by: Hou Tao
    Cc: Michal Marek
    Cc: Joe Perches
    Cc: Mathieu Maret
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hou Tao
     

13 Dec, 2016

1 commit

  • When SUBARCH is "omap1" or "omap2", plat-omap/ directory must be
    indexed. Handle this special case properly.

    While at it, check if mach- directory exists at all.

    Link: http://lkml.kernel.org/r/20161202122148.15001-1-joe.skb7@gmail.com
    Signed-off-by: Sam Protsenko
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sam Protsenko
     

12 Oct, 2016

1 commit

  • Vim, with the omnicppcomplete(#1) plugin, can do code completion using
    information build by ctags. Add flags needed by omnicppcomplete(#2) to
    have completion on member of structure.

    1: https://github.com/vim-scripts/omnicppcomplete
    2: https://github.com/vim-scripts/OmniCppComplete/blob/master/doc/omnicppcomplete.txt#L93

    Link: http://lkml.kernel.org/r/20160830191546.4469-1-mathieu.maret@gmail.com
    Signed-off-by: Mathieu Maret
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Maret
     

02 Sep, 2016

1 commit


27 Jul, 2016

1 commit

  • - Add a proper comment to page->_mapcount.

    - Introduce a macro for generating helper functions.

    - Place all special page->_mapcount values next to each other so that
    readers can see all possible values and so we don't get duplicates.

    Link: http://lkml.kernel.org/r/502f49000e0b63e6c62e338fac6b420bf34fb526.1464079537.git.vdavydov@virtuozzo.com
    Signed-off-by: Vladimir Davydov
    Cc: Johannes Weiner
    Cc: Michal Hocko
    Cc: Eric Dumazet
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     

19 Feb, 2016

1 commit


21 Jan, 2016

1 commit

  • Pull misc kbuild updates from Michal Marek:
    - Fix for make O=... perf-tar*
    - make tags revamp and fix for the fallout. Patch for warnings about
    line breaks inside DEFINE_PER_CPU macros is pending
    - New coccinelle test

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    coccinelle: tests: unsigned value cannot be lesser than zero
    tags: Unify emacs and exuberant rules
    tags: Drop the _PE rule
    tags: Do not try to index defconfigs
    tags: Process Kconfig files in a single pass
    tags: Fix erroneous pattern match in a comment
    aic7xxx: Avoid name collision with
    tags: Treat header files as C code
    package Makefile: fix perf-tar targets when outdir is set
    scripts/tags.sh: Teach tags about more powerpc macros

    Linus Torvalds
     

16 Jan, 2016

1 commit


06 Jan, 2016

6 commits

  • The emacs rules were constantly lagging behind the exuberant ones. Use a
    single set of rules for both, to make the script easier to maintain.
    The language understood by both tools is basic regular expression with
    some limitations, which are documented in a comment. To be able to store
    the rules in an array and easily iterate over it, the script requires
    bash now. In the exuberant case, the change fixes some false matches in
    and also some too greedy matches in the arguments
    of the DECLARE_*/DEFINE_* macros. In the emacs case, several previously
    not working rules are matching now. Tested with these versions of the
    tools:

    Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
    etags (GNU Emacs 24.5)

    Signed-off-by: Michal Marek

    Michal Marek
     
  • We are not indexing the userspace tools, so the rules only match some
    false positives in the kernel code.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • The defconfig files are in predictable locations, so there is no need to
    index them. Plus, the script was only looking for files named
    'defconfig', which only works on a few architectures nowadays.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • Signed-off-by: Michal Marek

    Michal Marek
     
  • Apparently, ctags applies the rules before deleting comments:

    ctags: Warning: include/linux/completion.h:22: null expansion of name pattern "\2"

    Work around this particular case by requiring the group to contain at
    least one character. Leave the other patters as they are, until a better
    solution is found.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • This allows to apply the same patters to both source and header files.
    The effect is mostly visible in the case of DECLARE_BITMAP, but there
    are small gains all over the place. There is also lots of random changes
    in the diff, I believe this is simply because there are still lots of
    unexpanded macros in the code and the C and C++ parsers fail and recover
    at different points. Also, qconf.h is parsed as C, but that's a
    negligible regression.

    Signed-off-by: Michal Marek

    Michal Marek
     

20 Nov, 2015

1 commit


13 Oct, 2015

1 commit


09 Sep, 2015

1 commit

  • Pull misc kbuild updates from Michal Marek:
    - deb-pkg:
    + module signing fix
    + dtb files are added to the package
    + do not require `hostname -f` to work during build
    + make deb-pkg generates a source package, bindeb-pkg has been
    added to only generate the binary package
    - rpm-pkg packages /lib/modules as well
    - new coccinelle patch and updates to existing ones
    - new stackusage & stackdelta script to collect and compare stack usage
    info (using gcc's -fstack-usage)
    - make tags understands trace_*_rcuidle() macros
    - .gitignore updates, misc cleanups

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (27 commits)
    deb-pkg: add source package
    package/Makefile: move source tar creation to a function
    scripts: add stackdelta script
    kbuild: remove *.su files generated by -fstack-usage
    .gitignore: add *.su pattern
    scripts: add stackusage script
    kbuild: avoid listing /lib/modules in kernel spec file
    fallback to hostname in scripts/package/builddeb
    coccinelle: api: extend spatch for dropping unnecessary owner
    deb-pkg: simplify directory creation
    scripts/tags.sh: Include trace_*_rcuidle() in tags
    scripts/package/Makefile: rpmbuild is needed for rpm targets
    Kbuild: Add ID files to .gitignore
    gitignore: Add MIPS vmlinux.32 to the list
    coccinelle: simple_return: Add a blank line
    coccinelle: irqf_oneshot.cocci: Improve the generated commit log
    coccinelle: api: add vma_pages.cocci
    scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar
    scripts/coccinelle/misc/semicolon.cocci: Use imperative mood
    coccinelle: simple_open: Use imperative mood
    ...

    Linus Torvalds
     

19 Aug, 2015

1 commit


17 Jun, 2015

1 commit

  • The __cpuinit support was removed several releases ago in 3.11-rc1 with
    commit 22f0a27367742f65130c0fb25ef00f7297e032c1 ("init.h: remove __cpuinit
    sections from the kernel")

    People have had a chance to update their out of tree code, so now we remove
    the no-op stubs to ensure no more new use cases can creep back in.

    Also delete the mention of __cpuinitdata from the tag script.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

14 Oct, 2014

1 commit

  • Pull misc kbuild updates from Michal Marek:
    "This is the less critical kbuild stuff for v3.18-rc1:

    - make deb-pkg debuginfo fix, ppc64el support and warning fix for
    recent dpkg tools
    - make TAGS fixes
    - new coccinelle patch
    - kbuild documentation improvements"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    deb-pkg: remove obsolete -isp option to dpkg-gencontrol
    coccinelle: misc: semantic patch to delete overly complex return code processing
    deb-pkg: Add support for powerpc little endian
    builddeb: put the dbg files into the correct directory
    scripts/tags.sh: fix DEFINE_HASHTABLE in emacs case
    scripts/tags.sh: remove *PCGFLAGS regular expressions
    scripts/tags.sh: Don't specify kind-spec for emacs' ctags/etags
    Documentation: kbuild: Improve grammar
    Documentation: kbuild: Remove obsolete dtc_cpp section
    Documentation: kbuild: Improve if_changed documentation
    Documentation: kbuild: Remove obsolete include/asm symlink step

    Linus Torvalds
     

25 Sep, 2014

1 commit

  • This will simplify code when we add new flags.

    v3:
    - Kees pointed out that no_new_privs should never be cleared, so we
    shouldn't define task_clear_no_new_privs(). we define 3 macros instead
    of a single one.

    v2:
    - updated scripts/tags.sh, suggested by Peter

    Cc: Ingo Molnar
    Cc: Miao Xie
    Cc: Tetsuo Handa
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Kees Cook
    Signed-off-by: Zefan Li
    Signed-off-by: Tejun Heo

    Zefan Li
     

19 Aug, 2014

3 commits

  • The emacs --regex for DEFINE_HASHTABLE produced a warning because of
    an unmatched '\('. Further, the whole entry did not work, because the
    regex needs to match from the beginning of a line, including keywords
    like 'static'. Finally, '\w' should not be used, because it
    stops at underscores which are often part of variable names in C,
    resulting in wrong entries in the tags file.

    Signed-off-by: Dirk Gouders
    Inspired-by: Masatake YAMATO
    Signed-off-by: Michal Marek

    Dirk Gouders
     
  • Commit 0a31bc97c80c3fa8 (mm: memcontrol: rewrite uncharge API)
    removed the macros {TEST,SET,CLEAR,TESTCLEAR}PCFLAG. Remove
    corresponding entries from tags.sh -- in the emacs case they also
    produced warnigs because of unmatched '\('.

    Signed-off-by: Dirk Gouders
    Inspired-by: Masatake YAMATO
    Signed-off-by: Michal Marek

    Dirk Gouders
     
  • Emacs' ctags/etags don't know about kind-spec in --regex and
    produce warnings:

    etags: invalid regexp modifier `v', ignoring
    etags: invalid regexp modifier `/', ignoring

    Fix it by removing kind-spec for the emacs case.

    Signed-off-by: Dirk Gouders
    Inspired-by: Masatake YAMATO
    Tested-by: Masatake YAMATO
    Signed-off-by: Michal Marek

    Dirk Gouders
     

09 Aug, 2014

1 commit


10 Jun, 2014

2 commits

  • Signed-off-by: Masahiro Yamada
    Signed-off-by: Michal Marek

    Masahiro Yamada
     
  • Since commit 22d651dcef536c75f75537290bf3da5038e68b6b ('selftests/powerpc:
    Import Anton's memcpy / copy_tofrom_user tests'), some source files in the
    tree appear as symlink.
    Until commit 8c38a5328af8080bc69a25b3e4e144b03eeea95e ('scripts/tags.sh:
    ignore code of user space tools'), those symlinks made cscope report some
    warnings:

    $ make ALLSOURCE_ARCHS=all O=./obj-cscope/ cscope
    GEN cscope
    cscope: cannot find
    file .../tools/testing/selftests/powerpc/copyloops/copyuser_power7.S
    cscope: cannot find
    file .../tools/testing/selftests/powerpc/copyloops/memcpy_64.S
    cscope: cannot find
    file .../tools/testing/selftests/powerpc/copyloops/memcpy_power7.S
    cscope: cannot find
    file .../tools/testing/selftests/powerpc/copyloops/copyuser_64.S

    In order to prevent the same kind of warnings to be triggered by future
    addition of symlinks, the best option is to ignore all symlinks when
    building the file list to be processed by cscope (and other tools
    supported by scripts/tags.sh).

    Ignoring symlinks won't hide source files from cscope (and others) as the
    target of these symlinks already appear somewhere else in the tree, and,
    as such, should be processed by cscope (or others).

    Note that, cscope, when used with -R option to make it find the files to
    process by itself, already skip symlinks: it's not expected that cscope
    access source files through symlink.

    On top of commit 8c38a5328af8080bc69a25b3e4e144b03eeea95e ('scripts/tags.sh:
    ignore code of user space tools'), scripts/tags.sh output from
    "make cscope tags TAGS" is the same with and without this patch: it doesn't
    seems to introduce any regression (on Fedora 20).

    Link: http://lkml.kernel.org/r/1396530975.4361.28.camel@localhost.localdomain
    Link: http://mid.gmane.org/534312F8.5090609@t-online.de
    Cc: Michael Ellerman
    Cc: Anton Blanchard
    Cc: Benjamin Herrenschmidt
    Cc: Hans-Bernhard Bröker ,
    Cc: Hans-Bernhard Broeker ,
    Cc: Neil Horman
    Cc: Neil Horman
    Cc: Gerhard Sittig
    Cc: Konstantin Khlebnikov
    Signed-off-by: Yann Droneaud
    Signed-off-by: Michal Marek

    Yann Droneaud
     

14 May, 2014

1 commit

  • Currently, while using ctags to read code, we would get stumbled on
    PageCgroup* symbols: no definition found. And it is quite dull to
    manually dig it out.

    This patch adds regular expression replacement pattern for such symbols,
    like what have done for the PageXXX flag. It will teach ctags to find
    out the definition for us.

    Signed-off-by: Jianyu Zhan
    Signed-off-by: Michal Marek

    Jianyu Zhan
     

24 Apr, 2014

1 commit


17 Apr, 2014

1 commit


06 Feb, 2014

1 commit

  • CONFIG_MODVERSIONS=y results in a .mod.c for every compiled file in the
    kernel. Issuing a 'make cscope' on a compiled kernel tree results in
    the cscope files containing *.mod.c files.

    [prarit@prarit linux]# make cscope
    [prarit@prarit linux]# cat cscope.files | grep mod.c | wc -l
    4807

    These files are not useful for cscope and should be ignored. For example,

    # line filename / context / line
    1 105 arch/x86/kvm/kvm-intel.mod.c <>
    { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },
    2 508 drivers/block/mtip32xx/mtip32xx.h <>
    int numa_node;
    3 55 drivers/block/mtip32xx/mtip32xx.mod.c <>
    { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },
    4 37 drivers/cpufreq/acpi-cpufreq.mod.c <>
    { 0x618911fc, __VMLINUX_SYMBOL_STR(numa_node) },

    Add an export to RCS_FIND_IGNORE so it can be used in scripts/tags.sh
    and add explicitly ignore *.mod.c files.

    Signed-off-by: Prarit Bhargava
    Cc: Andrew Morton
    Cc: Kirill Tkhai
    Cc: Michael Opdenacker
    Cc: Rusty Russell
    Signed-off-by: Michal Marek

    Prarit Bhargava
     

08 Nov, 2013

1 commit


23 Oct, 2013

1 commit


27 Mar, 2013

1 commit


28 Feb, 2013

1 commit

  • Pull misc non-critical kbuild changes from Michal Marek:

    - Fix for make TAGS

    - Fix for make rpm

    - Some new coccinelle semantic patches

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    scripts/coccinelle: find constant additions that could be bit ors
    coccicheck: Allow to show the executed command line
    coccicheck: Allow the user to give a V= (verbose) argument
    scripts/coccinelle/misc/memcpy-assign.cocci: Replace memcpy with struct assignment
    kbuild: clear KBUILD_SRC when calling 'make' in RPM spec
    scripts/coccinelle/misc/semicolon.cocci: Add unneeded semicolon test
    scripts/tags.sh: Fix regex syntax for etags

    Linus Torvalds
     

22 Feb, 2013

1 commit


14 Jan, 2013

1 commit


11 Dec, 2012

2 commits

  • We usually have interst in compiled files only,
    because they are strongly related to individual's work.
    Current tags.sh can't select compiled files, so support it.

    We can use this functionality like below.
    "make cscope O=. SRCARCH=xxxx COMPILED_SOURCE=compiled"

    It must be executed after building the kernel.

    Signed-off-by: Joonsoo Kim
    Signed-off-by: Michal Marek

    Joonsoo Kim
     
  • Current tags.sh doesn't handle subarch for ARM.
    There are too many subarch on ARM, it is hard that we locate some
    functions which are defined in every subarch with tags util family.
    Therefore support subarch for removing this unconvenience.

    We can use ARM subarch functionality like below.
    "make cscope O=. SRCARCH=arm SUBARCH=xxx"

    Signed-off-by: Joonsoo Kim
    Signed-off-by: Michal Marek

    Joonsoo Kim