Skip to content

Commit 762fb1d

Browse files
committed
Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull kbuild changes from Michal Marek: - LTO fixes, but the kallsyms part had to be reverted - Pass -Werror=implicit-int and -Werror=strict-prototypes to the compiler by default - snprintf fix in modpost - remove GREP_OPTIONS from the environment to be immune against exotic grep option settings * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kallsyms: Revert back to 128 max symbol length Kbuild: Ignore GREP_OPTIONS env variable scripts: kallsyms: Use %zu to print 'size_t' scripts/bloat-o-meter: use .startswith rather than fragile slicing scripts/bloat-o-meter: ignore changes in the size of linux_banner kbuild: replace unbounded sprintf call in modpost kbuild, bloat-o-meter: fix static detection Kbuild: Handle longer symbols in kallsyms.c kbuild: Increase kallsyms max symbol length Makefile: enable -Werror=implicit-int and -Werror=strict-prototypes by default
2 parents f13399f + 480f439 commit 762fb1d

4 files changed

Lines changed: 20 additions & 4 deletions

File tree

Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ LC_COLLATE=C
2222
LC_NUMERIC=C
2323
export LC_COLLATE LC_NUMERIC
2424

25+
# Avoid interference with shell env settings
26+
unexport GREP_OPTIONS
27+
2528
# We are using a recursive build, so we need to do a little thinking
2629
# to get the ordering right.
2730
#
@@ -659,6 +662,12 @@ KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
659662
# conserve stack if available
660663
KBUILD_CFLAGS += $(call cc-option,-fconserve-stack)
661664

665+
# disallow errors like 'EXPORT_GPL(foo);' with missing header
666+
KBUILD_CFLAGS += $(call cc-option,-Werror=implicit-int)
667+
668+
# require functions to have arguments in prototypes, not empty 'int foo()'
669+
KBUILD_CFLAGS += $(call cc-option,-Werror=strict-prototypes)
670+
662671
# use the deterministic mode of AR if available
663672
KBUILD_ARFLAGS := $(call ar-option,D)
664673

scripts/bloat-o-meter

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ def getsizes(file):
1919
size, type, name = l[:-1].split()
2020
if type in "tTdDbBrR":
2121
# strip generated symbols
22-
if name[:6] == "__mod_": continue
23-
# function names begin with '.' on 64-bit powerpc
24-
if "." in name[1:]: name = "static." + name.split(".")[0]
22+
if name.startswith("__mod_"): continue
23+
if name == "linux_banner": continue
24+
# statics and some other optimizations adds random .NUMBER
25+
name = re.sub(r'\.[0-9]+', '', name)
2526
sym[name] = sym.get(name, 0) + int(size, 16)
2627
return sym
2728

scripts/kallsyms.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ static int read_symbol(FILE *in, struct sym_entry *s)
115115
fprintf(stderr, "Read error or end of file.\n");
116116
return -1;
117117
}
118+
if (strlen(str) > KSYM_NAME_LEN) {
119+
fprintf(stderr, "Symbol %s too long for kallsyms (%zu vs %d).\n"
120+
"Please increase KSYM_NAME_LEN both in kernel and kallsyms.c\n",
121+
str, strlen(str), KSYM_NAME_LEN);
122+
return -1;
123+
}
118124

119125
sym = str;
120126
/* skip prefix char */

scripts/mod/sumversion.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)
416416
basename = strrchr(modname, '/') + 1;
417417
else
418418
basename = modname;
419-
sprintf(filelist, "%s/%.*s.mod", modverdir,
419+
snprintf(filelist, sizeof(filelist), "%s/%.*s.mod", modverdir,
420420
(int) strlen(basename) - 2, basename);
421421

422422
file = grab_file(filelist, &len);

0 commit comments

Comments
 (0)