Kbuild updates for v4.19
- verify depmod is installed before modules_install - support build salt in case build ids must be unique between builds - allow users to specify additional host compiler flags via HOST*FLAGS, and rename internal variables to KBUILD_HOST*FLAGS - update buildtar script to drop vax support, add arm64 support - update builddeb script for better debarch support - document the pit-fall of if_changed usage - fix parallel build of UML with O= option - make 'samples' target depend on headers_install to fix build errors - remove deprecated host-progs variable - add a new coccinelle script for refcount_t vs atomic_t check - improve double-test coccinelle script - misc cleanups and fixes -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJbdFZ0AAoJED2LAQed4NsGcHYP/23txxk3GRP7O4UkfPw9Rtky MHiXTgcoy2vbG+l12BgzWX+qFii8XTUe3dQtK4HnGQFUIBtEBV/hpZPJtxfgGSev Zou5cv1kr5rNzTkCn//TG3O6/WIkTBCe2hahDCtmGDI3kd/cPK4dHbU/q6KpaqIJ qzZYBXIvCeu2GM8idQoCRrwdMpgu1pBz1gz2sDje1yHH2toI7T6cXHRLQDgx+HPq LIP7W9GUsoDdXjecvPD51LiW89E6BUxETBh5Ft9r9uzwB5ylQQMcw6Qyu2DiYDUX PPsHCMiolYV+Ttcy+vj/67KOvKmEaFotssck+RD/xDCF17zKhRkup+YM8kPLHTVZ TcAUZadbnT6U/s2W6GFwvVbN/P7cc3aif+aNCC/Pl23yagp3pydlSCocYxQgiVR7 /rx48haYDEgu/MJ1X0dOpSO0ErY7zu2OoAlNerW+D9QizwbP+WtZO/CJH8SxQRuN dQ1xmyNrie+ODgi9tbc4eBrsb+1rioX927TP5MbJcfXt5CTsxDmIqop5XwyYIoQN ZWWlzC8Ii3P2trAVpBgM2IEbngSxwr6T9Wbf1ScJnPKr/o1rq+pBk49cYstTz3kQ OwJ8gPwUrkW4R+hlD7L6mL/WcrKzZBQS0Ij1QW2kVSEhRrsKo99psE1/rGehnHu9 KGB0LYYCqGSOHR4zOjg0 =VjfG -----END PGP SIGNATURE----- Merge tag 'kbuild-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild updates from Masahiro Yamada: - verify depmod is installed before modules_install - support build salt in case build ids must be unique between builds - allow users to specify additional host compiler flags via HOST*FLAGS, and rename internal variables to KBUILD_HOST*FLAGS - update buildtar script to drop vax support, add arm64 support - update builddeb script for better debarch support - document the pit-fall of if_changed usage - fix parallel build of UML with O= option - make 'samples' target depend on headers_install to fix build errors - remove deprecated host-progs variable - add a new coccinelle script for refcount_t vs atomic_t check - improve double-test coccinelle script - misc cleanups and fixes * tag 'kbuild-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (41 commits) coccicheck: return proper error code on fail Coccinelle: doubletest: reduce side effect false positives kbuild: remove deprecated host-progs variable kbuild: make samples really depend on headers_install um: clean up archheaders recipe kbuild: add %asm-generic to no-dot-config-targets um: fix parallel building with O= option scripts: Add Python 3 support to tracing/draw_functrace.py builddeb: Add automatic support for sh{3,4}{,eb} architectures builddeb: Add automatic support for riscv* architectures builddeb: Add automatic support for m68k architecture builddeb: Add automatic support for or1k architecture builddeb: Add automatic support for sparc64 architecture builddeb: Add automatic support for mips{,64}r6{,el} architectures builddeb: Add automatic support for mips64el architecture builddeb: Add automatic support for ppc64 and powerpcspe architectures builddeb: Introduce functions to simplify kconfig tests in set_debarch builddeb: Drop check for 32-bit s390 builddeb: Change architecture detection fallback to use dpkg-architecture builddeb: Skip architecture detection when KBUILD_DEBARCH is set ...hifive-unleashed-5.1
commit
e026bcc561
|
@ -50,6 +50,22 @@ LDFLAGS_MODULE
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
Additional options used for $(LD) when linking modules.
|
Additional options used for $(LD) when linking modules.
|
||||||
|
|
||||||
|
HOSTCFLAGS
|
||||||
|
--------------------------------------------------
|
||||||
|
Additional flags to be passed to $(HOSTCC) when building host programs.
|
||||||
|
|
||||||
|
HOSTCXXFLAGS
|
||||||
|
--------------------------------------------------
|
||||||
|
Additional flags to be passed to $(HOSTCXX) when building host programs.
|
||||||
|
|
||||||
|
HOSTLDFLAGS
|
||||||
|
--------------------------------------------------
|
||||||
|
Additional flags to be passed when linking host programs.
|
||||||
|
|
||||||
|
HOSTLDLIBS
|
||||||
|
--------------------------------------------------
|
||||||
|
Additional libraries to link against when building host programs.
|
||||||
|
|
||||||
KBUILD_KCONFIG
|
KBUILD_KCONFIG
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
Set the top-level Kconfig file to the value of this environment
|
Set the top-level Kconfig file to the value of this environment
|
||||||
|
|
|
@ -661,7 +661,7 @@ Both possibilities are described in the following.
|
||||||
|
|
||||||
When compiling host programs, it is possible to set specific flags.
|
When compiling host programs, it is possible to set specific flags.
|
||||||
The programs will always be compiled utilising $(HOSTCC) passed
|
The programs will always be compiled utilising $(HOSTCC) passed
|
||||||
the options specified in $(HOSTCFLAGS).
|
the options specified in $(KBUILD_HOSTCFLAGS).
|
||||||
To set flags that will take effect for all host programs created
|
To set flags that will take effect for all host programs created
|
||||||
in that Makefile, use the variable HOST_EXTRACFLAGS.
|
in that Makefile, use the variable HOST_EXTRACFLAGS.
|
||||||
|
|
||||||
|
@ -1105,6 +1105,12 @@ When kbuild executes, the following steps are followed (roughly):
|
||||||
target: source(s) FORCE
|
target: source(s) FORCE
|
||||||
#WRONG!# $(call if_changed, ld/objcopy/gzip/...)
|
#WRONG!# $(call if_changed, ld/objcopy/gzip/...)
|
||||||
|
|
||||||
|
Note: if_changed should not be used more than once per target.
|
||||||
|
It stores the executed command in a corresponding .cmd
|
||||||
|
file and multiple calls would result in overwrites and
|
||||||
|
unwanted results when the target is up to date and only the
|
||||||
|
tests on changed commands trigger execution of commands.
|
||||||
|
|
||||||
ld
|
ld
|
||||||
Link target. Often, LDFLAGS_$@ is used to set specific options to ld.
|
Link target. Often, LDFLAGS_$@ is used to set specific options to ld.
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ binutils 2.20 ld -v
|
||||||
flex 2.5.35 flex --version
|
flex 2.5.35 flex --version
|
||||||
bison 2.0 bison --version
|
bison 2.0 bison --version
|
||||||
util-linux 2.10o fdformat --version
|
util-linux 2.10o fdformat --version
|
||||||
module-init-tools 0.9.10 depmod -V
|
kmod 13 depmod -V
|
||||||
e2fsprogs 1.41.4 e2fsck -V
|
e2fsprogs 1.41.4 e2fsck -V
|
||||||
jfsutils 1.1.3 fsck.jfs -V
|
jfsutils 1.1.3 fsck.jfs -V
|
||||||
reiserfsprogs 3.6.3 reiserfsck -V
|
reiserfsprogs 3.6.3 reiserfsck -V
|
||||||
|
@ -156,12 +156,6 @@ is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
|
||||||
reproduce the Oops with that option, then you can still decode that Oops
|
reproduce the Oops with that option, then you can still decode that Oops
|
||||||
with ksymoops.
|
with ksymoops.
|
||||||
|
|
||||||
Module-Init-Tools
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
A new module loader is now in the kernel that requires ``module-init-tools``
|
|
||||||
to use. It is backward compatible with the 2.4.x series kernels.
|
|
||||||
|
|
||||||
Mkinitrd
|
Mkinitrd
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -371,16 +365,17 @@ Util-linux
|
||||||
|
|
||||||
- <https://www.kernel.org/pub/linux/utils/util-linux/>
|
- <https://www.kernel.org/pub/linux/utils/util-linux/>
|
||||||
|
|
||||||
|
Kmod
|
||||||
|
----
|
||||||
|
|
||||||
|
- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
|
||||||
|
- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
|
||||||
|
|
||||||
Ksymoops
|
Ksymoops
|
||||||
--------
|
--------
|
||||||
|
|
||||||
- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
|
- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
|
||||||
|
|
||||||
Module-Init-Tools
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
- <https://www.kernel.org/pub/linux/utils/kernel/module-init-tools/>
|
|
||||||
|
|
||||||
Mkinitrd
|
Mkinitrd
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
24
Makefile
24
Makefile
|
@ -224,7 +224,7 @@ clean-targets := %clean mrproper cleandocs
|
||||||
no-dot-config-targets := $(clean-targets) \
|
no-dot-config-targets := $(clean-targets) \
|
||||||
cscope gtags TAGS tags help% %docs check% coccicheck \
|
cscope gtags TAGS tags help% %docs check% coccicheck \
|
||||||
$(version_h) headers_% archheaders archscripts \
|
$(version_h) headers_% archheaders archscripts \
|
||||||
kernelversion %src-pkg
|
%asm-generic kernelversion %src-pkg
|
||||||
|
|
||||||
config-targets := 0
|
config-targets := 0
|
||||||
mixed-targets := 0
|
mixed-targets := 0
|
||||||
|
@ -359,11 +359,12 @@ HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null)
|
||||||
|
|
||||||
HOSTCC = gcc
|
HOSTCC = gcc
|
||||||
HOSTCXX = g++
|
HOSTCXX = g++
|
||||||
HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
KBUILD_HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 \
|
||||||
-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS)
|
-fomit-frame-pointer -std=gnu89 $(HOST_LFS_CFLAGS) \
|
||||||
HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
$(HOSTCFLAGS)
|
||||||
HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
KBUILD_HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
|
||||||
HOST_LOADLIBES := $(HOST_LFS_LIBS)
|
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
|
||||||
|
KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
|
||||||
|
|
||||||
# Make variables (CC, etc...)
|
# Make variables (CC, etc...)
|
||||||
AS = $(CROSS_COMPILE)as
|
AS = $(CROSS_COMPILE)as
|
||||||
|
@ -429,10 +430,10 @@ KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
||||||
LDFLAGS :=
|
LDFLAGS :=
|
||||||
GCC_PLUGINS_CFLAGS :=
|
GCC_PLUGINS_CFLAGS :=
|
||||||
|
|
||||||
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
|
export ARCH SRCARCH CONFIG_SHELL HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE AS LD CC
|
||||||
export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
|
export CPP AR NM STRIP OBJCOPY OBJDUMP KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS
|
||||||
export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
|
export MAKE LEX YACC AWK GENKSYMS INSTALLKERNEL PERL PYTHON PYTHON2 PYTHON3 UTS_MACHINE
|
||||||
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
export HOSTCXX KBUILD_HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
||||||
|
|
||||||
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
|
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
|
||||||
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
|
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
|
||||||
|
@ -1009,9 +1010,10 @@ ifdef CONFIG_GDB_SCRIPTS
|
||||||
endif
|
endif
|
||||||
+$(call if_changed,link-vmlinux)
|
+$(call if_changed,link-vmlinux)
|
||||||
|
|
||||||
# Build samples along the rest of the kernel
|
# Build samples along the rest of the kernel. This needs headers_install.
|
||||||
ifdef CONFIG_SAMPLES
|
ifdef CONFIG_SAMPLES
|
||||||
vmlinux-dirs += samples
|
vmlinux-dirs += samples
|
||||||
|
samples: headers_install
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# The actual objects are generated when descending,
|
# The actual objects are generated when descending,
|
||||||
|
@ -1116,7 +1118,7 @@ define filechk_version.h
|
||||||
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
|
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(version_h): $(srctree)/Makefile FORCE
|
$(version_h): FORCE
|
||||||
$(call filechk,version.h)
|
$(call filechk,version.h)
|
||||||
$(Q)rm -f $(old_version_h)
|
$(Q)rm -f $(old_version_h)
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ targets := vmlinux.gz vmlinux \
|
||||||
tools/bootpzh bootloader bootpheader bootpzheader
|
tools/bootpzh bootloader bootpheader bootpzheader
|
||||||
OBJSTRIP := $(obj)/tools/objstrip
|
OBJSTRIP := $(obj)/tools/objstrip
|
||||||
|
|
||||||
HOSTCFLAGS := -Wall -I$(objtree)/usr/include
|
KBUILD_HOSTCFLAGS := -Wall -I$(objtree)/usr/include
|
||||||
BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
|
BOOTCFLAGS += -I$(objtree)/$(obj) -I$(srctree)/$(obj)
|
||||||
|
|
||||||
# SRM bootable image. Copy to offset 512 of a partition.
|
# SRM bootable image. Copy to offset 512 of a partition.
|
||||||
|
|
|
@ -10,9 +10,6 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 1995-2001 by Russell King
|
# Copyright (C) 1995-2001 by Russell King
|
||||||
|
|
||||||
# Ensure linker flags are correct
|
|
||||||
LDFLAGS :=
|
|
||||||
|
|
||||||
LDFLAGS_vmlinux :=-p --no-undefined -X --pic-veneer
|
LDFLAGS_vmlinux :=-p --no-undefined -X --pic-veneer
|
||||||
ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
|
ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
|
||||||
LDFLAGS_vmlinux += --be8
|
LDFLAGS_vmlinux += --be8
|
||||||
|
|
|
@ -19,31 +19,6 @@ ifeq ($(CONFIG_PM_DEBUG),y)
|
||||||
CFLAGS_pm.o += -DDEBUG
|
CFLAGS_pm.o += -DDEBUG
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Default sed regexp - multiline due to syntax constraints
|
|
||||||
define sed-y
|
|
||||||
"/^->/{s:->#\(.*\):/* \1 */:; \
|
|
||||||
s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
|
|
||||||
s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
|
|
||||||
s:->::; p;}"
|
|
||||||
endef
|
|
||||||
|
|
||||||
# Use filechk to avoid rebuilds when a header changes, but the resulting file
|
|
||||||
# does not
|
|
||||||
define filechk_offsets
|
|
||||||
(set -e; \
|
|
||||||
echo "#ifndef $2"; \
|
|
||||||
echo "#define $2"; \
|
|
||||||
echo "/*"; \
|
|
||||||
echo " * DO NOT MODIFY."; \
|
|
||||||
echo " *"; \
|
|
||||||
echo " * This file was generated by Kbuild"; \
|
|
||||||
echo " */"; \
|
|
||||||
echo ""; \
|
|
||||||
sed -ne $(sed-y); \
|
|
||||||
echo ""; \
|
|
||||||
echo "#endif" )
|
|
||||||
endef
|
|
||||||
|
|
||||||
arch/arm/mach-at91/pm_data-offsets.s: arch/arm/mach-at91/pm_data-offsets.c
|
arch/arm/mach-at91/pm_data-offsets.s: arch/arm/mach-at91/pm_data-offsets.c
|
||||||
$(call if_changed_dep,cc_s_c)
|
$(call if_changed_dep,cc_s_c)
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,10 @@
|
||||||
#include <linux/uts.h>
|
#include <linux/uts.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
#include <linux/elfnote.h>
|
#include <linux/elfnote.h>
|
||||||
|
#include <linux/build-salt.h>
|
||||||
|
|
||||||
ELFNOTE_START(Linux, 0, "a")
|
ELFNOTE_START(Linux, 0, "a")
|
||||||
.long LINUX_VERSION_CODE
|
.long LINUX_VERSION_CODE
|
||||||
ELFNOTE_END
|
ELFNOTE_END
|
||||||
|
|
||||||
|
BUILD_SALT
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
KBUILD_DEFCONFIG := or1ksim_defconfig
|
KBUILD_DEFCONFIG := or1ksim_defconfig
|
||||||
|
|
||||||
LDFLAGS :=
|
|
||||||
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
|
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
|
||||||
LDFLAGS_vmlinux :=
|
LDFLAGS_vmlinux :=
|
||||||
LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
|
LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include <linux/uts.h>
|
#include <linux/uts.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
|
#include <linux/build-salt.h>
|
||||||
|
|
||||||
#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
|
#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
|
||||||
.section name, flags; \
|
.section name, flags; \
|
||||||
|
@ -23,3 +24,5 @@
|
||||||
ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
|
ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
|
||||||
.long LINUX_VERSION_CODE
|
.long LINUX_VERSION_CODE
|
||||||
ASM_ELF_NOTE_END
|
ASM_ELF_NOTE_END
|
||||||
|
|
||||||
|
BUILD_SALT
|
||||||
|
|
|
@ -6,9 +6,8 @@ LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined
|
||||||
$(obj)/purgatory.ro: $(obj)/trampoline.o FORCE
|
$(obj)/purgatory.ro: $(obj)/trampoline.o FORCE
|
||||||
$(call if_changed,ld)
|
$(call if_changed,ld)
|
||||||
|
|
||||||
CMD_BIN2C = $(objtree)/scripts/basic/bin2c
|
|
||||||
quiet_cmd_bin2c = BIN2C $@
|
quiet_cmd_bin2c = BIN2C $@
|
||||||
cmd_bin2c = $(CMD_BIN2C) kexec_purgatory < $< > $@
|
cmd_bin2c = $(objtree)/scripts/bin2c kexec_purgatory < $< > $@
|
||||||
|
|
||||||
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE
|
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE
|
||||||
$(call if_changed,bin2c)
|
$(call if_changed,bin2c)
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
# for more details.
|
# for more details.
|
||||||
#
|
#
|
||||||
|
|
||||||
LDFLAGS :=
|
|
||||||
OBJCOPYFLAGS := -O binary
|
OBJCOPYFLAGS := -O binary
|
||||||
LDFLAGS_vmlinux :=
|
LDFLAGS_vmlinux :=
|
||||||
ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
|
ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
|
||||||
|
|
|
@ -25,15 +25,15 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
|
||||||
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
|
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
|
||||||
|
|
||||||
define filechk_syshdr
|
define filechk_syshdr
|
||||||
$(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2"
|
$(CONFIG_SHELL) '$(systbl)' -H -a $(syshdr_abi_$(basetarget)) -f "$2" < $<
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define filechk_sysnr
|
define filechk_sysnr
|
||||||
$(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget))
|
$(CONFIG_SHELL) '$(systbl)' -N -a $(sysnr_abi_$(basetarget)) < $<
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define filechk_syscalls
|
define filechk_syscalls
|
||||||
$(CONFIG_SHELL) '$(systbl)' -S
|
$(CONFIG_SHELL) '$(systbl)' -S < $<
|
||||||
endef
|
endef
|
||||||
|
|
||||||
syshdr_abi_unistd_32 := common,32
|
syshdr_abi_unistd_32 := common,32
|
||||||
|
|
|
@ -28,9 +28,8 @@ KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
|
||||||
$(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
|
$(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
|
||||||
$(call if_changed,ld)
|
$(call if_changed,ld)
|
||||||
|
|
||||||
CMD_BIN2C = $(objtree)/scripts/basic/bin2c
|
|
||||||
quiet_cmd_bin2c = BIN2C $@
|
quiet_cmd_bin2c = BIN2C $@
|
||||||
cmd_bin2c = $(CMD_BIN2C) kexec_purgatory < $< > $@
|
cmd_bin2c = $(objtree)/scripts/bin2c kexec_purgatory < $< > $@
|
||||||
|
|
||||||
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE
|
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE
|
||||||
$(call if_changed,bin2c)
|
$(call if_changed,bin2c)
|
||||||
|
|
|
@ -116,14 +116,7 @@ endef
|
||||||
KBUILD_KCONFIG := $(HOST_DIR)/um/Kconfig
|
KBUILD_KCONFIG := $(HOST_DIR)/um/Kconfig
|
||||||
|
|
||||||
archheaders:
|
archheaders:
|
||||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
|
$(Q)$(MAKE) -f $(srctree)/Makefile ARCH=$(HEADER_ARCH) asm-generic archheaders
|
||||||
kbuild-file=$(HOST_DIR)/include/asm/Kbuild \
|
|
||||||
obj=$(HOST_DIR)/include/generated/asm
|
|
||||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
|
|
||||||
kbuild-file=$(HOST_DIR)/include/uapi/asm/Kbuild \
|
|
||||||
obj=$(HOST_DIR)/include/generated/uapi/asm
|
|
||||||
$(Q)$(MAKE) KBUILD_SRC= ARCH=$(HEADER_ARCH) archheaders
|
|
||||||
|
|
||||||
|
|
||||||
archprepare: include/generated/user_constants.h
|
archprepare: include/generated/user_constants.h
|
||||||
|
|
||||||
|
@ -169,7 +162,7 @@ define filechk_gen-asm-offsets
|
||||||
echo " *"; \
|
echo " *"; \
|
||||||
echo " */"; \
|
echo " */"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \
|
sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" < $<; \
|
||||||
echo ""; )
|
echo ""; )
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
|
@ -25,10 +25,10 @@ LDFLAGS_vde.o := -r $(shell $(CC) $(CFLAGS) -print-file-name=libvdeplug.a)
|
||||||
targets := pcap_kern.o pcap_user.o vde_kern.o vde_user.o
|
targets := pcap_kern.o pcap_user.o vde_kern.o vde_user.o
|
||||||
|
|
||||||
$(obj)/pcap.o: $(obj)/pcap_kern.o $(obj)/pcap_user.o
|
$(obj)/pcap.o: $(obj)/pcap_kern.o $(obj)/pcap_user.o
|
||||||
$(LD) -r -dp -o $@ $^ $(LDFLAGS) $(LDFLAGS_pcap.o)
|
$(LD) -r -dp -o $@ $^ $(ld_flags)
|
||||||
|
|
||||||
$(obj)/vde.o: $(obj)/vde_kern.o $(obj)/vde_user.o
|
$(obj)/vde.o: $(obj)/vde_kern.o $(obj)/vde_user.o
|
||||||
$(LD) -r -dp -o $@ $^ $(LDFLAGS) $(LDFLAGS_vde.o)
|
$(LD) -r -dp -o $@ $^ $(ld_flags)
|
||||||
|
|
||||||
#XXX: The call below does not work because the flags are added before the
|
#XXX: The call below does not work because the flags are added before the
|
||||||
# object name, so nothing from the library gets linked.
|
# object name, so nothing from the library gets linked.
|
||||||
|
|
|
@ -13,8 +13,6 @@ KBUILD_CFLAGS += $(call cc-option,-m32)
|
||||||
KBUILD_AFLAGS += $(call cc-option,-m32)
|
KBUILD_AFLAGS += $(call cc-option,-m32)
|
||||||
LINK-y += $(call cc-option,-m32)
|
LINK-y += $(call cc-option,-m32)
|
||||||
|
|
||||||
export LDFLAGS
|
|
||||||
|
|
||||||
LDS_EXTRA := -Ui386
|
LDS_EXTRA := -Ui386
|
||||||
export LDS_EXTRA
|
export LDS_EXTRA
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
* Here we can supply some information useful to userland.
|
* Here we can supply some information useful to userland.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/build-salt.h>
|
||||||
#include <linux/uts.h>
|
#include <linux/uts.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
#include <linux/elfnote.h>
|
#include <linux/elfnote.h>
|
||||||
|
@ -10,3 +11,5 @@
|
||||||
ELFNOTE_START(Linux, 0, "a")
|
ELFNOTE_START(Linux, 0, "a")
|
||||||
.long LINUX_VERSION_CODE
|
.long LINUX_VERSION_CODE
|
||||||
ELFNOTE_END
|
ELFNOTE_END
|
||||||
|
|
||||||
|
BUILD_SALT
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* Here we can supply some information useful to userland.
|
* Here we can supply some information useful to userland.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/build-salt.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
#include <linux/elfnote.h>
|
#include <linux/elfnote.h>
|
||||||
|
|
||||||
|
@ -14,6 +15,8 @@ ELFNOTE_START(Linux, 0, "a")
|
||||||
.long LINUX_VERSION_CODE
|
.long LINUX_VERSION_CODE
|
||||||
ELFNOTE_END
|
ELFNOTE_END
|
||||||
|
|
||||||
|
BUILD_SALT
|
||||||
|
|
||||||
#ifdef CONFIG_XEN
|
#ifdef CONFIG_XEN
|
||||||
/*
|
/*
|
||||||
* Add a special note telling glibc's dynamic linker a fake hardware
|
* Add a special note telling glibc's dynamic linker a fake hardware
|
||||||
|
|
|
@ -28,9 +28,8 @@ $(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
|
||||||
|
|
||||||
targets += kexec-purgatory.c
|
targets += kexec-purgatory.c
|
||||||
|
|
||||||
CMD_BIN2C = $(objtree)/scripts/basic/bin2c
|
|
||||||
quiet_cmd_bin2c = BIN2C $@
|
quiet_cmd_bin2c = BIN2C $@
|
||||||
cmd_bin2c = $(CMD_BIN2C) kexec_purgatory < $< > $@
|
cmd_bin2c = $(objtree)/scripts/bin2c kexec_purgatory < $< > $@
|
||||||
|
|
||||||
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE
|
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro FORCE
|
||||||
$(call if_changed,bin2c)
|
$(call if_changed,bin2c)
|
||||||
|
|
|
@ -30,8 +30,7 @@ Image: boot-elf
|
||||||
zImage: boot-redboot
|
zImage: boot-redboot
|
||||||
uImage: $(obj)/uImage
|
uImage: $(obj)/uImage
|
||||||
|
|
||||||
boot-elf boot-redboot: $(addprefix $(obj)/,$(subdir-y)) \
|
boot-elf boot-redboot: $(addprefix $(obj)/,$(subdir-y))
|
||||||
$(addprefix $(obj)/,$(host-progs))
|
|
||||||
$(Q)$(MAKE) $(build)=$(obj)/$@ $(MAKECMDGOALS)
|
$(Q)$(MAKE) $(build)=$(obj)/$@ $(MAKECMDGOALS)
|
||||||
|
|
||||||
OBJCOPYFLAGS = --strip-all -R .comment -R .note.gnu.build-id -O binary
|
OBJCOPYFLAGS = --strip-all -R .comment -R .note.gnu.build-id -O binary
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#ifndef __BUILD_SALT_H
|
||||||
|
#define __BUILD_SALT_H
|
||||||
|
|
||||||
|
#include <linux/elfnote.h>
|
||||||
|
|
||||||
|
#define LINUX_ELFNOTE_BUILD_SALT 0x100
|
||||||
|
|
||||||
|
#ifdef __ASSEMBLER__
|
||||||
|
|
||||||
|
#define BUILD_SALT \
|
||||||
|
ELFNOTE(Linux, LINUX_ELFNOTE_BUILD_SALT, .asciz CONFIG_BUILD_SALT)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define BUILD_SALT \
|
||||||
|
ELFNOTE32("Linux", LINUX_ELFNOTE_BUILD_SALT, CONFIG_BUILD_SALT)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __BUILD_SALT_H */
|
|
@ -107,6 +107,15 @@ config LOCALVERSION_AUTO
|
||||||
|
|
||||||
which is done within the script "scripts/setlocalversion".)
|
which is done within the script "scripts/setlocalversion".)
|
||||||
|
|
||||||
|
config BUILD_SALT
|
||||||
|
string "Build ID Salt"
|
||||||
|
default ""
|
||||||
|
help
|
||||||
|
The build ID is used to link binaries and their debug info. Setting
|
||||||
|
this option will use the value in the calculation of the build id.
|
||||||
|
This is mostly useful for distributions which want to ensure the
|
||||||
|
build is unique between builds. It's safe to leave the default.
|
||||||
|
|
||||||
config HAVE_KERNEL_GZIP
|
config HAVE_KERNEL_GZIP
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <generated/compile.h>
|
#include <generated/compile.h>
|
||||||
|
#include <linux/build-salt.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <linux/uts.h>
|
#include <linux/uts.h>
|
||||||
#include <linux/utsname.h>
|
#include <linux/utsname.h>
|
||||||
|
@ -49,3 +50,5 @@ const char linux_proc_banner[] =
|
||||||
"%s version %s"
|
"%s version %s"
|
||||||
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
|
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
|
||||||
" (" LINUX_COMPILER ") %s\n";
|
" (" LINUX_COMPILER ") %s\n";
|
||||||
|
|
||||||
|
BUILD_SALT;
|
||||||
|
|
|
@ -123,7 +123,7 @@ targets += config_data.gz
|
||||||
$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
|
$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
|
||||||
$(call if_changed,gzip)
|
$(call if_changed,gzip)
|
||||||
|
|
||||||
filechk_ikconfiggz = (echo "static const char kernel_config_data[] __used = MAGIC_START"; cat $< | scripts/basic/bin2c; echo "MAGIC_END;")
|
filechk_ikconfiggz = (echo "static const char kernel_config_data[] __used = MAGIC_START"; cat $< | scripts/bin2c; echo "MAGIC_END;")
|
||||||
targets += config_data.h
|
targets += config_data.h
|
||||||
$(obj)/config_data.h: $(obj)/config_data.gz FORCE
|
$(obj)/config_data.h: $(obj)/config_data.gz FORCE
|
||||||
$(call filechk,ikconfiggz)
|
$(call filechk,ikconfiggz)
|
||||||
|
|
|
@ -5,14 +5,14 @@
|
||||||
|
|
||||||
hostprogs-y := bpfilter_umh
|
hostprogs-y := bpfilter_umh
|
||||||
bpfilter_umh-objs := main.o
|
bpfilter_umh-objs := main.o
|
||||||
HOSTCFLAGS += -I. -Itools/include/ -Itools/include/uapi
|
KBUILD_HOSTCFLAGS += -I. -Itools/include/ -Itools/include/uapi
|
||||||
HOSTCC := $(CC)
|
HOSTCC := $(CC)
|
||||||
|
|
||||||
ifeq ($(CONFIG_BPFILTER_UMH), y)
|
ifeq ($(CONFIG_BPFILTER_UMH), y)
|
||||||
# builtin bpfilter_umh should be compiled with -static
|
# builtin bpfilter_umh should be compiled with -static
|
||||||
# since rootfs isn't mounted at the time of __init
|
# since rootfs isn't mounted at the time of __init
|
||||||
# function is called and do_execv won't find elf interpreter
|
# function is called and do_execv won't find elf interpreter
|
||||||
HOSTLDFLAGS += -static
|
KBUILD_HOSTLDFLAGS += -static
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(obj)/bpfilter_umh_blob.o: $(obj)/bpfilter_umh
|
$(obj)/bpfilter_umh_blob.o: $(obj)/bpfilter_umh
|
||||||
|
|
|
@ -164,11 +164,11 @@ always += xdpsock_kern.o
|
||||||
always += xdp_fwd_kern.o
|
always += xdp_fwd_kern.o
|
||||||
always += task_fd_query_kern.o
|
always += task_fd_query_kern.o
|
||||||
|
|
||||||
HOSTCFLAGS += -I$(objtree)/usr/include
|
KBUILD_HOSTCFLAGS += -I$(objtree)/usr/include
|
||||||
HOSTCFLAGS += -I$(srctree)/tools/lib/
|
KBUILD_HOSTCFLAGS += -I$(srctree)/tools/lib/
|
||||||
HOSTCFLAGS += -I$(srctree)/tools/testing/selftests/bpf/
|
KBUILD_HOSTCFLAGS += -I$(srctree)/tools/testing/selftests/bpf/
|
||||||
HOSTCFLAGS += -I$(srctree)/tools/lib/ -I$(srctree)/tools/include
|
KBUILD_HOSTCFLAGS += -I$(srctree)/tools/lib/ -I$(srctree)/tools/include
|
||||||
HOSTCFLAGS += -I$(srctree)/tools/perf
|
KBUILD_HOSTCFLAGS += -I$(srctree)/tools/perf
|
||||||
|
|
||||||
HOSTCFLAGS_bpf_load.o += -I$(objtree)/usr/include -Wno-unused-variable
|
HOSTCFLAGS_bpf_load.o += -I$(objtree)/usr/include -Wno-unused-variable
|
||||||
HOSTCFLAGS_trace_helpers.o += -I$(srctree)/tools/lib/bpf/
|
HOSTCFLAGS_trace_helpers.o += -I$(srctree)/tools/lib/bpf/
|
||||||
|
@ -180,12 +180,12 @@ HOSTCFLAGS_trace_event_user.o += -I$(srctree)/tools/lib/bpf/
|
||||||
HOSTCFLAGS_sampleip_user.o += -I$(srctree)/tools/lib/bpf/
|
HOSTCFLAGS_sampleip_user.o += -I$(srctree)/tools/lib/bpf/
|
||||||
HOSTCFLAGS_task_fd_query_user.o += -I$(srctree)/tools/lib/bpf/
|
HOSTCFLAGS_task_fd_query_user.o += -I$(srctree)/tools/lib/bpf/
|
||||||
|
|
||||||
HOST_LOADLIBES += $(LIBBPF) -lelf
|
KBUILD_HOSTLDLIBS += $(LIBBPF) -lelf
|
||||||
HOSTLOADLIBES_tracex4 += -lrt
|
HOSTLDLIBS_tracex4 += -lrt
|
||||||
HOSTLOADLIBES_trace_output += -lrt
|
HOSTLDLIBS_trace_output += -lrt
|
||||||
HOSTLOADLIBES_map_perf_test += -lrt
|
HOSTLDLIBS_map_perf_test += -lrt
|
||||||
HOSTLOADLIBES_test_overhead += -lrt
|
HOSTLDLIBS_test_overhead += -lrt
|
||||||
HOSTLOADLIBES_xdpsock += -pthread
|
HOSTLDLIBS_xdpsock += -pthread
|
||||||
|
|
||||||
# Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline:
|
# Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline:
|
||||||
# make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
|
# make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
|
||||||
|
|
|
@ -30,9 +30,9 @@ HOSTCFLAGS_bpf-direct.o += $(MFLAG)
|
||||||
HOSTCFLAGS_dropper.o += $(MFLAG)
|
HOSTCFLAGS_dropper.o += $(MFLAG)
|
||||||
HOSTCFLAGS_bpf-helper.o += $(MFLAG)
|
HOSTCFLAGS_bpf-helper.o += $(MFLAG)
|
||||||
HOSTCFLAGS_bpf-fancy.o += $(MFLAG)
|
HOSTCFLAGS_bpf-fancy.o += $(MFLAG)
|
||||||
HOSTLOADLIBES_bpf-direct += $(MFLAG)
|
HOSTLDLIBS_bpf-direct += $(MFLAG)
|
||||||
HOSTLOADLIBES_bpf-fancy += $(MFLAG)
|
HOSTLDLIBS_bpf-fancy += $(MFLAG)
|
||||||
HOSTLOADLIBES_dropper += $(MFLAG)
|
HOSTLDLIBS_dropper += $(MFLAG)
|
||||||
endif
|
endif
|
||||||
always := $(hostprogs-m)
|
always := $(hostprogs-m)
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#
|
#
|
||||||
# Generated files
|
# Generated files
|
||||||
#
|
#
|
||||||
|
bin2c
|
||||||
conmakehash
|
conmakehash
|
||||||
kallsyms
|
kallsyms
|
||||||
pnmtologo
|
pnmtologo
|
||||||
|
|
|
@ -56,7 +56,7 @@ kecho := $($(quiet)kecho)
|
||||||
define filechk
|
define filechk
|
||||||
$(Q)set -e; \
|
$(Q)set -e; \
|
||||||
mkdir -p $(dir $@); \
|
mkdir -p $(dir $@); \
|
||||||
$(filechk_$(1)) < $< > $@.tmp; \
|
$(filechk_$(1)) > $@.tmp; \
|
||||||
if [ -r $@ ] && cmp -s $@ $@.tmp; then \
|
if [ -r $@ ] && cmp -s $@ $@.tmp; then \
|
||||||
rm -f $@.tmp; \
|
rm -f $@.tmp; \
|
||||||
else \
|
else \
|
||||||
|
@ -126,7 +126,7 @@ cc-option = $(call __cc-option, $(CC),\
|
||||||
# hostcc-option
|
# hostcc-option
|
||||||
# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
|
# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
|
||||||
hostcc-option = $(call __cc-option, $(HOSTCC),\
|
hostcc-option = $(call __cc-option, $(HOSTCC),\
|
||||||
$(HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
$(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
||||||
|
|
||||||
# cc-option-yn
|
# cc-option-yn
|
||||||
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
|
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
|
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
|
||||||
|
|
||||||
|
hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c
|
||||||
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
|
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
|
||||||
hostprogs-$(CONFIG_LOGO) += pnmtologo
|
hostprogs-$(CONFIG_LOGO) += pnmtologo
|
||||||
hostprogs-$(CONFIG_VT) += conmakehash
|
hostprogs-$(CONFIG_VT) += conmakehash
|
||||||
|
@ -22,8 +23,8 @@ hostprogs-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert
|
||||||
|
|
||||||
HOSTCFLAGS_sortextable.o = -I$(srctree)/tools/include
|
HOSTCFLAGS_sortextable.o = -I$(srctree)/tools/include
|
||||||
HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include
|
HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include
|
||||||
HOSTLOADLIBES_sign-file = -lcrypto
|
HOSTLDLIBS_sign-file = -lcrypto
|
||||||
HOSTLOADLIBES_extract-cert = -lcrypto
|
HOSTLDLIBS_extract-cert = -lcrypto
|
||||||
|
|
||||||
always := $(hostprogs-y) $(hostprogs-m)
|
always := $(hostprogs-y) $(hostprogs-m)
|
||||||
|
|
||||||
|
|
|
@ -53,13 +53,6 @@ endif
|
||||||
|
|
||||||
include scripts/Makefile.lib
|
include scripts/Makefile.lib
|
||||||
|
|
||||||
ifdef host-progs
|
|
||||||
ifneq ($(hostprogs-y),$(host-progs))
|
|
||||||
$(warning kbuild: $(obj)/Makefile - Usage of host-progs is deprecated. Please replace with hostprogs-y!)
|
|
||||||
hostprogs-y += $(host-progs)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Do not include host rules unless needed
|
# Do not include host rules unless needed
|
||||||
ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
|
ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
|
||||||
include scripts/Makefile.host
|
include scripts/Makefile.host
|
||||||
|
|
|
@ -38,7 +38,6 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
|
||||||
|
|
||||||
__clean-files := $(extra-y) $(extra-m) $(extra-) \
|
__clean-files := $(extra-y) $(extra-m) $(extra-) \
|
||||||
$(always) $(targets) $(clean-files) \
|
$(always) $(targets) $(clean-files) \
|
||||||
$(host-progs) \
|
|
||||||
$(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
|
$(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
|
||||||
$(hostlibs-y) $(hostlibs-m) $(hostlibs-) \
|
$(hostlibs-y) $(hostlibs-m) $(hostlibs-) \
|
||||||
$(hostcxxlibs-y) $(hostcxxlibs-m)
|
$(hostcxxlibs-y) $(hostcxxlibs-m)
|
||||||
|
|
|
@ -62,9 +62,9 @@ host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
|
||||||
#####
|
#####
|
||||||
# Handle options to gcc. Support building with separate output directory
|
# Handle options to gcc. Support building with separate output directory
|
||||||
|
|
||||||
_hostc_flags = $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
_hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
||||||
$(HOSTCFLAGS_$(basetarget).o)
|
$(HOSTCFLAGS_$(basetarget).o)
|
||||||
_hostcxx_flags = $(HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
_hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
||||||
$(HOSTCXXFLAGS_$(basetarget).o)
|
$(HOSTCXXFLAGS_$(basetarget).o)
|
||||||
|
|
||||||
ifeq ($(KBUILD_SRC),)
|
ifeq ($(KBUILD_SRC),)
|
||||||
|
@ -84,17 +84,17 @@ hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags)
|
||||||
# Create executable from a single .c file
|
# Create executable from a single .c file
|
||||||
# host-csingle -> Executable
|
# host-csingle -> Executable
|
||||||
quiet_cmd_host-csingle = HOSTCC $@
|
quiet_cmd_host-csingle = HOSTCC $@
|
||||||
cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(HOSTLDFLAGS) -o $@ $< \
|
cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
|
||||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||||
$(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
$(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
||||||
$(call if_changed_dep,host-csingle)
|
$(call if_changed_dep,host-csingle)
|
||||||
|
|
||||||
# Link an executable based on list of .o files, all plain c
|
# Link an executable based on list of .o files, all plain c
|
||||||
# host-cmulti -> executable
|
# host-cmulti -> executable
|
||||||
quiet_cmd_host-cmulti = HOSTLD $@
|
quiet_cmd_host-cmulti = HOSTLD $@
|
||||||
cmd_host-cmulti = $(HOSTCC) $(HOSTLDFLAGS) -o $@ \
|
cmd_host-cmulti = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||||
$(addprefix $(obj)/,$($(@F)-objs)) \
|
$(addprefix $(obj)/,$($(@F)-objs)) \
|
||||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||||
$(host-cmulti): FORCE
|
$(host-cmulti): FORCE
|
||||||
$(call if_changed,host-cmulti)
|
$(call if_changed,host-cmulti)
|
||||||
$(call multi_depend, $(host-cmulti), , -objs)
|
$(call multi_depend, $(host-cmulti), , -objs)
|
||||||
|
@ -109,10 +109,10 @@ $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
|
||||||
# Link an executable based on list of .o files, a mixture of .c and .cc
|
# Link an executable based on list of .o files, a mixture of .c and .cc
|
||||||
# host-cxxmulti -> executable
|
# host-cxxmulti -> executable
|
||||||
quiet_cmd_host-cxxmulti = HOSTLD $@
|
quiet_cmd_host-cxxmulti = HOSTLD $@
|
||||||
cmd_host-cxxmulti = $(HOSTCXX) $(HOSTLDFLAGS) -o $@ \
|
cmd_host-cxxmulti = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||||
$(foreach o,objs cxxobjs,\
|
$(foreach o,objs cxxobjs,\
|
||||||
$(addprefix $(obj)/,$($(@F)-$(o)))) \
|
$(addprefix $(obj)/,$($(@F)-$(o)))) \
|
||||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||||
$(host-cxxmulti): FORCE
|
$(host-cxxmulti): FORCE
|
||||||
$(call if_changed,host-cxxmulti)
|
$(call if_changed,host-cxxmulti)
|
||||||
$(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
|
$(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
|
||||||
|
@ -143,9 +143,9 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
|
||||||
# Link a shared library, based on position independent .o files
|
# Link a shared library, based on position independent .o files
|
||||||
# *.o -> .so shared library (host-cshlib)
|
# *.o -> .so shared library (host-cshlib)
|
||||||
quiet_cmd_host-cshlib = HOSTLLD -shared $@
|
quiet_cmd_host-cshlib = HOSTLLD -shared $@
|
||||||
cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
|
cmd_host-cshlib = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
|
||||||
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
||||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||||
$(host-cshlib): FORCE
|
$(host-cshlib): FORCE
|
||||||
$(call if_changed,host-cshlib)
|
$(call if_changed,host-cshlib)
|
||||||
$(call multi_depend, $(host-cshlib), .so, -objs)
|
$(call multi_depend, $(host-cshlib), .so, -objs)
|
||||||
|
@ -153,9 +153,9 @@ $(call multi_depend, $(host-cshlib), .so, -objs)
|
||||||
# Link a shared library, based on position independent .o files
|
# Link a shared library, based on position independent .o files
|
||||||
# *.o -> .so shared library (host-cxxshlib)
|
# *.o -> .so shared library (host-cxxshlib)
|
||||||
quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
|
quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
|
||||||
cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
|
cmd_host-cxxshlib = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
|
||||||
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
$(addprefix $(obj)/,$($(@F:.so=-objs))) \
|
||||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||||
$(host-cxxshlib): FORCE
|
$(host-cxxshlib): FORCE
|
||||||
$(call if_changed,host-cxxshlib)
|
$(call if_changed,host-cxxshlib)
|
||||||
$(call multi_depend, $(host-cxxshlib), .so, -objs)
|
$(call multi_depend, $(host-cxxshlib), .so, -objs)
|
||||||
|
|
|
@ -162,7 +162,7 @@ a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
|
||||||
cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
|
cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \
|
||||||
$(__cpp_flags)
|
$(__cpp_flags)
|
||||||
|
|
||||||
ld_flags = $(LDFLAGS) $(ldflags-y)
|
ld_flags = $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
|
||||||
|
|
||||||
DTC_INCLUDE := $(srctree)/scripts/dtc/include-prefixes
|
DTC_INCLUDE := $(srctree)/scripts/dtc/include-prefixes
|
||||||
|
|
||||||
|
@ -225,8 +225,7 @@ $(obj)/%: $(src)/%_shipped
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
quiet_cmd_ld = LD $@
|
quiet_cmd_ld = LD $@
|
||||||
cmd_ld = $(LD) $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F)) \
|
cmd_ld = $(LD) $(ld_flags) $(filter-out FORCE,$^) -o $@
|
||||||
$(filter-out FORCE,$^) -o $@
|
|
||||||
|
|
||||||
# Objcopy
|
# Objcopy
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
@ -416,7 +415,7 @@ define filechk_offsets
|
||||||
echo " * This file was generated by Kbuild"; \
|
echo " * This file was generated by Kbuild"; \
|
||||||
echo " */"; \
|
echo " */"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
sed -ne $(sed-offsets); \
|
sed -ne $(sed-offsets) < $<; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
echo "#endif" )
|
echo "#endif" )
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
fixdep
|
fixdep
|
||||||
bin2c
|
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
# fixdep: Used to generate dependency information during build process
|
# fixdep: Used to generate dependency information during build process
|
||||||
|
|
||||||
hostprogs-y := fixdep
|
hostprogs-y := fixdep
|
||||||
hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c
|
|
||||||
always := $(hostprogs-y)
|
always := $(hostprogs-y)
|
||||||
|
|
||||||
# fixdep is needed to compile other host programs
|
# fixdep is needed to compile other host programs
|
||||||
|
|
|
@ -128,9 +128,10 @@ run_cmd_parmap() {
|
||||||
fi
|
fi
|
||||||
echo $@ >>$DEBUG_FILE
|
echo $@ >>$DEBUG_FILE
|
||||||
$@ 2>>$DEBUG_FILE
|
$@ 2>>$DEBUG_FILE
|
||||||
if [[ $? -ne 0 ]]; then
|
err=$?
|
||||||
|
if [[ $err -ne 0 ]]; then
|
||||||
echo "coccicheck failed"
|
echo "coccicheck failed"
|
||||||
exit $?
|
exit $err
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,129 @@
|
||||||
|
// Check if refcount_t type and API should be used
|
||||||
|
// instead of atomic_t type when dealing with refcounters
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016-2017, Elena Reshetova, Intel Corporation
|
||||||
|
//
|
||||||
|
// Confidence: Moderate
|
||||||
|
// URL: http://coccinelle.lip6.fr/
|
||||||
|
// Options: --include-headers --very-quiet
|
||||||
|
|
||||||
|
virtual report
|
||||||
|
|
||||||
|
@r1 exists@
|
||||||
|
identifier a, x;
|
||||||
|
position p1, p2;
|
||||||
|
identifier fname =~ ".*free.*";
|
||||||
|
identifier fname2 =~ ".*destroy.*";
|
||||||
|
identifier fname3 =~ ".*del.*";
|
||||||
|
identifier fname4 =~ ".*queue_work.*";
|
||||||
|
identifier fname5 =~ ".*schedule_work.*";
|
||||||
|
identifier fname6 =~ ".*call_rcu.*";
|
||||||
|
|
||||||
|
@@
|
||||||
|
|
||||||
|
(
|
||||||
|
atomic_dec_and_test@p1(&(a)->x)
|
||||||
|
|
|
||||||
|
atomic_dec_and_lock@p1(&(a)->x, ...)
|
||||||
|
|
|
||||||
|
atomic_long_dec_and_lock@p1(&(a)->x, ...)
|
||||||
|
|
|
||||||
|
atomic_long_dec_and_test@p1(&(a)->x)
|
||||||
|
|
|
||||||
|
atomic64_dec_and_test@p1(&(a)->x)
|
||||||
|
|
|
||||||
|
local_dec_and_test@p1(&(a)->x)
|
||||||
|
)
|
||||||
|
...
|
||||||
|
(
|
||||||
|
fname@p2(a, ...);
|
||||||
|
|
|
||||||
|
fname2@p2(...);
|
||||||
|
|
|
||||||
|
fname3@p2(...);
|
||||||
|
|
|
||||||
|
fname4@p2(...);
|
||||||
|
|
|
||||||
|
fname5@p2(...);
|
||||||
|
|
|
||||||
|
fname6@p2(...);
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p1 << r1.p1;
|
||||||
|
p2 << r1.p2;
|
||||||
|
@@
|
||||||
|
msg = "atomic_dec_and_test variation before object free at line %s."
|
||||||
|
coccilib.report.print_report(p1[0], msg % (p2[0].line))
|
||||||
|
|
||||||
|
@r4 exists@
|
||||||
|
identifier a, x, y;
|
||||||
|
position p1, p2;
|
||||||
|
identifier fname =~ ".*free.*";
|
||||||
|
|
||||||
|
@@
|
||||||
|
|
||||||
|
(
|
||||||
|
atomic_dec_and_test@p1(&(a)->x)
|
||||||
|
|
|
||||||
|
atomic_dec_and_lock@p1(&(a)->x, ...)
|
||||||
|
|
|
||||||
|
atomic_long_dec_and_lock@p1(&(a)->x, ...)
|
||||||
|
|
|
||||||
|
atomic_long_dec_and_test@p1(&(a)->x)
|
||||||
|
|
|
||||||
|
atomic64_dec_and_test@p1(&(a)->x)
|
||||||
|
|
|
||||||
|
local_dec_and_test@p1(&(a)->x)
|
||||||
|
)
|
||||||
|
...
|
||||||
|
y=a
|
||||||
|
...
|
||||||
|
fname@p2(y, ...);
|
||||||
|
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p1 << r4.p1;
|
||||||
|
p2 << r4.p2;
|
||||||
|
@@
|
||||||
|
msg = "atomic_dec_and_test variation before object free at line %s."
|
||||||
|
coccilib.report.print_report(p1[0], msg % (p2[0].line))
|
||||||
|
|
||||||
|
@r2 exists@
|
||||||
|
identifier a, x;
|
||||||
|
position p1;
|
||||||
|
@@
|
||||||
|
|
||||||
|
(
|
||||||
|
atomic_add_unless(&(a)->x,-1,1)@p1
|
||||||
|
|
|
||||||
|
atomic_long_add_unless(&(a)->x,-1,1)@p1
|
||||||
|
|
|
||||||
|
atomic64_add_unless(&(a)->x,-1,1)@p1
|
||||||
|
)
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p1 << r2.p1;
|
||||||
|
@@
|
||||||
|
msg = "atomic_add_unless"
|
||||||
|
coccilib.report.print_report(p1[0], msg)
|
||||||
|
|
||||||
|
@r3 exists@
|
||||||
|
identifier x;
|
||||||
|
position p1;
|
||||||
|
@@
|
||||||
|
|
||||||
|
(
|
||||||
|
x = atomic_add_return@p1(-1, ...);
|
||||||
|
|
|
||||||
|
x = atomic_long_add_return@p1(-1, ...);
|
||||||
|
|
|
||||||
|
x = atomic64_add_return@p1(-1, ...);
|
||||||
|
)
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p1 << r3.p1;
|
||||||
|
@@
|
||||||
|
msg = "x = atomic_add_return(-1, ...)"
|
||||||
|
coccilib.report.print_report(p1[0], msg)
|
|
@ -1,6 +1,7 @@
|
||||||
/// Find &&/|| operations that include the same argument more than once
|
/// Find &&/|| operations that include the same argument more than once
|
||||||
//# A common source of false positives is when the argument performs a side
|
//# A common source of false positives is when the expression, or
|
||||||
//# effect.
|
//# another expresssion in the same && or || operation, performs a
|
||||||
|
//# side effect.
|
||||||
///
|
///
|
||||||
// Confidence: Moderate
|
// Confidence: Moderate
|
||||||
// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
|
// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
|
||||||
|
@ -20,20 +21,37 @@ position p;
|
||||||
@@
|
@@
|
||||||
|
|
||||||
(
|
(
|
||||||
* E@p
|
E@p || ... || E
|
||||||
|| ... || E
|
|
||||||
|
|
|
|
||||||
* E@p
|
E@p && ... && E
|
||||||
&& ... && E
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@script:python depends on org@
|
@bad@
|
||||||
|
expression r.E,e1,e2,fn;
|
||||||
|
position r.p;
|
||||||
|
assignment operator op;
|
||||||
|
@@
|
||||||
|
|
||||||
|
(
|
||||||
|
E@p
|
||||||
|
&
|
||||||
|
<+... \(fn(...)\|e1 op e2\|e1++\|e1--\|++e1\|--e1\) ...+>
|
||||||
|
)
|
||||||
|
|
||||||
|
@depends on context && !bad@
|
||||||
|
expression r.E;
|
||||||
|
position r.p;
|
||||||
|
@@
|
||||||
|
|
||||||
|
*E@p
|
||||||
|
|
||||||
|
@script:python depends on org && !bad@
|
||||||
p << r.p;
|
p << r.p;
|
||||||
@@
|
@@
|
||||||
|
|
||||||
cocci.print_main("duplicated argument to && or ||",p)
|
cocci.print_main("duplicated argument to && or ||",p)
|
||||||
|
|
||||||
@script:python depends on report@
|
@script:python depends on report && !bad@
|
||||||
p << r.p;
|
p << r.p;
|
||||||
@@
|
@@
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,16 @@ fi
|
||||||
DEPMOD=$1
|
DEPMOD=$1
|
||||||
KERNELRELEASE=$2
|
KERNELRELEASE=$2
|
||||||
|
|
||||||
if ! test -r System.map -a -x "$DEPMOD"; then
|
if ! test -r System.map ; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z $(command -v $DEPMOD) ]; then
|
||||||
|
echo "'make modules_install' requires $DEPMOD. Please install it." >&2
|
||||||
|
echo "This is probably in the kmod package." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# older versions of depmod require the version string to start with three
|
# older versions of depmod require the version string to start with three
|
||||||
# numbers, so we cheat with a symlink here
|
# numbers, so we cheat with a symlink here
|
||||||
depmod_hack_needed=true
|
depmod_hack_needed=true
|
||||||
|
|
|
@ -169,7 +169,7 @@ HOSTCFLAGS_zconf.tab.o := -I$(src)
|
||||||
hostprogs-y += nconf
|
hostprogs-y += nconf
|
||||||
nconf-objs := nconf.o zconf.tab.o nconf.gui.o
|
nconf-objs := nconf.o zconf.tab.o nconf.gui.o
|
||||||
|
|
||||||
HOSTLOADLIBES_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
|
HOSTLDLIBS_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs)
|
||||||
HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
|
HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
|
||||||
HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
|
HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags)
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ hostprogs-y += mconf
|
||||||
lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
|
lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
|
||||||
mconf-objs := mconf.o zconf.tab.o $(addprefix lxdialog/, $(lxdialog))
|
mconf-objs := mconf.o zconf.tab.o $(addprefix lxdialog/, $(lxdialog))
|
||||||
|
|
||||||
HOSTLOADLIBES_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs)
|
HOSTLDLIBS_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs)
|
||||||
$(foreach f, mconf.o $(lxdialog), \
|
$(foreach f, mconf.o $(lxdialog), \
|
||||||
$(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags)))
|
$(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags)))
|
||||||
|
|
||||||
|
@ -191,7 +191,7 @@ hostprogs-y += qconf
|
||||||
qconf-cxxobjs := qconf.o
|
qconf-cxxobjs := qconf.o
|
||||||
qconf-objs := zconf.tab.o
|
qconf-objs := zconf.tab.o
|
||||||
|
|
||||||
HOSTLOADLIBES_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs)
|
HOSTLDLIBS_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs)
|
||||||
HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags)
|
HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags)
|
||||||
|
|
||||||
$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc
|
$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc
|
||||||
|
@ -206,7 +206,7 @@ $(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg
|
||||||
hostprogs-y += gconf
|
hostprogs-y += gconf
|
||||||
gconf-objs := gconf.o zconf.tab.o
|
gconf-objs := gconf.o zconf.tab.o
|
||||||
|
|
||||||
HOSTLOADLIBES_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs)
|
HOSTLDLIBS_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs)
|
||||||
HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags)
|
HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags)
|
||||||
|
|
||||||
$(obj)/gconf.o: $(obj)/.gconf-cfg
|
$(obj)/gconf.o: $(obj)/.gconf-cfg
|
||||||
|
|
|
@ -2125,10 +2125,13 @@ static int check_modname_len(struct module *mod)
|
||||||
**/
|
**/
|
||||||
static void add_header(struct buffer *b, struct module *mod)
|
static void add_header(struct buffer *b, struct module *mod)
|
||||||
{
|
{
|
||||||
|
buf_printf(b, "#include <linux/build-salt.h>\n");
|
||||||
buf_printf(b, "#include <linux/module.h>\n");
|
buf_printf(b, "#include <linux/module.h>\n");
|
||||||
buf_printf(b, "#include <linux/vermagic.h>\n");
|
buf_printf(b, "#include <linux/vermagic.h>\n");
|
||||||
buf_printf(b, "#include <linux/compiler.h>\n");
|
buf_printf(b, "#include <linux/compiler.h>\n");
|
||||||
buf_printf(b, "\n");
|
buf_printf(b, "\n");
|
||||||
|
buf_printf(b, "BUILD_SALT;\n");
|
||||||
|
buf_printf(b, "\n");
|
||||||
buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n");
|
buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n");
|
||||||
buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n");
|
buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n");
|
||||||
buf_printf(b, "\n");
|
buf_printf(b, "\n");
|
||||||
|
|
|
@ -84,10 +84,6 @@ case "${ARCH}" in
|
||||||
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
||||||
[ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}"
|
[ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}"
|
||||||
;;
|
;;
|
||||||
vax)
|
|
||||||
[ -f "${objtree}/vmlinux.SYS" ] && cp -v -- "${objtree}/vmlinux.SYS" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.SYS"
|
|
||||||
[ -f "${objtree}/vmlinux.dsk" ] && cp -v -- "${objtree}/vmlinux.dsk" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.dsk"
|
|
||||||
;;
|
|
||||||
mips)
|
mips)
|
||||||
if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then
|
if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then
|
||||||
cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.bin" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.bin" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
||||||
|
@ -109,6 +105,14 @@ case "${ARCH}" in
|
||||||
cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
arm64)
|
||||||
|
for i in Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo ; do
|
||||||
|
if [ -f "${objtree}/arch/arm64/boot/${i}" ] ; then
|
||||||
|
cp -v -- "${objtree}/arch/arm64/boot/${i}" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}"
|
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}"
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
|
|
|
@ -6,49 +6,81 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
is_enabled() {
|
||||||
|
grep -q "^CONFIG_$1=y" $KCONFIG_CONFIG
|
||||||
|
}
|
||||||
|
|
||||||
|
if_enabled_echo() {
|
||||||
|
if is_enabled "$1"; then
|
||||||
|
echo -n "$2"
|
||||||
|
elif [ $# -ge 3 ]; then
|
||||||
|
echo -n "$3"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
set_debarch() {
|
set_debarch() {
|
||||||
|
if [ -n "$KBUILD_DEBARCH" ] ; then
|
||||||
|
debarch="$KBUILD_DEBARCH"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
# Attempt to find the correct Debian architecture
|
# Attempt to find the correct Debian architecture
|
||||||
case "$UTS_MACHINE" in
|
case "$UTS_MACHINE" in
|
||||||
i386|ia64|alpha)
|
i386|ia64|alpha|m68k|riscv*)
|
||||||
debarch="$UTS_MACHINE" ;;
|
debarch="$UTS_MACHINE" ;;
|
||||||
x86_64)
|
x86_64)
|
||||||
debarch=amd64 ;;
|
debarch=amd64 ;;
|
||||||
sparc*)
|
sparc*)
|
||||||
debarch=sparc ;;
|
debarch=sparc$(if_enabled_echo 64BIT 64) ;;
|
||||||
s390*)
|
s390*)
|
||||||
debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;;
|
debarch=s390x ;;
|
||||||
ppc*)
|
ppc*)
|
||||||
debarch=$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo ppc64el || echo powerpc) ;;
|
if is_enabled 64BIT; then
|
||||||
|
debarch=ppc64$(if_enabled_echo CPU_LITTLE_ENDIAN el)
|
||||||
|
else
|
||||||
|
debarch=powerpc$(if_enabled_echo SPE spe)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
parisc*)
|
parisc*)
|
||||||
debarch=hppa ;;
|
debarch=hppa ;;
|
||||||
mips*)
|
mips*)
|
||||||
debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
|
if is_enabled CPU_LITTLE_ENDIAN; then
|
||||||
|
debarch=mips$(if_enabled_echo 64BIT 64)$(if_enabled_echo CPU_MIPSR6 r6)el
|
||||||
|
elif is_enabled CPU_MIPSR6; then
|
||||||
|
debarch=mips$(if_enabled_echo 64BIT 64)r6
|
||||||
|
else
|
||||||
|
debarch=mips
|
||||||
|
fi
|
||||||
|
;;
|
||||||
aarch64|arm64)
|
aarch64|arm64)
|
||||||
debarch=arm64 ;;
|
debarch=arm64 ;;
|
||||||
arm*)
|
arm*)
|
||||||
if grep -q CONFIG_AEABI=y $KCONFIG_CONFIG; then
|
if is_enabled AEABI; then
|
||||||
if grep -q CONFIG_VFP=y $KCONFIG_CONFIG; then
|
debarch=arm$(if_enabled_echo VFP hf el)
|
||||||
debarch=armhf
|
|
||||||
else
|
|
||||||
debarch=armel
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
debarch=arm
|
debarch=arm
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
openrisc)
|
||||||
debarch=$(dpkg --print-architecture)
|
debarch=or1k ;;
|
||||||
|
sh)
|
||||||
|
if is_enabled CPU_SH3; then
|
||||||
|
debarch=sh3$(if_enabled_echo CPU_BIG_ENDIAN eb)
|
||||||
|
elif is_enabled CPU_SH4; then
|
||||||
|
debarch=sh4$(if_enabled_echo CPU_BIG_ENDIAN eb)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ -z "$debarch" ]; then
|
||||||
|
debarch=$(dpkg-architecture -qDEB_HOST_ARCH)
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo "** ** ** WARNING ** ** **" >&2
|
echo "** ** ** WARNING ** ** **" >&2
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo "Your architecture doesn't have its equivalent" >&2
|
echo "Your architecture doesn't have its equivalent" >&2
|
||||||
echo "Debian userspace architecture defined!" >&2
|
echo "Debian userspace architecture defined!" >&2
|
||||||
echo "Falling back to using your current userspace instead!" >&2
|
echo "Falling back to the current host architecture ($debarch)." >&2
|
||||||
echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
|
echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
esac
|
|
||||||
if [ -n "$KBUILD_DEBARCH" ] ; then
|
|
||||||
debarch="$KBUILD_DEBARCH"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ def main():
|
||||||
tree = tree.getParent(caller)
|
tree = tree.getParent(caller)
|
||||||
tree = tree.calls(callee, calltime)
|
tree = tree.calls(callee, calltime)
|
||||||
|
|
||||||
print CallTree.ROOT
|
print(CallTree.ROOT)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -4,7 +4,7 @@ obj-y = audit.o common.o condition.o domain.o environ.o file.o gc.o group.o load
|
||||||
targets += builtin-policy.h
|
targets += builtin-policy.h
|
||||||
define do_policy
|
define do_policy
|
||||||
echo "static char tomoyo_builtin_$(1)[] __initdata ="; \
|
echo "static char tomoyo_builtin_$(1)[] __initdata ="; \
|
||||||
$(objtree)/scripts/basic/bin2c <$(firstword $(wildcard $(obj)/policy/$(1).conf $(srctree)/$(src)/policy/$(1).conf.default) /dev/null); \
|
$(objtree)/scripts/bin2c <$(firstword $(wildcard $(obj)/policy/$(1).conf $(srctree)/$(src)/policy/$(1).conf.default) /dev/null); \
|
||||||
echo ";"
|
echo ";"
|
||||||
endef
|
endef
|
||||||
quiet_cmd_policy = POLICY $@
|
quiet_cmd_policy = POLICY $@
|
||||||
|
|
|
@ -98,4 +98,4 @@ cxx_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(CXXFLAGS) -D"BUILD_STR(s)=\#s" $(CXX
|
||||||
###
|
###
|
||||||
## HOSTCC C flags
|
## HOSTCC C flags
|
||||||
|
|
||||||
host_c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(HOSTCFLAGS) -D"BUILD_STR(s)=\#s" $(HOSTCFLAGS_$(basetarget).o) $(HOSTCFLAGS_$(obj))
|
host_c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(KBUILD_HOSTCFLAGS) -D"BUILD_STR(s)=\#s" $(HOSTCFLAGS_$(basetarget).o) $(HOSTCFLAGS_$(obj))
|
||||||
|
|
|
@ -43,7 +43,7 @@ $(OUTPUT)fixdep-in.o: FORCE
|
||||||
$(Q)$(MAKE) $(build)=fixdep
|
$(Q)$(MAKE) $(build)=fixdep
|
||||||
|
|
||||||
$(OUTPUT)fixdep: $(OUTPUT)fixdep-in.o
|
$(OUTPUT)fixdep: $(OUTPUT)fixdep-in.o
|
||||||
$(QUIET_LINK)$(HOSTCC) $(HOSTLDFLAGS) -o $@ $<
|
$(QUIET_LINK)$(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ $<
|
||||||
|
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,8 @@ INCLUDES := -I$(srctree)/tools/include \
|
||||||
-I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \
|
-I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \
|
||||||
-I$(srctree)/tools/objtool/arch/$(ARCH)/include
|
-I$(srctree)/tools/objtool/arch/$(ARCH)/include
|
||||||
WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed
|
WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed
|
||||||
CFLAGS += -Werror $(WARNINGS) $(HOSTCFLAGS) -g $(INCLUDES)
|
CFLAGS += -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES)
|
||||||
LDFLAGS += -lelf $(LIBSUBCMD) $(HOSTLDFLAGS)
|
LDFLAGS += -lelf $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS)
|
||||||
|
|
||||||
# Allow old libelf to be used:
|
# Allow old libelf to be used:
|
||||||
elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr)
|
elfshdr := $(shell echo '$(pound)include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr)
|
||||||
|
|
Loading…
Reference in New Issue