Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
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 ...
This commit is contained in:
commit
d9241b22b5
|
@ -36,6 +36,7 @@
|
||||||
modules.builtin
|
modules.builtin
|
||||||
Module.symvers
|
Module.symvers
|
||||||
*.dwo
|
*.dwo
|
||||||
|
*.su
|
||||||
|
|
||||||
#
|
#
|
||||||
# Top-level generic files
|
# Top-level generic files
|
||||||
|
@ -44,6 +45,7 @@ Module.symvers
|
||||||
/TAGS
|
/TAGS
|
||||||
/linux
|
/linux
|
||||||
/vmlinux
|
/vmlinux
|
||||||
|
/vmlinux.32
|
||||||
/vmlinux-gdb.py
|
/vmlinux-gdb.py
|
||||||
/vmlinuz
|
/vmlinuz
|
||||||
/System.map
|
/System.map
|
||||||
|
@ -89,6 +91,9 @@ GRTAGS
|
||||||
GSYMS
|
GSYMS
|
||||||
GTAGS
|
GTAGS
|
||||||
|
|
||||||
|
# id-utils files
|
||||||
|
ID
|
||||||
|
|
||||||
*.orig
|
*.orig
|
||||||
*~
|
*~
|
||||||
\#*#
|
\#*#
|
||||||
|
|
1
Makefile
1
Makefile
|
@ -1425,6 +1425,7 @@ clean: $(clean-dirs)
|
||||||
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
|
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
|
||||||
-o -name '*.ko.*' \
|
-o -name '*.ko.*' \
|
||||||
-o -name '*.dwo' \
|
-o -name '*.dwo' \
|
||||||
|
-o -name '*.su' \
|
||||||
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
||||||
-o -name '*.symtypes' -o -name 'modules.order' \
|
-o -name '*.symtypes' -o -name 'modules.order' \
|
||||||
-o -name modules.builtin -o -name '.tmp_*.o.*' \
|
-o -name modules.builtin -o -name '.tmp_*.o.*' \
|
||||||
|
|
|
@ -9,11 +9,14 @@ virtual org
|
||||||
virtual report
|
virtual report
|
||||||
|
|
||||||
@match1@
|
@match1@
|
||||||
|
declarer name module_i2c_driver;
|
||||||
declarer name module_platform_driver;
|
declarer name module_platform_driver;
|
||||||
declarer name module_platform_driver_probe;
|
declarer name module_platform_driver_probe;
|
||||||
identifier __driver;
|
identifier __driver;
|
||||||
@@
|
@@
|
||||||
(
|
(
|
||||||
|
module_i2c_driver(__driver);
|
||||||
|
|
|
||||||
module_platform_driver(__driver);
|
module_platform_driver(__driver);
|
||||||
|
|
|
|
||||||
module_platform_driver_probe(__driver, ...);
|
module_platform_driver_probe(__driver, ...);
|
||||||
|
@ -28,6 +31,15 @@ identifier match1.__driver;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@fix1_i2c depends on match1 && patch && !context && !org && !report@
|
||||||
|
identifier match1.__driver;
|
||||||
|
@@
|
||||||
|
static struct i2c_driver __driver = {
|
||||||
|
.driver = {
|
||||||
|
- .owner = THIS_MODULE,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@match2@
|
@match2@
|
||||||
identifier __driver;
|
identifier __driver;
|
||||||
@@
|
@@
|
||||||
|
@ -37,6 +49,8 @@ identifier __driver;
|
||||||
platform_driver_probe(&__driver, ...)
|
platform_driver_probe(&__driver, ...)
|
||||||
|
|
|
|
||||||
platform_create_bundle(&__driver, ...)
|
platform_create_bundle(&__driver, ...)
|
||||||
|
|
|
||||||
|
i2c_add_driver(&__driver)
|
||||||
)
|
)
|
||||||
|
|
||||||
@fix2 depends on match2 && patch && !context && !org && !report@
|
@fix2 depends on match2 && patch && !context && !org && !report@
|
||||||
|
@ -48,6 +62,15 @@ identifier match2.__driver;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@fix2_i2c depends on match2 && patch && !context && !org && !report@
|
||||||
|
identifier match2.__driver;
|
||||||
|
@@
|
||||||
|
static struct i2c_driver __driver = {
|
||||||
|
.driver = {
|
||||||
|
- .owner = THIS_MODULE,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
@fix1_context depends on match1 && !patch && (context || org || report)@
|
@fix1_context depends on match1 && !patch && (context || org || report)@
|
||||||
|
@ -61,6 +84,17 @@ position j0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@fix1_i2c_context depends on match1 && !patch && (context || org || report)@
|
||||||
|
identifier match1.__driver;
|
||||||
|
position j0;
|
||||||
|
@@
|
||||||
|
|
||||||
|
static struct i2c_driver __driver = {
|
||||||
|
.driver = {
|
||||||
|
* .owner@j0 = THIS_MODULE,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@fix2_context depends on match2 && !patch && (context || org || report)@
|
@fix2_context depends on match2 && !patch && (context || org || report)@
|
||||||
identifier match2.__driver;
|
identifier match2.__driver;
|
||||||
position j0;
|
position j0;
|
||||||
|
@ -72,6 +106,17 @@ position j0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@fix2_i2c_context depends on match2 && !patch && (context || org || report)@
|
||||||
|
identifier match2.__driver;
|
||||||
|
position j0;
|
||||||
|
@@
|
||||||
|
|
||||||
|
static struct i2c_driver __driver = {
|
||||||
|
.driver = {
|
||||||
|
* .owner@j0 = THIS_MODULE,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
@script:python fix1_org depends on org@
|
@script:python fix1_org depends on org@
|
||||||
|
@ -81,6 +126,13 @@ j0 << fix1_context.j0;
|
||||||
msg = "No need to set .owner here. The core will do it."
|
msg = "No need to set .owner here. The core will do it."
|
||||||
coccilib.org.print_todo(j0[0], msg)
|
coccilib.org.print_todo(j0[0], msg)
|
||||||
|
|
||||||
|
@script:python fix1_i2c_org depends on org@
|
||||||
|
j0 << fix1_i2c_context.j0;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg = "No need to set .owner here. The core will do it."
|
||||||
|
coccilib.org.print_todo(j0[0], msg)
|
||||||
|
|
||||||
@script:python fix2_org depends on org@
|
@script:python fix2_org depends on org@
|
||||||
j0 << fix2_context.j0;
|
j0 << fix2_context.j0;
|
||||||
@@
|
@@
|
||||||
|
@ -88,6 +140,13 @@ j0 << fix2_context.j0;
|
||||||
msg = "No need to set .owner here. The core will do it."
|
msg = "No need to set .owner here. The core will do it."
|
||||||
coccilib.org.print_todo(j0[0], msg)
|
coccilib.org.print_todo(j0[0], msg)
|
||||||
|
|
||||||
|
@script:python fix2_i2c_org depends on org@
|
||||||
|
j0 << fix2_i2c_context.j0;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg = "No need to set .owner here. The core will do it."
|
||||||
|
coccilib.org.print_todo(j0[0], msg)
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
@script:python fix1_report depends on report@
|
@script:python fix1_report depends on report@
|
||||||
|
@ -97,6 +156,13 @@ j0 << fix1_context.j0;
|
||||||
msg = "No need to set .owner here. The core will do it."
|
msg = "No need to set .owner here. The core will do it."
|
||||||
coccilib.report.print_report(j0[0], msg)
|
coccilib.report.print_report(j0[0], msg)
|
||||||
|
|
||||||
|
@script:python fix1_i2c_report depends on report@
|
||||||
|
j0 << fix1_i2c_context.j0;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg = "No need to set .owner here. The core will do it."
|
||||||
|
coccilib.report.print_report(j0[0], msg)
|
||||||
|
|
||||||
@script:python fix2_report depends on report@
|
@script:python fix2_report depends on report@
|
||||||
j0 << fix2_context.j0;
|
j0 << fix2_context.j0;
|
||||||
@@
|
@@
|
||||||
|
@ -104,3 +170,10 @@ j0 << fix2_context.j0;
|
||||||
msg = "No need to set .owner here. The core will do it."
|
msg = "No need to set .owner here. The core will do it."
|
||||||
coccilib.report.print_report(j0[0], msg)
|
coccilib.report.print_report(j0[0], msg)
|
||||||
|
|
||||||
|
@script:python fix2_i2c_report depends on report@
|
||||||
|
j0 << fix2_i2c_context.j0;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg = "No need to set .owner here. The core will do it."
|
||||||
|
coccilib.report.print_report(j0[0], msg)
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/// Make sure pm_runtime_* calls does not use unnecessary IS_ERR_VALUE
|
/// Make sure pm_runtime_* calls does not use unnecessary IS_ERR_VALUE
|
||||||
//
|
///
|
||||||
// Keywords: pm_runtime
|
// Keywords: pm_runtime
|
||||||
// Confidence: Medium
|
// Confidence: Medium
|
||||||
// Copyright (C) 2013 Texas Instruments Incorporated - GPLv2.
|
// Copyright (C) 2013 Texas Instruments Incorporated - GPLv2.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/// This removes an open coded simple_open() function
|
/// Remove an open coded simple_open() function
|
||||||
/// and replaces file operations references to the function
|
/// and replace file operations references to the function
|
||||||
/// with simple_open() instead.
|
/// with simple_open() instead.
|
||||||
///
|
///
|
||||||
// Confidence: High
|
// Confidence: High
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
///
|
||||||
|
/// Use vma_pages function on vma object instead of explicit computation.
|
||||||
|
///
|
||||||
|
// Confidence: High
|
||||||
|
// Keywords: vma_pages vma
|
||||||
|
// Comment: Based on resource_size.cocci
|
||||||
|
|
||||||
|
virtual context
|
||||||
|
virtual patch
|
||||||
|
virtual org
|
||||||
|
virtual report
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// For context mode
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@r_context depends on context && !patch && !org && !report@
|
||||||
|
struct vm_area_struct *vma;
|
||||||
|
@@
|
||||||
|
|
||||||
|
* (vma->vm_end - vma->vm_start) >> PAGE_SHIFT
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// For patch mode
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@r_patch depends on !context && patch && !org && !report@
|
||||||
|
struct vm_area_struct *vma;
|
||||||
|
@@
|
||||||
|
|
||||||
|
- ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT)
|
||||||
|
+ vma_pages(vma)
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// For org mode
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
@r_org depends on !context && !patch && (org || report)@
|
||||||
|
struct vm_area_struct *vma;
|
||||||
|
position p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
(vma->vm_end@p - vma->vm_start) >> PAGE_SHIFT
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p << r_org.p;
|
||||||
|
x << r_org.vma;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg="WARNING: Consider using vma_pages helper on %s" % (x)
|
||||||
|
coccilib.report.print_report(p[0], msg)
|
||||||
|
|
||||||
|
@script:python depends on org@
|
||||||
|
p << r_org.p;
|
||||||
|
x << r_org.vma;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg="WARNING: Consider using vma_pages helper on %s" % (x)
|
||||||
|
msg_safe=msg.replace("[","@(").replace("]",")")
|
||||||
|
coccilib.org.print_todo(p[0], msg_safe)
|
|
@ -1,5 +1,4 @@
|
||||||
/// the address of a variable or field is non-zero is likely always to bo
|
/// The address of a variable or field is likely always to be non-zero.
|
||||||
/// non-zero
|
|
||||||
///
|
///
|
||||||
// Confidence: High
|
// Confidence: High
|
||||||
// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
|
// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
/// Make sure threaded IRQs without a primary handler are always request with
|
/// Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests")
|
||||||
/// IRQF_ONESHOT
|
/// threaded IRQs without a primary handler need to be requested with
|
||||||
|
/// IRQF_ONESHOT, otherwise the request will fail.
|
||||||
|
///
|
||||||
|
/// So pass the IRQF_ONESHOT flag in this case.
|
||||||
///
|
///
|
||||||
//
|
//
|
||||||
// Confidence: Good
|
// Confidence: Good
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///
|
///
|
||||||
/// Removes unneeded variable used to store return value.
|
/// Remove unneeded variable used to store return value.
|
||||||
///
|
///
|
||||||
// Confidence: Moderate
|
// Confidence: Moderate
|
||||||
// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6. GPLv2.
|
// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6. GPLv2.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///
|
///
|
||||||
/// Removes unneeded semicolon.
|
/// Remove unneeded semicolon.
|
||||||
///
|
///
|
||||||
// Confidence: Moderate
|
// Confidence: Moderate
|
||||||
// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6. GPLv2.
|
// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6. GPLv2.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/// Simplify a trivial if-return sequence. Possibly combine with a
|
/// Simplify a trivial if-return sequence. Possibly combine with a
|
||||||
/// preceding function call.
|
/// preceding function call.
|
||||||
//
|
///
|
||||||
// Confidence: High
|
// Confidence: High
|
||||||
// Copyright: (C) 2014 Julia Lawall, INRIA/LIP6. GPLv2.
|
// Copyright: (C) 2014 Julia Lawall, INRIA/LIP6. GPLv2.
|
||||||
// Copyright: (C) 2014 Gilles Muller, INRIA/LiP6. GPLv2.
|
// Copyright: (C) 2014 Gilles Muller, INRIA/LiP6. GPLv2.
|
||||||
|
|
|
@ -21,37 +21,38 @@
|
||||||
# Note that the rpm-pkg target cannot be used with KBUILD_OUTPUT,
|
# Note that the rpm-pkg target cannot be used with KBUILD_OUTPUT,
|
||||||
# but the binrpm-pkg target can; for some reason O= gets ignored.
|
# but the binrpm-pkg target can; for some reason O= gets ignored.
|
||||||
|
|
||||||
# Do we have rpmbuild, otherwise fall back to the older rpm
|
|
||||||
RPM := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \
|
|
||||||
else echo rpm; fi)
|
|
||||||
|
|
||||||
# Remove hyphens since they have special meaning in RPM filenames
|
# Remove hyphens since they have special meaning in RPM filenames
|
||||||
KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
|
KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
|
||||||
|
KDEB_SOURCENAME ?= linux-$(KERNELRELEASE)
|
||||||
|
export KDEB_SOURCENAME
|
||||||
# Include only those top-level files that are needed by make, plus the GPL copy
|
# Include only those top-level files that are needed by make, plus the GPL copy
|
||||||
TAR_CONTENT := $(KBUILD_ALLDIRS) kernel.spec .config .scmversion Makefile \
|
TAR_CONTENT := $(KBUILD_ALLDIRS) .config .scmversion Makefile \
|
||||||
Kbuild Kconfig COPYING $(wildcard localversion*)
|
Kbuild Kconfig COPYING $(wildcard localversion*)
|
||||||
TAR_CONTENT := $(addprefix $(KERNELPATH)/,$(TAR_CONTENT))
|
|
||||||
MKSPEC := $(srctree)/scripts/package/mkspec
|
MKSPEC := $(srctree)/scripts/package/mkspec
|
||||||
|
|
||||||
|
quiet_cmd_src_tar = TAR $(2).tar.gz
|
||||||
|
cmd_src_tar = \
|
||||||
|
if test "$(objtree)" != "$(srctree)"; then \
|
||||||
|
echo "Building source tarball is not possible outside the"; \
|
||||||
|
echo "kernel source tree. Don't set KBUILD_OUTPUT, or use the"; \
|
||||||
|
echo "binrpm-pkg or bindeb-pkg target instead."; \
|
||||||
|
false; \
|
||||||
|
fi ; \
|
||||||
|
$(srctree)/scripts/setlocalversion --save-scmversion; \
|
||||||
|
ln -sf $(srctree) $(2); \
|
||||||
|
tar -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
|
||||||
|
$(addprefix $(2)/,$(TAR_CONTENT) $(3)); \
|
||||||
|
rm -f $(2) $(objtree)/.scmversion
|
||||||
|
|
||||||
# rpm-pkg
|
# rpm-pkg
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
rpm-pkg rpm: FORCE
|
rpm-pkg rpm: FORCE
|
||||||
@if test "$(objtree)" != "$(srctree)"; then \
|
|
||||||
echo "Building source + binary RPM is not possible outside the"; \
|
|
||||||
echo "kernel source tree. Don't set KBUILD_OUTPUT, or use the"; \
|
|
||||||
echo "binrpm-pkg target instead."; \
|
|
||||||
false; \
|
|
||||||
fi
|
|
||||||
$(MAKE) clean
|
$(MAKE) clean
|
||||||
ln -sf $(srctree) $(KERNELPATH)
|
|
||||||
$(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
|
$(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
|
||||||
$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --save-scmversion
|
$(call cmd,src_tar,$(KERNELPATH),kernel.spec)
|
||||||
tar -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(TAR_CONTENT)
|
|
||||||
rm $(KERNELPATH)
|
|
||||||
rm -f $(objtree)/.scmversion
|
|
||||||
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
|
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
|
||||||
mv -f $(objtree)/.tmp_version $(objtree)/.version
|
mv -f $(objtree)/.tmp_version $(objtree)/.version
|
||||||
$(RPM) $(RPMOPTS) --target $(UTS_MACHINE) -ta $(KERNELPATH).tar.gz
|
rpmbuild --target $(UTS_MACHINE) -ta $(KERNELPATH).tar.gz
|
||||||
rm $(KERNELPATH).tar.gz kernel.spec
|
rm $(KERNELPATH).tar.gz kernel.spec
|
||||||
|
|
||||||
# binrpm-pkg
|
# binrpm-pkg
|
||||||
|
@ -62,7 +63,7 @@ binrpm-pkg: FORCE
|
||||||
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
|
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
|
||||||
mv -f $(objtree)/.tmp_version $(objtree)/.version
|
mv -f $(objtree)/.tmp_version $(objtree)/.version
|
||||||
|
|
||||||
$(RPM) $(RPMOPTS) --define "_builddir $(objtree)" --target \
|
rpmbuild --define "_builddir $(objtree)" --target \
|
||||||
$(UTS_MACHINE) -bb $(objtree)/binkernel.spec
|
$(UTS_MACHINE) -bb $(objtree)/binkernel.spec
|
||||||
rm binkernel.spec
|
rm binkernel.spec
|
||||||
|
|
||||||
|
@ -84,11 +85,17 @@ quiet_cmd_builddeb = BUILDDEB
|
||||||
} && \
|
} && \
|
||||||
\
|
\
|
||||||
$$KBUILD_PKG_ROOTCMD $(CONFIG_SHELL) \
|
$$KBUILD_PKG_ROOTCMD $(CONFIG_SHELL) \
|
||||||
$(srctree)/scripts/package/builddeb
|
$(srctree)/scripts/package/builddeb $@
|
||||||
|
|
||||||
deb-pkg: FORCE
|
deb-pkg: FORCE
|
||||||
|
$(MAKE) clean
|
||||||
|
$(call cmd,src_tar,$(KDEB_SOURCENAME))
|
||||||
$(MAKE) KBUILD_SRC=
|
$(MAKE) KBUILD_SRC=
|
||||||
$(call cmd,builddeb)
|
+$(call cmd,builddeb)
|
||||||
|
|
||||||
|
bindeb-pkg: FORCE
|
||||||
|
$(MAKE) KBUILD_SRC=
|
||||||
|
+$(call cmd,builddeb)
|
||||||
|
|
||||||
clean-dirs += $(objtree)/debian/
|
clean-dirs += $(objtree)/debian/
|
||||||
|
|
||||||
|
@ -133,8 +140,9 @@ perf-%pkg: FORCE
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
help: FORCE
|
help: FORCE
|
||||||
@echo ' rpm-pkg - Build both source and binary RPM kernel packages'
|
@echo ' rpm-pkg - Build both source and binary RPM kernel packages'
|
||||||
@echo ' binrpm-pkg - Build only the binary kernel package'
|
@echo ' binrpm-pkg - Build only the binary kernel RPM package'
|
||||||
@echo ' deb-pkg - Build the kernel as a deb package'
|
@echo ' deb-pkg - Build both source and binary deb kernel packages'
|
||||||
|
@echo ' bindeb-pkg - Build only the binary kernel deb package'
|
||||||
@echo ' tar-pkg - Build the kernel as an uncompressed tarball'
|
@echo ' tar-pkg - Build the kernel as an uncompressed tarball'
|
||||||
@echo ' targz-pkg - Build the kernel as a gzip compressed tarball'
|
@echo ' targz-pkg - Build the kernel as a gzip compressed tarball'
|
||||||
@echo ' tarbz2-pkg - Build the kernel as a bzip2 compressed tarball'
|
@echo ' tarbz2-pkg - Build the kernel as a bzip2 compressed tarball'
|
||||||
|
|
|
@ -15,6 +15,8 @@ set -e
|
||||||
create_package() {
|
create_package() {
|
||||||
local pname="$1" pdir="$2"
|
local pname="$1" pdir="$2"
|
||||||
|
|
||||||
|
mkdir -m 755 -p "$pdir/DEBIAN"
|
||||||
|
mkdir -p "$pdir/usr/share/doc/$pname"
|
||||||
cp debian/copyright "$pdir/usr/share/doc/$pname/"
|
cp debian/copyright "$pdir/usr/share/doc/$pname/"
|
||||||
cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian"
|
cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian"
|
||||||
gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian"
|
gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian"
|
||||||
|
@ -25,8 +27,13 @@ create_package() {
|
||||||
chown -R root:root "$pdir"
|
chown -R root:root "$pdir"
|
||||||
chmod -R go-w "$pdir"
|
chmod -R go-w "$pdir"
|
||||||
|
|
||||||
|
# Create the package
|
||||||
|
dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir"
|
||||||
|
dpkg --build "$pdir" ..
|
||||||
|
}
|
||||||
|
|
||||||
|
set_debarch() {
|
||||||
# Attempt to find the correct Debian architecture
|
# Attempt to find the correct Debian architecture
|
||||||
local forcearch="" debarch=""
|
|
||||||
case "$UTS_MACHINE" in
|
case "$UTS_MACHINE" in
|
||||||
i386|ia64|alpha)
|
i386|ia64|alpha)
|
||||||
debarch="$UTS_MACHINE" ;;
|
debarch="$UTS_MACHINE" ;;
|
||||||
|
@ -47,6 +54,7 @@ create_package() {
|
||||||
arm*)
|
arm*)
|
||||||
debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;;
|
debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;;
|
||||||
*)
|
*)
|
||||||
|
debarch=$(dpkg --print-architecture)
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo "** ** ** WARNING ** ** **" >&2
|
echo "** ** ** WARNING ** ** **" >&2
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
|
@ -59,13 +67,8 @@ create_package() {
|
||||||
if [ -n "$KBUILD_DEBARCH" ] ; then
|
if [ -n "$KBUILD_DEBARCH" ] ; then
|
||||||
debarch="$KBUILD_DEBARCH"
|
debarch="$KBUILD_DEBARCH"
|
||||||
fi
|
fi
|
||||||
if [ -n "$debarch" ] ; then
|
|
||||||
forcearch="-DArchitecture=$debarch"
|
forcearch="-DArchitecture=$debarch"
|
||||||
fi
|
|
||||||
|
|
||||||
# Create the package
|
|
||||||
dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir"
|
|
||||||
dpkg --build "$pdir" ..
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Some variables and settings used throughout the script
|
# Some variables and settings used throughout the script
|
||||||
|
@ -76,6 +79,7 @@ if [ -n "$KDEB_PKGVERSION" ]; then
|
||||||
else
|
else
|
||||||
packageversion=$version-$revision
|
packageversion=$version-$revision
|
||||||
fi
|
fi
|
||||||
|
sourcename=$KDEB_SOURCENAME
|
||||||
tmpdir="$objtree/debian/tmp"
|
tmpdir="$objtree/debian/tmp"
|
||||||
fwdir="$objtree/debian/fwtmp"
|
fwdir="$objtree/debian/fwtmp"
|
||||||
kernel_headers_dir="$objtree/debian/hdrtmp"
|
kernel_headers_dir="$objtree/debian/hdrtmp"
|
||||||
|
@ -86,6 +90,9 @@ fwpackagename=linux-firmware-image-$version
|
||||||
kernel_headers_packagename=linux-headers-$version
|
kernel_headers_packagename=linux-headers-$version
|
||||||
libc_headers_packagename=linux-libc-dev
|
libc_headers_packagename=linux-libc-dev
|
||||||
dbg_packagename=$packagename-dbg
|
dbg_packagename=$packagename-dbg
|
||||||
|
debarch=
|
||||||
|
forcearch=
|
||||||
|
set_debarch
|
||||||
|
|
||||||
if [ "$ARCH" = "um" ] ; then
|
if [ "$ARCH" = "um" ] ; then
|
||||||
packagename=user-mode-linux-$version
|
packagename=user-mode-linux-$version
|
||||||
|
@ -110,24 +117,13 @@ BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
|
||||||
# Setup the directory structure
|
# Setup the directory structure
|
||||||
rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir"
|
rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir"
|
||||||
mkdir -m 755 -p "$tmpdir/DEBIAN"
|
mkdir -m 755 -p "$tmpdir/DEBIAN"
|
||||||
mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
|
mkdir -p "$tmpdir/lib" "$tmpdir/boot"
|
||||||
mkdir -m 755 -p "$fwdir/DEBIAN"
|
mkdir -p "$fwdir/lib/firmware/$version/"
|
||||||
mkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename"
|
|
||||||
mkdir -m 755 -p "$libc_headers_dir/DEBIAN"
|
|
||||||
mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename"
|
|
||||||
mkdir -m 755 -p "$kernel_headers_dir/DEBIAN"
|
|
||||||
mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename"
|
|
||||||
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
|
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
|
||||||
if [ "$ARCH" = "um" ] ; then
|
|
||||||
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
|
|
||||||
fi
|
|
||||||
if [ -n "$BUILD_DEBUG" ] ; then
|
|
||||||
mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename"
|
|
||||||
mkdir -m 755 -p "$dbg_dir/DEBIAN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Build and install the kernel
|
# Build and install the kernel
|
||||||
if [ "$ARCH" = "um" ] ; then
|
if [ "$ARCH" = "um" ] ; then
|
||||||
|
mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" "$tmpdir/usr/share/doc/$packagename"
|
||||||
$MAKE linux
|
$MAKE linux
|
||||||
cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
|
cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
|
||||||
cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config"
|
cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config"
|
||||||
|
@ -143,6 +139,13 @@ else
|
||||||
cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path"
|
cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then
|
||||||
|
# Only some architectures with OF support have this target
|
||||||
|
if grep -q dtbs_install "${srctree}/arch/$SRCARCH/Makefile"; then
|
||||||
|
$MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
|
if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
|
||||||
INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
|
INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
|
||||||
rm -f "$tmpdir/lib/modules/$version/build"
|
rm -f "$tmpdir/lib/modules/$version/build"
|
||||||
|
@ -162,6 +165,12 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
|
||||||
# then add a link to those
|
# then add a link to those
|
||||||
$OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module
|
$OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# resign stripped modules
|
||||||
|
MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)"
|
||||||
|
if [ -n "$MODULE_SIG_ALL" ]; then
|
||||||
|
INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_sign
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -206,7 +215,7 @@ if [ -n "$DEBEMAIL" ]; then
|
||||||
elif [ -n "$EMAIL" ]; then
|
elif [ -n "$EMAIL" ]; then
|
||||||
email=$EMAIL
|
email=$EMAIL
|
||||||
else
|
else
|
||||||
email=$(id -nu)@$(hostname -f)
|
email=$(id -nu)@$(hostname -f 2>/dev/null || hostname)
|
||||||
fi
|
fi
|
||||||
if [ -n "$DEBFULLNAME" ]; then
|
if [ -n "$DEBFULLNAME" ]; then
|
||||||
name=$DEBFULLNAME
|
name=$DEBFULLNAME
|
||||||
|
@ -230,7 +239,7 @@ fi
|
||||||
|
|
||||||
# Generate a simple changelog template
|
# Generate a simple changelog template
|
||||||
cat <<EOF > debian/changelog
|
cat <<EOF > debian/changelog
|
||||||
linux-upstream ($packageversion) $distribution; urgency=low
|
$sourcename ($packageversion) $distribution; urgency=low
|
||||||
|
|
||||||
* Custom built Linux kernel.
|
* Custom built Linux kernel.
|
||||||
|
|
||||||
|
@ -257,12 +266,16 @@ On Debian GNU/Linux systems, the complete text of the GNU General Public
|
||||||
License version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
|
License version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
build_depends="bc, kmod, cpio "
|
||||||
|
|
||||||
# Generate a control file
|
# Generate a control file
|
||||||
cat <<EOF > debian/control
|
cat <<EOF > debian/control
|
||||||
Source: linux-upstream
|
Source: $sourcename
|
||||||
Section: kernel
|
Section: kernel
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: $maintainer
|
Maintainer: $maintainer
|
||||||
|
Build-Depends: $build_depends
|
||||||
Standards-Version: 3.8.4
|
Standards-Version: 3.8.4
|
||||||
Homepage: http://www.kernel.org/
|
Homepage: http://www.kernel.org/
|
||||||
EOF
|
EOF
|
||||||
|
@ -383,4 +396,33 @@ EOF
|
||||||
create_package "$dbg_packagename" "$dbg_dir"
|
create_package "$dbg_packagename" "$dbg_dir"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "x$1" = "xdeb-pkg" ]
|
||||||
|
then
|
||||||
|
cat <<EOF > debian/rules
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
build:
|
||||||
|
\$(MAKE)
|
||||||
|
|
||||||
|
binary-arch:
|
||||||
|
\$(MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf debian/*tmp
|
||||||
|
mv debian/ debian.backup # debian/ might be cleaned away
|
||||||
|
\$(MAKE) clean
|
||||||
|
mv debian.backup debian
|
||||||
|
|
||||||
|
binary: binary-arch
|
||||||
|
EOF
|
||||||
|
mv ${sourcename}.tar.gz ../${sourcename}_${version}.orig.tar.gz
|
||||||
|
tar caf ../${sourcename}_${packageversion}.debian.tar.gz debian/{copyright,rules,changelog,control}
|
||||||
|
dpkg-source -cdebian/control -ldebian/changelog --format="3.0 (custom)" --target-format="3.0 (quilt)" \
|
||||||
|
-b / ../${sourcename}_${version}.orig.tar.gz ../${sourcename}_${packageversion}.debian.tar.gz
|
||||||
|
mv ${sourcename}_${packageversion}*dsc ..
|
||||||
|
dpkg-genchanges > ../${sourcename}_${packageversion}_${debarch}.changes
|
||||||
|
else
|
||||||
|
dpkg-genchanges -b > ../${sourcename}_${packageversion}_${debarch}.changes
|
||||||
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -111,10 +111,8 @@ echo 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"
|
||||||
echo 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
|
echo 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
|
||||||
|
|
||||||
echo "%ifnarch ppc64"
|
echo "%ifnarch ppc64"
|
||||||
echo 'cp vmlinux vmlinux.orig'
|
echo 'bzip2 -9 --keep vmlinux'
|
||||||
echo 'bzip2 -9 vmlinux'
|
|
||||||
echo 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
|
echo 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
|
||||||
echo 'mv vmlinux.orig vmlinux'
|
|
||||||
echo "%endif"
|
echo "%endif"
|
||||||
|
|
||||||
if ! $PREBUILT; then
|
if ! $PREBUILT; then
|
||||||
|
@ -142,7 +140,6 @@ echo "fi"
|
||||||
echo ""
|
echo ""
|
||||||
echo "%files"
|
echo "%files"
|
||||||
echo '%defattr (-, root, root)'
|
echo '%defattr (-, root, root)'
|
||||||
echo "%dir /lib/modules"
|
|
||||||
echo "/lib/modules/$KERNELRELEASE"
|
echo "/lib/modules/$KERNELRELEASE"
|
||||||
echo "%exclude /lib/modules/$KERNELRELEASE/build"
|
echo "%exclude /lib/modules/$KERNELRELEASE/build"
|
||||||
echo "%exclude /lib/modules/$KERNELRELEASE/source"
|
echo "%exclude /lib/modules/$KERNELRELEASE/source"
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Read two files produced by the stackusage script, and show the
|
||||||
|
# delta between them.
|
||||||
|
#
|
||||||
|
# Currently, only shows changes for functions listed in both files. We
|
||||||
|
# could add an option to show also functions which have vanished or
|
||||||
|
# appeared (which would often be due to gcc making other inlining
|
||||||
|
# decisions).
|
||||||
|
#
|
||||||
|
# Another possible option would be a minimum absolute value for the
|
||||||
|
# delta.
|
||||||
|
#
|
||||||
|
# A third possibility is for sorting by delta, but that can be
|
||||||
|
# achieved by piping to sort -k5,5g.
|
||||||
|
|
||||||
|
sub read_stack_usage_file {
|
||||||
|
my %su;
|
||||||
|
my $f = shift;
|
||||||
|
open(my $fh, '<', $f)
|
||||||
|
or die "cannot open $f: $!";
|
||||||
|
while (<$fh>) {
|
||||||
|
chomp;
|
||||||
|
my ($file, $func, $size, $type) = split;
|
||||||
|
# Old versions of gcc (at least 4.7) have an annoying quirk in
|
||||||
|
# that a (static) function whose name has been changed into
|
||||||
|
# for example ext4_find_unwritten_pgoff.isra.11 will show up
|
||||||
|
# in the .su file with a name of just "11". Since such a
|
||||||
|
# numeric suffix is likely to change across different
|
||||||
|
# commits/compilers/.configs or whatever else we're trying to
|
||||||
|
# tweak, we can't really track those functions, so we just
|
||||||
|
# silently skip them.
|
||||||
|
#
|
||||||
|
# Newer gcc (at least 5.0) report the full name, so again,
|
||||||
|
# since the suffix is likely to change, we strip it.
|
||||||
|
next if $func =~ m/^[0-9]+$/;
|
||||||
|
$func =~ s/\..*$//;
|
||||||
|
# Line numbers are likely to change; strip those.
|
||||||
|
$file =~ s/:[0-9]+$//;
|
||||||
|
$su{"${file}\t${func}"} = {size => $size, type => $type};
|
||||||
|
}
|
||||||
|
close($fh);
|
||||||
|
return \%su;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ARGV == 2
|
||||||
|
or die "usage: $0 <old> <new>";
|
||||||
|
|
||||||
|
my $old = read_stack_usage_file($ARGV[0]);
|
||||||
|
my $new = read_stack_usage_file($ARGV[1]);
|
||||||
|
my @common = sort grep {exists $new->{$_}} keys %$old;
|
||||||
|
for (@common) {
|
||||||
|
my $x = $old->{$_}{size};
|
||||||
|
my $y = $new->{$_}{size};
|
||||||
|
my $delta = $y - $x;
|
||||||
|
if ($delta) {
|
||||||
|
printf "%s\t%d\t%d\t%+d\n", $_, $x, $y, $delta;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
outfile=""
|
||||||
|
now=`date +%s`
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-o)
|
||||||
|
outfile="$2"
|
||||||
|
shift 2;;
|
||||||
|
-h)
|
||||||
|
echo "usage: $0 [-o outfile] <make options/args>"
|
||||||
|
exit 0;;
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$outfile" ]
|
||||||
|
then
|
||||||
|
outfile=`mktemp --tmpdir stackusage.$$.XXXX`
|
||||||
|
fi
|
||||||
|
|
||||||
|
KCFLAGS="${KCFLAGS} -fstack-usage" make "$@"
|
||||||
|
|
||||||
|
# Prepend directory name to file names, remove column information,
|
||||||
|
# make file:line/function/size/type properly tab-separated.
|
||||||
|
find . -name '*.su' -newermt "@${now}" -print | \
|
||||||
|
xargs perl -MFile::Basename -pe \
|
||||||
|
'$d = dirname($ARGV); s#([^:]+:[0-9]+):[0-9]+:#$d/$1\t#;' | \
|
||||||
|
sort -k3,3nr > "${outfile}"
|
||||||
|
|
||||||
|
echo "$0: output written to ${outfile}"
|
|
@ -170,7 +170,9 @@ exuberant()
|
||||||
--regex-c='/^SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/sys_\1/' \
|
--regex-c='/^SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/sys_\1/' \
|
||||||
--regex-c='/^COMPAT_SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/compat_sys_\1/' \
|
--regex-c='/^COMPAT_SYSCALL_DEFINE[[:digit:]]?\(([^,)]*).*/compat_sys_\1/' \
|
||||||
--regex-c++='/^TRACE_EVENT\(([^,)]*).*/trace_\1/' \
|
--regex-c++='/^TRACE_EVENT\(([^,)]*).*/trace_\1/' \
|
||||||
|
--regex-c++='/^TRACE_EVENT\(([^,)]*).*/trace_\1_rcuidle/' \
|
||||||
--regex-c++='/^DEFINE_EVENT\([^,)]*, *([^,)]*).*/trace_\1/' \
|
--regex-c++='/^DEFINE_EVENT\([^,)]*, *([^,)]*).*/trace_\1/' \
|
||||||
|
--regex-c++='/^DEFINE_EVENT\([^,)]*, *([^,)]*).*/trace_\1_rcuidle/' \
|
||||||
--regex-c++='/PAGEFLAG\(([^,)]*).*/Page\1/' \
|
--regex-c++='/PAGEFLAG\(([^,)]*).*/Page\1/' \
|
||||||
--regex-c++='/PAGEFLAG\(([^,)]*).*/SetPage\1/' \
|
--regex-c++='/PAGEFLAG\(([^,)]*).*/SetPage\1/' \
|
||||||
--regex-c++='/PAGEFLAG\(([^,)]*).*/ClearPage\1/' \
|
--regex-c++='/PAGEFLAG\(([^,)]*).*/ClearPage\1/' \
|
||||||
|
@ -233,7 +235,9 @@ emacs()
|
||||||
--regex='/^SYSCALL_DEFINE[0-9]?(\([^,)]*\).*/sys_\1/' \
|
--regex='/^SYSCALL_DEFINE[0-9]?(\([^,)]*\).*/sys_\1/' \
|
||||||
--regex='/^COMPAT_SYSCALL_DEFINE[0-9]?(\([^,)]*\).*/compat_sys_\1/' \
|
--regex='/^COMPAT_SYSCALL_DEFINE[0-9]?(\([^,)]*\).*/compat_sys_\1/' \
|
||||||
--regex='/^TRACE_EVENT(\([^,)]*\).*/trace_\1/' \
|
--regex='/^TRACE_EVENT(\([^,)]*\).*/trace_\1/' \
|
||||||
|
--regex='/^TRACE_EVENT(\([^,)]*\).*/trace_\1_rcuidle/' \
|
||||||
--regex='/^DEFINE_EVENT([^,)]*, *\([^,)]*\).*/trace_\1/' \
|
--regex='/^DEFINE_EVENT([^,)]*, *\([^,)]*\).*/trace_\1/' \
|
||||||
|
--regex='/^DEFINE_EVENT([^,)]*, *\([^,)]*\).*/trace_\1_rcuidle/' \
|
||||||
--regex='/PAGEFLAG(\([^,)]*\).*/Page\1/' \
|
--regex='/PAGEFLAG(\([^,)]*\).*/Page\1/' \
|
||||||
--regex='/PAGEFLAG(\([^,)]*\).*/SetPage\1/' \
|
--regex='/PAGEFLAG(\([^,)]*\).*/SetPage\1/' \
|
||||||
--regex='/PAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
|
--regex='/PAGEFLAG(\([^,)]*\).*/ClearPage\1/' \
|
||||||
|
|
Loading…
Reference in New Issue