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:
Коммит
168c79971b
|
@ -30,6 +30,7 @@
|
|||
*.lz4
|
||||
*.lzma
|
||||
*.lzo
|
||||
*.mod
|
||||
*.mod.c
|
||||
*.o
|
||||
*.o.*
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
*.lzo
|
||||
*.mo
|
||||
*.moc
|
||||
*.mod
|
||||
*.mod.c
|
||||
*.o
|
||||
*.o.*
|
||||
|
|
|
@ -38,12 +38,11 @@ Additional options to the assembler (for built-in and modules).
|
|||
|
||||
AFLAGS_MODULE
|
||||
-------------
|
||||
Additional module specific options to use for $(AS).
|
||||
Additional assembler options for modules.
|
||||
|
||||
AFLAGS_KERNEL
|
||||
-------------
|
||||
Additional options for $(AS) when used for assembler
|
||||
code for code that is compiled as built-in.
|
||||
Additional assembler options for built-in.
|
||||
|
||||
KCFLAGS
|
||||
-------
|
||||
|
|
|
@ -328,7 +328,7 @@ more details, with real examples.
|
|||
variable $(KBUILD_CFLAGS) and uses it for compilation flags for the
|
||||
entire tree.
|
||||
|
||||
asflags-y specifies options for assembling with $(AS).
|
||||
asflags-y specifies assembler options.
|
||||
|
||||
Example::
|
||||
|
||||
|
@ -490,7 +490,7 @@ more details, with real examples.
|
|||
as-instr checks if the assembler reports a specific instruction
|
||||
and then outputs either option1 or option2
|
||||
C escapes are supported in the test instruction
|
||||
Note: as-instr-option uses KBUILD_AFLAGS for $(AS) options
|
||||
Note: as-instr-option uses KBUILD_AFLAGS for assembler options
|
||||
|
||||
cc-option
|
||||
cc-option is used to check if $(CC) supports a given option, and if
|
||||
|
@ -906,7 +906,7 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
vmlinux. The usage of $(call if_changed,xxx) will be described later.
|
||||
|
||||
KBUILD_AFLAGS
|
||||
$(AS) assembler flags
|
||||
Assembler flags
|
||||
|
||||
Default value - see top level Makefile
|
||||
Append or modify as required per architecture.
|
||||
|
@ -949,16 +949,16 @@ When kbuild executes, the following steps are followed (roughly):
|
|||
to 'y' when selected.
|
||||
|
||||
KBUILD_AFLAGS_KERNEL
|
||||
$(AS) options specific for built-in
|
||||
Assembler options specific for built-in
|
||||
|
||||
$(KBUILD_AFLAGS_KERNEL) contains extra C compiler flags used to compile
|
||||
resident kernel code.
|
||||
|
||||
KBUILD_AFLAGS_MODULE
|
||||
Options for $(AS) when building modules
|
||||
Assembler options specific for modules
|
||||
|
||||
$(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
|
||||
are used for $(AS).
|
||||
are used for assembler.
|
||||
|
||||
From commandline AFLAGS_MODULE shall be used (see kbuild.txt).
|
||||
|
||||
|
|
61
Makefile
61
Makefile
|
@ -486,11 +486,6 @@ export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
|
|||
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
|
||||
export KBUILD_ARFLAGS
|
||||
|
||||
# When compiling out-of-tree modules, put MODVERDIR in the module
|
||||
# tree rather than in the kernel tree. The kernel tree might
|
||||
# even be read-only.
|
||||
export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_versions
|
||||
|
||||
# Files to ignore in find ... statements
|
||||
|
||||
export RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o \
|
||||
|
@ -887,6 +882,12 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
|
|||
# change __FILE__ to the relative path from the srctree
|
||||
KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
|
||||
|
||||
# ensure -fcf-protection is disabled when using retpoline as it is
|
||||
# incompatible with -mindirect-branch=thunk-extern
|
||||
ifdef CONFIG_RETPOLINE
|
||||
KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
|
||||
endif
|
||||
|
||||
# use the deterministic mode of AR if available
|
||||
KBUILD_ARFLAGS := $(call ar-option,D)
|
||||
|
||||
|
@ -900,10 +901,8 @@ KBUILD_CPPFLAGS += $(ARCH_CPPFLAGS) $(KCPPFLAGS)
|
|||
KBUILD_AFLAGS += $(ARCH_AFLAGS) $(KAFLAGS)
|
||||
KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS)
|
||||
|
||||
# Use --build-id when available.
|
||||
LDFLAGS_BUILD_ID := $(call ld-option, --build-id)
|
||||
KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
|
||||
LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
|
||||
KBUILD_LDFLAGS_MODULE += --build-id
|
||||
LDFLAGS_vmlinux += --build-id
|
||||
|
||||
ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
|
||||
LDFLAGS_vmlinux += $(call ld-option, -X,)
|
||||
|
@ -1031,8 +1030,8 @@ vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)
|
|||
|
||||
# Recurse until adjust_autoksyms.sh is satisfied
|
||||
PHONY += autoksyms_recursive
|
||||
autoksyms_recursive: $(vmlinux-deps)
|
||||
ifdef CONFIG_TRIM_UNUSED_KSYMS
|
||||
autoksyms_recursive: $(vmlinux-deps) modules.order
|
||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
|
||||
"$(MAKE) -f $(srctree)/Makefile vmlinux"
|
||||
endif
|
||||
|
@ -1074,7 +1073,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
|
|||
|
||||
PHONY += $(vmlinux-dirs)
|
||||
$(vmlinux-dirs): prepare
|
||||
$(Q)$(MAKE) $(build)=$@ need-builtin=1
|
||||
$(Q)$(MAKE) $(build)=$@ need-builtin=1 need-modorder=1
|
||||
|
||||
filechk_kernel.release = \
|
||||
echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
|
||||
|
@ -1096,7 +1095,7 @@ scripts: scripts_basic scripts_dtc
|
|||
# archprepare is used in arch Makefiles and when processed asm symlink,
|
||||
# version.h and scripts_basic is processed / created.
|
||||
|
||||
PHONY += prepare archprepare prepare1 prepare3
|
||||
PHONY += prepare archprepare prepare3
|
||||
|
||||
# prepare3 is used to check if we are building in a separate output directory,
|
||||
# and if so do:
|
||||
|
@ -1113,11 +1112,8 @@ ifdef building_out_of_srctree
|
|||
fi;
|
||||
endif
|
||||
|
||||
prepare1: prepare3 outputmakefile asm-generic $(version_h) $(autoksyms_h) \
|
||||
include/generated/utsrelease.h
|
||||
$(cmd_crmodverdir)
|
||||
|
||||
archprepare: archheaders archscripts prepare1 scripts
|
||||
archprepare: archheaders archscripts scripts prepare3 outputmakefile \
|
||||
asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h
|
||||
|
||||
prepare0: archprepare
|
||||
$(Q)$(MAKE) $(build)=scripts/mod
|
||||
|
@ -1331,8 +1327,8 @@ _modinst_:
|
|||
rm -f $(MODLIB)/build ; \
|
||||
ln -s $(CURDIR) $(MODLIB)/build ; \
|
||||
fi
|
||||
@cp -f $(objtree)/modules.order $(MODLIB)/
|
||||
@cp -f $(objtree)/modules.builtin $(MODLIB)/
|
||||
@sed 's:^:kernel/:' modules.order > $(MODLIB)/modules.order
|
||||
@sed 's:^:kernel/:' modules.builtin > $(MODLIB)/modules.builtin
|
||||
@cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
|
||||
|
||||
|
@ -1373,18 +1369,22 @@ endif # CONFIG_MODULES
|
|||
# make distclean Remove editor backup files, patch leftover files and the like
|
||||
|
||||
# Directories & files removed with 'make clean'
|
||||
CLEAN_DIRS += $(MODVERDIR) include/ksym
|
||||
CLEAN_DIRS += include/ksym
|
||||
CLEAN_FILES += modules.builtin.modinfo
|
||||
|
||||
# Directories & files removed with 'make mrproper'
|
||||
MRPROPER_DIRS += include/config include/generated \
|
||||
arch/$(SRCARCH)/include/generated .tmp_objdiff
|
||||
MRPROPER_FILES += .config .config.old .version \
|
||||
Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
|
||||
Module.symvers \
|
||||
signing_key.pem signing_key.priv signing_key.x509 \
|
||||
x509.genkey extra_certificates signing_key.x509.keyid \
|
||||
signing_key.x509.signer vmlinux-gdb.py
|
||||
|
||||
# Directories & files removed with 'make distclean'
|
||||
DISTCLEAN_DIRS +=
|
||||
DISTCLEAN_FILES += tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS
|
||||
|
||||
# clean - Delete most, but leave enough to build external modules
|
||||
#
|
||||
clean: rm-dirs := $(CLEAN_DIRS)
|
||||
|
@ -1417,9 +1417,14 @@ mrproper: clean $(mrproper-dirs)
|
|||
|
||||
# distclean
|
||||
#
|
||||
distclean: rm-dirs := $(wildcard $(DISTCLEAN_DIRS))
|
||||
distclean: rm-files := $(wildcard $(DISTCLEAN_FILES))
|
||||
|
||||
PHONY += distclean
|
||||
|
||||
distclean: mrproper
|
||||
$(call cmd,rmdirs)
|
||||
$(call cmd,rmfiles)
|
||||
@find $(srctree) $(RCS_FIND_IGNORE) \
|
||||
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
|
||||
-o -name '*.bak' -o -name '#*#' -o -name '*%' \
|
||||
|
@ -1609,7 +1614,7 @@ $(objtree)/Module.symvers:
|
|||
module-dirs := $(addprefix _module_,$(KBUILD_EXTMOD))
|
||||
PHONY += $(module-dirs) modules
|
||||
$(module-dirs): prepare $(objtree)/Module.symvers
|
||||
$(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
|
||||
$(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@) need-modorder=1
|
||||
|
||||
modules: $(module-dirs)
|
||||
@$(kecho) ' Building modules, stage 2.';
|
||||
|
@ -1634,7 +1639,6 @@ PHONY += $(clean-dirs) clean
|
|||
$(clean-dirs):
|
||||
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
|
||||
|
||||
clean: rm-dirs := $(MODVERDIR)
|
||||
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers
|
||||
|
||||
PHONY += help
|
||||
|
@ -1648,8 +1652,6 @@ help:
|
|||
@echo ''
|
||||
|
||||
PHONY += prepare
|
||||
prepare:
|
||||
$(cmd_crmodverdir)
|
||||
endif # KBUILD_EXTMOD
|
||||
|
||||
clean: $(clean-dirs)
|
||||
|
@ -1660,7 +1662,7 @@ clean: $(clean-dirs)
|
|||
-o -name '*.ko.*' \
|
||||
-o -name '*.dtb' -o -name '*.dtb.S' -o -name '*.dt.yaml' \
|
||||
-o -name '*.dwo' -o -name '*.lst' \
|
||||
-o -name '*.su' \
|
||||
-o -name '*.su' -o -name '*.mod' \
|
||||
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
||||
-o -name '*.lex.c' -o -name '*.tab.[ch]' \
|
||||
-o -name '*.asn1.[ch]' \
|
||||
|
@ -1765,8 +1767,6 @@ build-dir = $(patsubst %/,%,$(dir $(build-target)))
|
|||
$(Q)$(MAKE) $(build)=$(build-dir) $(build-target)
|
||||
%.symtypes: prepare FORCE
|
||||
$(Q)$(MAKE) $(build)=$(build-dir) $(build-target)
|
||||
%.ko: %.o
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
||||
|
||||
# Modules
|
||||
PHONY += /
|
||||
|
@ -1789,11 +1789,6 @@ quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
|
|||
cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
|
||||
$(KERNELRELEASE)
|
||||
|
||||
# Create temporary dir for module support files
|
||||
# clean it up only when building all modules
|
||||
cmd_crmodverdir = $(Q)mkdir -p $(MODVERDIR) \
|
||||
$(if $(KBUILD_MODULES),; rm -f $(MODVERDIR)/*)
|
||||
|
||||
# read saved command lines for existing targets
|
||||
existing-targets := $(wildcard $(sort $(targets)))
|
||||
|
||||
|
|
|
@ -13,8 +13,7 @@ ccflags-y += -DDISABLE_BRANCH_PROFILING
|
|||
ldflags-$(CONFIG_CPU_ENDIAN_BE8) := --be8
|
||||
ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
|
||||
-z max-page-size=4096 -nostdlib -shared $(ldflags-y) \
|
||||
$(call ld-option, --hash-style=sysv) \
|
||||
$(call ld-option, --build-id) \
|
||||
--hash-style=sysv --build-id \
|
||||
-T
|
||||
|
||||
obj-$(CONFIG_VDSO) += vdso.o
|
||||
|
|
|
@ -96,8 +96,8 @@ VDSO_LDFLAGS := $(VDSO_CPPFLAGS)
|
|||
VDSO_LDFLAGS += -Wl,-Bsymbolic -Wl,--no-undefined -Wl,-soname=linux-vdso.so.1
|
||||
VDSO_LDFLAGS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
|
||||
VDSO_LDFLAGS += -nostdlib -shared -mfloat-abi=soft
|
||||
VDSO_LDFLAGS += $(call cc32-ldoption,-Wl$(comma)--hash-style=sysv)
|
||||
VDSO_LDFLAGS += $(call cc32-ldoption,-Wl$(comma)--build-id)
|
||||
VDSO_LDFLAGS += -Wl,--hash-style=sysv
|
||||
VDSO_LDFLAGS += -Wl,--build-id
|
||||
VDSO_LDFLAGS += $(call cc32-ldoption,-fuse-ld=bfd)
|
||||
|
||||
|
||||
|
|
|
@ -34,8 +34,6 @@ else
|
|||
KBUILD_LDFLAGS += -melf32lriscv
|
||||
endif
|
||||
|
||||
KBUILD_CFLAGS += -Wall
|
||||
|
||||
# ISA string setting
|
||||
riscv-march-$(CONFIG_ARCH_RV32I) := rv32ima
|
||||
riscv-march-$(CONFIG_ARCH_RV64I) := rv64ima
|
||||
|
|
|
@ -115,8 +115,7 @@ quiet_cmd_vdso = VDSO $@
|
|||
-T $(filter %.lds,$^) $(filter %.o,$^) && \
|
||||
sh $(srctree)/$(src)/checkundef.sh '$(OBJDUMP)' '$@'
|
||||
|
||||
VDSO_LDFLAGS = -shared $(call ld-option, --hash-style=both) \
|
||||
$(call ld-option, --build-id) -Bsymbolic
|
||||
VDSO_LDFLAGS = -shared --hash-style=both --build-id -Bsymbolic
|
||||
GCOV_PROFILE := n
|
||||
|
||||
#
|
||||
|
|
|
@ -176,9 +176,8 @@ quiet_cmd_vdso = VDSO $@
|
|||
-T $(filter %.lds,$^) $(filter %.o,$^) && \
|
||||
sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
|
||||
|
||||
VDSO_LDFLAGS = -shared $(call ld-option, --hash-style=both) \
|
||||
$(call ld-option, --build-id) $(call ld-option, --eh-frame-hdr) \
|
||||
-Bsymbolic
|
||||
VDSO_LDFLAGS = -shared --hash-style=both --build-id \
|
||||
$(call ld-option, --eh-frame-hdr) -Bsymbolic
|
||||
GCOV_PROFILE := n
|
||||
|
||||
quiet_cmd_vdso_and_check = VDSO $@
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
ti-emif-asm-offsets.h
|
|
@ -29,9 +29,10 @@ ti-emif-sram-objs := ti-emif-pm.o ti-emif-sram-pm.o
|
|||
|
||||
AFLAGS_ti-emif-sram-pm.o :=-Wa,-march=armv7-a
|
||||
|
||||
drivers/memory/ti-emif-sram-pm.o: include/generated/ti-emif-asm-offsets.h
|
||||
$(obj)/ti-emif-sram-pm.o: $(obj)/ti-emif-asm-offsets.h
|
||||
|
||||
include/generated/ti-emif-asm-offsets.h: drivers/memory/emif-asm-offsets.s FORCE
|
||||
$(obj)/ti-emif-asm-offsets.h: $(obj)/emif-asm-offsets.s FORCE
|
||||
$(call filechk,offsets,__TI_EMIF_ASM_OFFSETS_H__)
|
||||
|
||||
targets += emif-asm-offsets.s
|
||||
clean-files += ti-emif-asm-offsets.h
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <generated/ti-emif-asm-offsets.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/memory.h>
|
||||
|
||||
#include "emif.h"
|
||||
#include "ti-emif-asm-offsets.h"
|
||||
|
||||
#define EMIF_POWER_MGMT_WAIT_SELF_REFRESH_8192_CYCLES 0x00a0
|
||||
#define EMIF_POWER_MGMT_SR_TIMER_MASK 0x00f0
|
||||
|
|
|
@ -185,7 +185,7 @@ zalon7xx-objs := zalon.o ncr53c8xx.o
|
|||
# Files generated that shall be removed upon make clean
|
||||
clean-files := 53c700_d.h 53c700_u.h scsi_devinfo_tbl.c
|
||||
|
||||
$(obj)/53c700.o $(MODVERDIR)/$(obj)/53c700.ver: $(obj)/53c700_d.h
|
||||
$(obj)/53c700.o: $(obj)/53c700_d.h
|
||||
|
||||
$(obj)/scsi_sysfs.o: $(obj)/scsi_devinfo_tbl.c
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ header-test- += acpi/platform/acintel.h
|
|||
header-test- += acpi/platform/aclinux.h
|
||||
header-test- += acpi/platform/aclinuxex.h
|
||||
header-test- += acpi/processor.h
|
||||
header-test- += clocksource/hyperv_timer.h
|
||||
header-test-$(CONFIG_X86) += clocksource/hyperv_timer.h
|
||||
header-test- += clocksource/timer-sp804.h
|
||||
header-test- += crypto/cast_common.h
|
||||
header-test- += crypto/internal/cryptouser.h
|
||||
|
@ -246,6 +246,7 @@ header-test- += linux/intel-pti.h
|
|||
header-test- += linux/intel-svm.h
|
||||
header-test- += linux/interconnect-provider.h
|
||||
header-test- += linux/ioc3.h
|
||||
header-test-$(CONFIG_BLOCK) += linux/iomap.h
|
||||
header-test- += linux/ipack.h
|
||||
header-test- += linux/irq_cpustat.h
|
||||
header-test- += linux/irq_poll.h
|
||||
|
@ -454,9 +455,6 @@ header-test- += linux/phy/omap_control_phy.h
|
|||
header-test- += linux/phy/tegra/xusb.h
|
||||
header-test- += linux/phy/ulpi_phy.h
|
||||
header-test- += linux/phy_fixed.h
|
||||
header-test- += linux/pinctrl/pinconf-generic.h
|
||||
header-test- += linux/pinctrl/pinconf.h
|
||||
header-test- += linux/pinctrl/pinctrl.h
|
||||
header-test- += linux/pipe_fs_i.h
|
||||
header-test- += linux/pktcdvd.h
|
||||
header-test- += linux/pl320-ipc.h
|
||||
|
@ -905,10 +903,11 @@ header-test- += net/netfilter/nf_nat_redirect.h
|
|||
header-test- += net/netfilter/nf_queue.h
|
||||
header-test- += net/netfilter/nf_reject.h
|
||||
header-test- += net/netfilter/nf_synproxy.h
|
||||
header-test- += net/netfilter/nf_tables.h
|
||||
header-test- += net/netfilter/nf_tables_core.h
|
||||
header-test- += net/netfilter/nf_tables_ipv4.h
|
||||
header-test-$(CONFIG_NF_TABLES) += net/netfilter/nf_tables.h
|
||||
header-test-$(CONFIG_NF_TABLES) += net/netfilter/nf_tables_core.h
|
||||
header-test-$(CONFIG_NF_TABLES) += net/netfilter/nf_tables_ipv4.h
|
||||
header-test- += net/netfilter/nf_tables_ipv6.h
|
||||
header-test-$(CONFIG_NF_TABLES) += net/netfilter/nf_tables_offload.h
|
||||
header-test- += net/netfilter/nft_fib.h
|
||||
header-test- += net/netfilter/nft_meta.h
|
||||
header-test- += net/netfilter/nft_reject.h
|
||||
|
@ -949,7 +948,6 @@ header-test- += pcmcia/ds.h
|
|||
header-test- += rdma/ib.h
|
||||
header-test- += rdma/iw_portmap.h
|
||||
header-test- += rdma/opa_port_info.h
|
||||
header-test- += rdma/rdma_counter.h
|
||||
header-test- += rdma/rdmavt_cq.h
|
||||
header-test- += rdma/restrack.h
|
||||
header-test- += rdma/signature.h
|
||||
|
|
|
@ -353,23 +353,13 @@ config DEBUG_SECTION_MISMATCH
|
|||
which results in the code/data being placed in specific sections.
|
||||
The section mismatch analysis is always performed after a full
|
||||
kernel build, and enabling this option causes the following
|
||||
additional steps to occur:
|
||||
additional step to occur:
|
||||
- Add the option -fno-inline-functions-called-once to gcc commands.
|
||||
When inlining a function annotated with __init in a non-init
|
||||
function, we would lose the section information and thus
|
||||
the analysis would not catch the illegal reference.
|
||||
This option tells gcc to inline less (but it does result in
|
||||
a larger kernel).
|
||||
- Run the section mismatch analysis for each module/built-in.a file.
|
||||
When we run the section mismatch analysis on vmlinux.o, we
|
||||
lose valuable information about where the mismatch was
|
||||
introduced.
|
||||
Running the analysis for each module/built-in.a file
|
||||
tells where the mismatch happens much closer to the
|
||||
source. The drawback is that the same mismatch is
|
||||
reported at least twice.
|
||||
- Enable verbose reporting from modpost in order to help resolve
|
||||
the section mismatches that are reported.
|
||||
|
||||
config SECTION_MISMATCH_WARN_ONLY
|
||||
bool "Make section mismatch errors non-fatal"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ default:
|
|||
$(MAKE) -C $(KDIR) M=$(CURDIR)
|
||||
|
||||
clean:
|
||||
- rm -rf *.o *.ko .tmp-versions .*.cmd .*.mod.* *.mod.c
|
||||
- rm -rf .tmp_versions* Module.symvers modules.order
|
||||
- rm -rf *.o *.ko .*.cmd .*.mod.* *.mod.c
|
||||
- rm -rf Module.symvers modules.order
|
||||
|
||||
install: default
|
||||
install -d $(KMISC)
|
||||
|
|
|
@ -30,8 +30,6 @@ header-test-$(CONFIG_CPU_BIG_ENDIAN) += linux/byteorder/big_endian.h
|
|||
header-test-$(CONFIG_CPU_LITTLE_ENDIAN) += linux/byteorder/little_endian.h
|
||||
header-test- += linux/coda.h
|
||||
header-test- += linux/coda_psdev.h
|
||||
header-test- += linux/dvb/audio.h
|
||||
header-test- += linux/dvb/osd.h
|
||||
header-test- += linux/elfcore.h
|
||||
header-test- += linux/errqueue.h
|
||||
header-test- += linux/fsmap.h
|
||||
|
@ -44,7 +42,6 @@ header-test- += linux/netfilter_bridge/ebtables.h
|
|||
header-test- += linux/netfilter_ipv4/ipt_LOG.h
|
||||
header-test- += linux/netfilter_ipv6/ip6t_LOG.h
|
||||
header-test- += linux/nfc.h
|
||||
header-test- += linux/nilfs2_ondisk.h
|
||||
header-test- += linux/omap3isp.h
|
||||
header-test- += linux/omapfb.h
|
||||
header-test- += linux/patchkey.h
|
||||
|
@ -59,9 +56,6 @@ header-test- += linux/v4l2-mediabus.h
|
|||
header-test- += linux/v4l2-subdev.h
|
||||
header-test- += linux/videodev2.h
|
||||
header-test- += linux/vm_sockets.h
|
||||
header-test- += misc/ocxl.h
|
||||
header-test- += mtd/mtd-abi.h
|
||||
header-test- += mtd/mtd-user.h
|
||||
header-test- += scsi/scsi_bsg_fc.h
|
||||
header-test- += scsi/scsi_netlink.h
|
||||
header-test- += scsi/scsi_netlink_fc.h
|
||||
|
@ -108,7 +102,6 @@ header-test- += linux/bpf_perf_event.h
|
|||
endif
|
||||
|
||||
ifeq ($(SRCARCH),s390)
|
||||
header-test- += asm/runtime_instr.h
|
||||
header-test- += asm/zcrypt.h
|
||||
endif
|
||||
|
||||
|
@ -116,7 +109,6 @@ ifeq ($(SRCARCH),sparc)
|
|||
header-test- += asm/stat.h
|
||||
header-test- += asm/uctx.h
|
||||
header-test- += asm/fbio.h
|
||||
header-test- += asm/openpromio.h
|
||||
endif
|
||||
|
||||
# asm-generic/*.h is used by asm/*.h, and should not be included directly
|
||||
|
|
Загрузка…
Ссылка в новой задаче