kbuild: remove the first line of *.mod files

The current format of *.mod is like this:

  line 1: directory path to the .ko file
  line 2: a list of objects linked into this module
  line 3: unresolved symbols (only when CONFIG_TRIM_UNUSED_KSYMS=y)

Now that *.mod and *.ko are created in the same directory, the line 1
provides no valuable information. It can be derived by replacing the
extension .mod with .ko. In fact, nobody uses the first line any more.

Cut down the first line.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Masahiro Yamada 2019-07-17 15:17:58 +09:00
parent b7dca6dd1e
commit 60ae1b194b
3 changed files with 6 additions and 11 deletions

View File

@ -274,7 +274,7 @@ $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
$(single-used-m): $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE $(single-used-m): $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
$(call cmd,force_checksrc) $(call cmd,force_checksrc)
$(call if_changed_rule,cc_o_c) $(call if_changed_rule,cc_o_c)
@{ echo $(@:.o=.ko); echo $@; \ @{ echo $@; \
$(cmd_undef_syms); } > $(patsubst %.o,%.mod,$@) $(cmd_undef_syms); } > $(patsubst %.o,%.mod,$@)
quiet_cmd_cc_lst_c = MKLST $@ quiet_cmd_cc_lst_c = MKLST $@
@ -456,7 +456,7 @@ quiet_cmd_link_multi-m = LD [M] $@
$(multi-used-m): FORCE $(multi-used-m): FORCE
$(call if_changed,link_multi-m) $(call if_changed,link_multi-m)
@{ echo $(@:.o=.ko); echo $(filter %.o,$^); \ @{ echo $(filter %.o,$^); \
$(cmd_undef_syms); } > $(patsubst %.o,%.mod,$@) $(cmd_undef_syms); } > $(patsubst %.o,%.mod,$@)
$(call multi_depend, $(multi-used-m), .o, -objs -y -m) $(call multi_depend, $(multi-used-m), .o, -objs -y -m)

View File

@ -8,7 +8,7 @@
# #
# Create/update the include/generated/autoksyms.h file from the list # Create/update the include/generated/autoksyms.h file from the list
# of all module's needed symbols as recorded on the third line of *.mod files. # of all module's needed symbols as recorded on the second line of *.mod files.
# #
# For each symbol being added or removed, the corresponding dependency # For each symbol being added or removed, the corresponding dependency
# file's timestamp is updated to force a rebuild of the affected source # file's timestamp is updated to force a rebuild of the affected source
@ -47,7 +47,7 @@ cat > "$new_ksyms_file" << EOT
EOT EOT
sed 's/ko$/mod/' modules.order | sed 's/ko$/mod/' modules.order |
xargs -n1 sed -n -e '3{s/ /\n/g;/^$/!p;}' -- | xargs -n1 sed -n -e '2{s/ /\n/g;/^$/!p;}' -- |
sort -u | sort -u |
sed -e 's/\(.*\)/#define __KSYM_\1 1/' >> "$new_ksyms_file" sed -e 's/\(.*\)/#define __KSYM_\1 1/' >> "$new_ksyms_file"

View File

@ -398,7 +398,7 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)
char *sources, *end, *fname; char *sources, *end, *fname;
char filelist[PATH_MAX + 1]; char filelist[PATH_MAX + 1];
/* objects for a module are listed in the second line of *.mod file. */ /* objects for a module are listed in the first line of *.mod file. */
snprintf(filelist, sizeof(filelist), "%.*smod", snprintf(filelist, sizeof(filelist), "%.*smod",
(int)strlen(modname) - 1, modname); (int)strlen(modname) - 1, modname);
@ -407,13 +407,8 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)
/* not a module or .mod file missing - ignore */ /* not a module or .mod file missing - ignore */
return; return;
sources = strchr(file, '\n'); sources = file;
if (!sources) {
warn("malformed versions file for %s\n", modname);
goto release;
}
sources++;
end = strchr(sources, '\n'); end = strchr(sources, '\n');
if (!end) { if (!end) {
warn("bad ending versions file for %s\n", modname); warn("bad ending versions file for %s\n", modname);