mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-05 22:12:16 +00:00
Kbuild updates for v5.3 (2nd)
- match the directory structure of the linux-libc-dev package to that of Debian-based distributions - fix incorrect include/config/auto.conf generation when Kconfig creates it along with the .config file - remove misleading $(AS) from documents - clean up precious tag files by distclean instead of mrproper - add a new coccinelle patch for devm_platform_ioremap_resource migration - refactor module-related scripts to read modules.order instead of $(MODVERDIR)/*.mod files to get the list of created modules - remove MODVERDIR - update list of header compile-test - add -fcf-protection=none flag to avoid conflict with the retpoline flags when CONFIG_RETPOLINE=y - misc cleanups -----BEGIN PGP SIGNATURE----- iQJSBAABCgA8FiEEbmPs18K1szRHjPqEPYsBB53g2wYFAl0ye0MeHHlhbWFkYS5t YXNhaGlyb0Bzb2Npb25leHQuY29tAAoJED2LAQed4NsGfzgQAKtqa3I6avRrT9Nl ggYU08z6bqxVBRucpiQq5QhQ0YLf7XQ9tSGO6z0wyzqPHqHRZALg5lHp+x6JUuTe yhE5AYufHfA86XHD+udOkPuTHEkMCtHZn3qHns39qCsJ5sgnQ5OkjE4xHrMYmV+G FHoWlqYGCSMsr2SGQ8twffyqlZ3LvOW1XzZAlG53ooBUJsLs1CO9eWYzoksrb6O8 yjPwieKnryVwdzVcyR9gFvoXfgC7JBRuug0vYstQaXceJV88v0BCsWLVWylGGqtO EdGqi05xMqtkKSuPP4WQVlgv8prull57yOHLkdn/ImQic/JUo8BNAaXnr95vFy6y /QVCMajCakJDV2WNoSRl/4QK+FYBv1nNSEVT/qGtiC4UXBQZf1BaujrY2CvkQA8x nfj8Z0ckdv5hfNvTxqPHtwzGJUmO9O8r3Jv69oJ0XnsK2ki2mJB0yjl00o7ZQDg9 NLJ+ovgqRnYDqbJcRe/d0of51NuRwlHmV+h9GDX9FH/7ghHwyMVuxC/k6+a/BZ1h H8NYOevlqb8eAkXVjz2AoyTCL2SkW4oHdQ+vboEgQcl2jQK0kb3XhtALci91wGzE aoWEBPZ+5O4wK4RE/z7V6yXvuqq/CcU32YRKJKsccWvEx8AMKLXa0G6NgfTZeZTy WatLqE6jtTw5yPNNVVPnMZXN4c7C =D36u -----END PGP SIGNATURE----- Merge tag 'kbuild-v5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull more Kbuild updates from Masahiro Yamada: - match the directory structure of the linux-libc-dev package to that of Debian-based distributions - fix incorrect include/config/auto.conf generation when Kconfig creates it along with the .config file - remove misleading $(AS) from documents - clean up precious tag files by distclean instead of mrproper - add a new coccinelle patch for devm_platform_ioremap_resource migration - refactor module-related scripts to read modules.order instead of $(MODVERDIR)/*.mod files to get the list of created modules - remove MODVERDIR - update list of header compile-test - add -fcf-protection=none flag to avoid conflict with the retpoline flags when CONFIG_RETPOLINE=y - misc cleanups * tag 'kbuild-v5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits) kbuild: add -fcf-protection=none when using retpoline flags kbuild: update compile-test header list for v5.3-rc1 kbuild: split out *.mod out of {single,multi}-used-m rules kbuild: remove 'prepare1' target kbuild: remove the first line of *.mod files kbuild: create *.mod with full directory path and remove MODVERDIR kbuild: export_report: read modules.order instead of .tmp_versions/*.mod kbuild: modpost: read modules.order instead of $(MODVERDIR)/*.mod kbuild: modsign: read modules.order instead of $(MODVERDIR)/*.mod kbuild: modinst: read modules.order instead of $(MODVERDIR)/*.mod scsi: remove pointless $(MODVERDIR)/$(obj)/53c700.ver kbuild: remove duplication from modules.order in sub-directories kbuild: get rid of kernel/ prefix from in-tree modules.{order,builtin} kbuild: do not create empty modules.order in the prepare stage coccinelle: api: add devm_platform_ioremap_resource script kbuild: compile-test headers listed in header-test-m as well kbuild: remove unused hostcc-option kbuild: remove tag files by distclean instead of mrproper kbuild: add --hash-style= and --build-id unconditionally kbuild: get rid of misleading $(AS) from documents ...
This commit is contained in:
commit
168c79971b
36 changed files with 178 additions and 173 deletions
|
@ -125,11 +125,6 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
|
|||
cc-option = $(call __cc-option, $(CC),\
|
||||
$(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS),$(1),$(2))
|
||||
|
||||
# hostcc-option
|
||||
# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
|
||||
hostcc-option = $(call __cc-option, $(HOSTCC),\
|
||||
$(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
||||
|
||||
# cc-option-yn
|
||||
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
|
||||
cc-option-yn = $(call try-run,\
|
||||
|
|
|
@ -63,14 +63,14 @@ ifneq ($(strip $(real-obj-y) $(need-builtin)),)
|
|||
builtin-target := $(obj)/built-in.a
|
||||
endif
|
||||
|
||||
ifdef CONFIG_MODULES
|
||||
ifeq ($(CONFIG_MODULES)$(need-modorder),y1)
|
||||
modorder-target := $(obj)/modules.order
|
||||
endif
|
||||
|
||||
# We keep a list of all modules in $(MODVERDIR)
|
||||
mod-targets := $(patsubst %.o, %.mod, $(obj-m))
|
||||
|
||||
__build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \
|
||||
$(if $(KBUILD_MODULES),$(obj-m) $(modorder-target)) \
|
||||
$(if $(KBUILD_MODULES),$(obj-m) $(mod-targets) $(modorder-target)) \
|
||||
$(subdir-ym) $(always)
|
||||
@:
|
||||
|
||||
|
@ -87,11 +87,6 @@ ifneq ($(KBUILD_ENABLE_EXTRA_GCC_CHECKS),)
|
|||
cmd_checkdoc = $(srctree)/scripts/kernel-doc -none $<
|
||||
endif
|
||||
|
||||
# Do section mismatch analysis for each module/built-in.a
|
||||
ifdef CONFIG_DEBUG_SECTION_MISMATCH
|
||||
cmd_secanalysis = ; scripts/mod/modpost $@
|
||||
endif
|
||||
|
||||
# Compile C sources (.c)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
@ -268,7 +263,7 @@ endef
|
|||
|
||||
# List module undefined symbols (or empty line if not enabled)
|
||||
ifdef CONFIG_TRIM_UNUSED_KSYMS
|
||||
cmd_undef_syms = $(NM) $@ | sed -n 's/^ *U //p' | xargs echo
|
||||
cmd_undef_syms = $(NM) $< | sed -n 's/^ *U //p' | xargs echo
|
||||
else
|
||||
cmd_undef_syms = echo
|
||||
endif
|
||||
|
@ -278,13 +273,15 @@ $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
|
|||
$(call cmd,force_checksrc)
|
||||
$(call if_changed_rule,cc_o_c)
|
||||
|
||||
# Single-part modules are special since we need to mark them in $(MODVERDIR)
|
||||
cmd_mod = { \
|
||||
echo $(if $($*-objs)$($*-y)$($*-m), $(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), $(@:.mod=.o)); \
|
||||
$(cmd_undef_syms); \
|
||||
} > $@
|
||||
|
||||
$(single-used-m): $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
|
||||
$(call cmd,force_checksrc)
|
||||
$(call if_changed_rule,cc_o_c)
|
||||
@{ echo $(@:.o=.ko); echo $@; \
|
||||
$(cmd_undef_syms); } > $(MODVERDIR)/$(@F:.o=.mod)
|
||||
$(obj)/%.mod: $(obj)/%.o FORCE
|
||||
$(call if_changed,mod)
|
||||
|
||||
targets += $(mod-targets)
|
||||
|
||||
quiet_cmd_cc_lst_c = MKLST $@
|
||||
cmd_cc_lst_c = $(CC) $(c_flags) -g -c -o $*.o $< && \
|
||||
|
@ -294,7 +291,7 @@ quiet_cmd_cc_lst_c = MKLST $@
|
|||
$(obj)/%.lst: $(src)/%.c FORCE
|
||||
$(call if_changed_dep,cc_lst_c)
|
||||
|
||||
# header test (header-test-y target)
|
||||
# header test (header-test-y, header-test-m target)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
quiet_cmd_cc_s_h = CC $@
|
||||
|
@ -423,13 +420,10 @@ endif # builtin-target
|
|||
#
|
||||
# Create commands to either record .ko file or cat modules.order from
|
||||
# a subdirectory
|
||||
modorder-cmds = \
|
||||
$(foreach m, $(modorder), \
|
||||
$(if $(filter %/modules.order, $m), \
|
||||
cat $m;, echo kernel/$m;))
|
||||
|
||||
$(modorder-target): $(subdir-ym) FORCE
|
||||
$(Q)(cat /dev/null; $(modorder-cmds)) > $@
|
||||
$(Q){ $(foreach m, $(modorder), \
|
||||
$(if $(filter %/modules.order, $m), cat $m, echo $m);) :; } \
|
||||
| $(AWK) '!x[$$0]++' - > $@
|
||||
|
||||
#
|
||||
# Rule to compile a set of .o files into one .a file (with symbol table)
|
||||
|
@ -464,12 +458,10 @@ endif
|
|||
# module is turned into a multi object module, $^ will contain header file
|
||||
# dependencies recorded in the .*.cmd file.
|
||||
quiet_cmd_link_multi-m = LD [M] $@
|
||||
cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ $(filter %.o,$^) $(cmd_secanalysis)
|
||||
cmd_link_multi-m = $(LD) $(ld_flags) -r -o $@ $(filter %.o,$^)
|
||||
|
||||
$(multi-used-m): FORCE
|
||||
$(call if_changed,link_multi-m)
|
||||
@{ echo $(@:.o=.ko); echo $(filter %.o,$^); \
|
||||
$(cmd_undef_syms); } > $(MODVERDIR)/$(@F:.o=.mod)
|
||||
$(call multi_depend, $(multi-used-m), .o, -objs -y -m)
|
||||
|
||||
targets += $(multi-used-m)
|
||||
|
|
|
@ -78,7 +78,7 @@ header-test-y += $(filter-out $(header-test-), \
|
|||
$(wildcard $(addprefix $(srctree)/$(src)/, \
|
||||
$(header-test-pattern-y)))))
|
||||
|
||||
extra-$(CONFIG_HEADER_TEST) += $(addsuffix .s, $(header-test-y))
|
||||
extra-$(CONFIG_HEADER_TEST) += $(addsuffix .s, $(header-test-y) $(header-test-m))
|
||||
|
||||
# Add subdir path
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ __modbuiltin: $(modbuiltin-target) $(subdir-ym)
|
|||
@:
|
||||
|
||||
$(modbuiltin-target): $(subdir-ym) FORCE
|
||||
$(Q)(for m in $(modbuiltin-mods); do echo kernel/$$m; done; \
|
||||
$(Q)(for m in $(modbuiltin-mods); do echo $$m; done; \
|
||||
cat /dev/null $(modbuiltin-subdirs)) > $@
|
||||
|
||||
PHONY += FORCE
|
||||
|
|
|
@ -8,10 +8,7 @@ __modinst:
|
|||
|
||||
include scripts/Kbuild.include
|
||||
|
||||
#
|
||||
|
||||
__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
|
||||
modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
|
||||
modules := $(sort $(shell cat $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)modules.order))
|
||||
|
||||
PHONY += $(modules)
|
||||
__modinst: $(modules)
|
||||
|
|
|
@ -6,11 +6,12 @@
|
|||
# Stage one of module building created the following:
|
||||
# a) The individual .o files used for the module
|
||||
# b) A <module>.o file which is the .o files above linked together
|
||||
# c) A <module>.mod file in $(MODVERDIR)/, listing the name of the
|
||||
# the preliminary <module>.o file, plus all .o files
|
||||
# c) A <module>.mod file, listing the name of the preliminary <module>.o file,
|
||||
# plus all .o files
|
||||
# d) modules.order, which lists all the modules
|
||||
|
||||
# Stage 2 is handled by this file and does the following
|
||||
# 1) Find all modules from the files listed in $(MODVERDIR)/
|
||||
# 1) Find all modules listed in modules.order
|
||||
# 2) modpost is then used to
|
||||
# 3) create one <module>.mod.c file pr. module
|
||||
# 4) create one Module.symvers file with CRC for all exported symbols
|
||||
|
@ -60,10 +61,12 @@ include scripts/Makefile.lib
|
|||
kernelsymfile := $(objtree)/Module.symvers
|
||||
modulesymfile := $(firstword $(KBUILD_EXTMOD))/Module.symvers
|
||||
|
||||
# Step 1), find all modules listed in $(MODVERDIR)/
|
||||
MODLISTCMD := find $(MODVERDIR) -name '*.mod' | xargs -r grep -h '\.ko$$' | sort -u
|
||||
__modules := $(shell $(MODLISTCMD))
|
||||
modules := $(patsubst %.o,%.ko, $(wildcard $(__modules:.ko=.o)))
|
||||
modorder := $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)modules.order
|
||||
|
||||
# Step 1), find all modules listed in modules.order
|
||||
ifdef CONFIG_MODULES
|
||||
modules := $(sort $(shell cat $(modorder)))
|
||||
endif
|
||||
|
||||
# Stop after building .o files if NOFINAL is set. Makes compile tests quicker
|
||||
_modpost: $(if $(KBUILD_MODPOST_NOFINAL), $(modules:.ko:.o),$(modules))
|
||||
|
@ -84,7 +87,7 @@ MODPOST_OPT=$(subst -i,-n,$(filter -i,$(MAKEFLAGS)))
|
|||
|
||||
# We can go over command line length here, so be careful.
|
||||
quiet_cmd_modpost = MODPOST $(words $(filter-out vmlinux FORCE, $^)) modules
|
||||
cmd_modpost = $(MODLISTCMD) | sed 's/\.ko$$/.o/' | $(modpost) $(MODPOST_OPT) -s -T -
|
||||
cmd_modpost = sed 's/ko$$/o/' $(modorder) | $(modpost) $(MODPOST_OPT) -s -T -
|
||||
|
||||
PHONY += __modpost
|
||||
__modpost: $(modules:.ko=.o) FORCE
|
||||
|
|
|
@ -8,8 +8,7 @@ __modsign:
|
|||
|
||||
include scripts/Kbuild.include
|
||||
|
||||
__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
|
||||
modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
|
||||
modules := $(sort $(shell cat modules.order))
|
||||
|
||||
PHONY += $(modules)
|
||||
__modsign: $(modules)
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
#
|
||||
|
||||
# Create/update the include/generated/autoksyms.h file from the list
|
||||
# of all module's needed symbols as recorded on the third line of
|
||||
# .tmp_versions/*.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
|
||||
# file's timestamp is updated to force a rebuild of the affected source
|
||||
|
@ -47,13 +46,10 @@ cat > "$new_ksyms_file" << EOT
|
|||
*/
|
||||
|
||||
EOT
|
||||
[ "$(ls -A "$MODVERDIR")" ] &&
|
||||
for mod in "$MODVERDIR"/*.mod; do
|
||||
sed -n -e '3{s/ /\n/g;/^$/!p;}' "$mod"
|
||||
done | sort -u |
|
||||
while read sym; do
|
||||
echo "#define __KSYM_${sym} 1"
|
||||
done >> "$new_ksyms_file"
|
||||
sed 's/ko$/mod/' modules.order |
|
||||
xargs -n1 sed -n -e '2{s/ /\n/g;/^$/!p;}' -- |
|
||||
sort -u |
|
||||
sed -e 's/\(.*\)/#define __KSYM_\1 1/' >> "$new_ksyms_file"
|
||||
|
||||
# Special case for modversions (see modpost.c)
|
||||
if [ -n "$CONFIG_MODVERSIONS" ]; then
|
||||
|
|
60
scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
Normal file
60
scripts/coccinelle/api/devm_platform_ioremap_resource.cocci
Normal file
|
@ -0,0 +1,60 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/// Use devm_platform_ioremap_resource helper which wraps
|
||||
/// platform_get_resource() and devm_ioremap_resource() together.
|
||||
///
|
||||
// Confidence: High
|
||||
// Copyright: (C) 2019 Himanshu Jha GPLv2.
|
||||
// Copyright: (C) 2019 Julia Lawall, Inria/LIP6. GPLv2.
|
||||
// Keywords: platform_get_resource, devm_ioremap_resource,
|
||||
// Keywords: devm_platform_ioremap_resource
|
||||
|
||||
virtual patch
|
||||
virtual report
|
||||
|
||||
@r depends on patch && !report@
|
||||
expression e1, e2, arg1, arg2, arg3;
|
||||
identifier id;
|
||||
@@
|
||||
|
||||
(
|
||||
- id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
||||
|
|
||||
- struct resource *id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
||||
)
|
||||
... when != id
|
||||
- e1 = devm_ioremap_resource(arg3, id);
|
||||
+ e1 = devm_platform_ioremap_resource(arg1, arg2);
|
||||
... when != id
|
||||
? id = e2
|
||||
|
||||
@r1 depends on patch && !report@
|
||||
identifier r.id;
|
||||
type T;
|
||||
@@
|
||||
|
||||
- T *id;
|
||||
...when != id
|
||||
|
||||
@r2 depends on report && !patch@
|
||||
identifier id;
|
||||
expression e1, e2, arg1, arg2, arg3;
|
||||
position j0;
|
||||
@@
|
||||
|
||||
(
|
||||
id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
||||
|
|
||||
struct resource *id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
||||
)
|
||||
... when != id
|
||||
e1@j0 = devm_ioremap_resource(arg3, id);
|
||||
... when != id
|
||||
? id = e2
|
||||
|
||||
@script:python depends on report && !patch@
|
||||
e1 << r2.e1;
|
||||
j0 << r2.j0;
|
||||
@@
|
||||
|
||||
msg = "WARNING: Use devm_platform_ioremap_resource for %s" % (e1)
|
||||
coccilib.report.print_report(j0[0], msg)
|
|
@ -52,13 +52,12 @@ sub usage {
|
|||
|
||||
sub collectcfiles {
|
||||
my @file;
|
||||
while (<.tmp_versions/*.mod>) {
|
||||
open my $fh, '<', $_ or die "cannot open $_: $!\n";
|
||||
push (@file,
|
||||
grep s/\.ko/.mod.c/, # change the suffix
|
||||
grep m/.+\.ko/, # find the .ko path
|
||||
<$fh>); # lines in opened file
|
||||
open my $fh, '< modules.order' or die "cannot open modules.order: $!\n";
|
||||
while (<$fh>) {
|
||||
s/\.ko$/.mod.c/;
|
||||
push (@file, $_)
|
||||
}
|
||||
close($fh);
|
||||
chomp @file;
|
||||
return @file;
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/c
|
|||
%.config: $(obj)/conf
|
||||
$(if $(call configfiles),, $(error No configuration exists for this target on this architecture))
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles)
|
||||
+$(Q)yes "" | $(MAKE) -f $(srctree)/Makefile oldconfig
|
||||
$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
|
||||
|
||||
PHONY += kvmconfig
|
||||
kvmconfig: kvm_guest.config
|
||||
|
|
|
@ -895,7 +895,8 @@ int conf_write(const char *name)
|
|||
"# %s\n"
|
||||
"#\n", str);
|
||||
need_newline = false;
|
||||
} else if (!(sym->flags & SYMBOL_CHOICE)) {
|
||||
} else if (!(sym->flags & SYMBOL_CHOICE) &&
|
||||
!(sym->flags & SYMBOL_WRITTEN)) {
|
||||
sym_calc_value(sym);
|
||||
if (!(sym->flags & SYMBOL_WRITE))
|
||||
goto next;
|
||||
|
@ -903,7 +904,7 @@ int conf_write(const char *name)
|
|||
fprintf(out, "\n");
|
||||
need_newline = false;
|
||||
}
|
||||
sym->flags &= ~SYMBOL_WRITE;
|
||||
sym->flags |= SYMBOL_WRITTEN;
|
||||
conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
|
||||
}
|
||||
|
||||
|
@ -1063,8 +1064,6 @@ int conf_write_autoconf(int overwrite)
|
|||
if (!overwrite && is_present(autoconf_name))
|
||||
return 0;
|
||||
|
||||
sym_clear_all_valid();
|
||||
|
||||
conf_write_dep("include/config/auto.conf.cmd");
|
||||
|
||||
if (conf_touch_deps())
|
||||
|
|
|
@ -141,6 +141,7 @@ struct symbol {
|
|||
#define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */
|
||||
#define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */
|
||||
#define SYMBOL_CHANGED 0x0400 /* ? */
|
||||
#define SYMBOL_WRITTEN 0x0800 /* track info to avoid double-write to .config */
|
||||
#define SYMBOL_NO_WRITE 0x1000 /* Symbol for internal use only; it will not be written */
|
||||
#define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
|
||||
#define SYMBOL_WARNED 0x8000 /* warning has been issued */
|
||||
|
|
|
@ -396,34 +396,19 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen)
|
|||
unsigned long len;
|
||||
struct md4_ctx md;
|
||||
char *sources, *end, *fname;
|
||||
const char *basename;
|
||||
char filelist[PATH_MAX + 1];
|
||||
char *modverdir = getenv("MODVERDIR");
|
||||
|
||||
if (!modverdir)
|
||||
modverdir = ".";
|
||||
|
||||
/* Source files for module are in .tmp_versions/modname.mod,
|
||||
after the first line. */
|
||||
if (strrchr(modname, '/'))
|
||||
basename = strrchr(modname, '/') + 1;
|
||||
else
|
||||
basename = modname;
|
||||
snprintf(filelist, sizeof(filelist), "%s/%.*s.mod", modverdir,
|
||||
(int) strlen(basename) - 2, basename);
|
||||
/* objects for a module are listed in the first line of *.mod file. */
|
||||
snprintf(filelist, sizeof(filelist), "%.*smod",
|
||||
(int)strlen(modname) - 1, modname);
|
||||
|
||||
file = grab_file(filelist, &len);
|
||||
if (!file)
|
||||
/* not a module or .mod file missing - ignore */
|
||||
return;
|
||||
|
||||
sources = strchr(file, '\n');
|
||||
if (!sources) {
|
||||
warn("malformed versions file for %s\n", modname);
|
||||
goto release;
|
||||
}
|
||||
sources = file;
|
||||
|
||||
sources++;
|
||||
end = strchr(sources, '\n');
|
||||
if (!end) {
|
||||
warn("bad ending versions file for %s\n", modname);
|
||||
|
|
|
@ -9,7 +9,7 @@ check_same_name_modules()
|
|||
for m in $(sed 's:.*/::' modules.order | sort | uniq -d)
|
||||
do
|
||||
echo "warning: same module names found:" >&2
|
||||
sed -n "/\/$m/s:^kernel/: :p" modules.order >&2
|
||||
sed -n "/\/$m/s:^: :p" modules.order >&2
|
||||
done
|
||||
}
|
||||
|
||||
|
|
|
@ -132,6 +132,11 @@ fi
|
|||
if [ "$ARCH" != "um" ]; then
|
||||
$MAKE -f $srctree/Makefile headers
|
||||
$MAKE -f $srctree/Makefile headers_install INSTALL_HDR_PATH="$libc_headers_dir/usr"
|
||||
# move asm headers to /usr/include/<libc-machine>/asm to match the structure
|
||||
# used by Debian-based distros (to support multi-arch)
|
||||
host_arch=$(dpkg-architecture -a$(cat debian/arch) -qDEB_HOST_MULTIARCH)
|
||||
mkdir $libc_headers_dir/usr/include/$host_arch
|
||||
mv $libc_headers_dir/usr/include/asm $libc_headers_dir/usr/include/$host_arch/
|
||||
fi
|
||||
|
||||
# Install the maintainer scripts
|
||||
|
|
|
@ -197,6 +197,7 @@ Architecture: $debarch
|
|||
Description: Linux support headers for userspace development
|
||||
This package provides userspaces headers from the Linux kernel. These headers
|
||||
are used by the installed headers for GNU glibc and other system libraries.
|
||||
Multi-Arch: same
|
||||
|
||||
Package: $dbg_packagename
|
||||
Section: debug
|
||||
|
|
|
@ -29,7 +29,7 @@ fi
|
|||
|
||||
PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
|
||||
__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
|
||||
EXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \
|
||||
EXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \
|
||||
--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
|
||||
--exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue