android_kernel_msm-6.1_noth.../scripts
Masahiro Yamada bbda5ec671 kbuild: simplify dependency generation for CONFIG_TRIM_UNUSED_KSYMS
My main motivation of this commit is to clean up scripts/Kbuild.include
and scripts/Makefile.build.

Currently, CONFIG_TRIM_UNUSED_KSYMS works with a tricky gimmick;
possibly exported symbols are detected by letting $(CPP) replace
EXPORT_SYMBOL* with a special string '=== __KSYM_*===', which is
post-processed by sed, and passed to fixdep. The extra preprocessing
is costly, and hacking cmd_and_fixdep is ugly.

I came up with a new way to find exported symbols; insert a dummy
symbol __ksym_marker_* to each potentially exported symbol. Those
dummy symbols are picked up by $(NM), post-processed by sed, then
appended to .*.cmd files. I collected the post-process part to a
new shell script scripts/gen_ksymdeps.sh for readability. The dummy
symbols are put into the .discard.* section so that the linker
script rips them off the final vmlinux or modules.

A nice side-effect is building with CONFIG_TRIM_UNUSED_KSYMS will
be much faster.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Nicolas Pitre <nico@linaro.org>
2018-12-01 23:13:14 +09:00
..
basic kbuild: simplify dependency generation for CONFIG_TRIM_UNUSED_KSYMS 2018-12-01 23:13:14 +09:00
coccinelle Coccinelle: remove pci_alloc_consistent semantic to detect in zalloc-simple.cocci 2018-08-22 23:21:43 +09:00
dtc Merge branch 'all-dtbs' into dt/next 2018-10-04 14:16:15 -05:00
gcc-plugins stackleak: Allow runtime disabling of kernel stack erasing 2018-09-04 10:35:48 -07:00
gdb
genksyms
kconfig kconfig: merge_config: avoid false positive matches from comment lines 2018-11-11 23:04:51 +09:00
ksymoops
mod kbuild: move modpost out of 'scripts' target 2018-12-01 23:09:34 +09:00
package builddeb: Fix inclusion of dtbs in debian package 2018-11-11 23:04:53 +09:00
selinux
tracing
.gitignore
adjust_autoksyms.sh
asn1_compiler.c ASN.1: Remove unnecessary shadowed local variable 2018-10-29 00:19:41 +09:00
bin2c.c
bloat-o-meter
bootgraph.pl
bpf_helpers_doc.py
cc-can-link.sh
check_extable.sh
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl checkpatch: remove GCC_BINARY_CONSTANT warning 2018-10-31 08:54:13 -07:00
checkstack.pl
checksyscalls.sh
checkversion.pl
clang-version.sh kbuild: Add a space after ! to prevent parsing as file pattern 2018-08-22 23:21:40 +09:00
cleanfile
cleanpatch
coccicheck
config
conmakehash.c
const_structs.checkpatch
decode_stacktrace.sh
decodecode
depmod.sh kbuild: modules_install: warn when missing System.map file 2018-09-09 09:14:07 +09:00
diffconfig
documentation-file-ref-check
export_report.pl
extract-cert.c
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux extract-vmlinux: Check for uncompressed image as fallback 2018-10-17 08:18:01 +02:00
extract_xc3028.pl
faddr2line
file-size.sh
find-unused-docs.sh
gcc-goto.sh
gcc-ld
gcc-plugin.sh
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_ksymdeps.sh kbuild: simplify dependency generation for CONFIG_TRIM_UNUSED_KSYMS 2018-12-01 23:13:14 +09:00
get_dvb_firmware
get_maintainer.pl get_maintainer: allow option --mpath <directory> to read all files in <directory> 2018-08-22 10:52:48 -07:00
gfp-translate
headerdep.pl
headers.sh
headers_check.pl
headers_install.sh
insert-sys-cert.c
kallsyms.c kallsyms: remove left-over Blackfin code 2018-09-10 22:54:33 +09:00
Kbuild.include kbuild: simplify dependency generation for CONFIG_TRIM_UNUSED_KSYMS 2018-12-01 23:13:14 +09:00
Kconfig.include
kernel-doc kernel-doc: fix declaration type determination 2018-10-18 12:20:35 -06:00
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00
Makefile kbuild: descend into scripts/gcc-plugins/ via scripts/Makefile 2018-12-01 23:09:38 +09:00
Makefile.asm-generic
Makefile.build kbuild: simplify dependency generation for CONFIG_TRIM_UNUSED_KSYMS 2018-12-01 23:13:14 +09:00
Makefile.clean
Makefile.dtbinst
Makefile.extrawarn Kbuild updates for v4.20 (2nd) 2018-11-03 10:47:33 -07:00
Makefile.gcc-plugins kbuild: descend into scripts/gcc-plugins/ via scripts/Makefile 2018-12-01 23:09:38 +09:00
Makefile.headersinst
Makefile.host
Makefile.kasan
Makefile.kcov
Makefile.lib kbuild: remove redundant 'set -e' from filechk_offsets 2018-12-01 23:13:14 +09:00
Makefile.modbuiltin
Makefile.modinst
Makefile.modpost kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00
Makefile.modsign
Makefile.ubsan
makelst
markup_oops.pl
mkcompile_h
mkmakefile kbuild: simplify command line creation in scripts/mkmakefile 2018-10-04 22:56:02 +09:00
mksysmap
mkuboot.sh
module-common.lds
namespace.pl
objdiff
parse-maintainers.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl nds32/ftrace: Add RECORD_MCOUNT support 2018-09-04 14:45:18 +08:00
setlocalversion scripts/setlocalversion: Improve -dirty check with git-status --no-optional-locks 2018-11-21 23:57:33 +09:00
show_delta
sign-file.c
sortextable.c
sortextable.h
spdxcheck.py
spelling.txt treewide: correct "differenciate" and "instanciate" typos 2018-08-23 18:48:43 -07:00
sphinx-pre-install
split-man.pl
stackdelta
stackusage
subarch.include selftests: add headers_install to lib.mk 2018-09-05 08:12:09 -06:00
tags.sh scripts/tags.sh: add DECLARE_HASHTABLE() 2018-10-26 16:25:18 -07:00
unifdef.c
ver_linux
xen-hypercalls.sh
xz_wrap.sh