mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
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 ...
This commit is contained in:
commit
e026bcc561
51 changed files with 373 additions and 169 deletions
1
scripts/.gitignore
vendored
1
scripts/.gitignore
vendored
|
@ -1,6 +1,7 @@
|
|||
#
|
||||
# Generated files
|
||||
#
|
||||
bin2c
|
||||
conmakehash
|
||||
kallsyms
|
||||
pnmtologo
|
||||
|
|
|
@ -56,7 +56,7 @@ kecho := $($(quiet)kecho)
|
|||
define filechk
|
||||
$(Q)set -e; \
|
||||
mkdir -p $(dir $@); \
|
||||
$(filechk_$(1)) < $< > $@.tmp; \
|
||||
$(filechk_$(1)) > $@.tmp; \
|
||||
if [ -r $@ ] && cmp -s $@ $@.tmp; then \
|
||||
rm -f $@.tmp; \
|
||||
else \
|
||||
|
@ -126,7 +126,7 @@ cc-option = $(call __cc-option, $(CC),\
|
|||
# hostcc-option
|
||||
# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
|
||||
hostcc-option = $(call __cc-option, $(HOSTCC),\
|
||||
$(HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
||||
$(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS),$(1),$(2))
|
||||
|
||||
# cc-option-yn
|
||||
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
HOST_EXTRACFLAGS += -I$(srctree)/tools/include
|
||||
|
||||
hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c
|
||||
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
|
||||
hostprogs-$(CONFIG_LOGO) += pnmtologo
|
||||
hostprogs-$(CONFIG_VT) += conmakehash
|
||||
|
@ -22,8 +23,8 @@ hostprogs-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert
|
|||
|
||||
HOSTCFLAGS_sortextable.o = -I$(srctree)/tools/include
|
||||
HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include
|
||||
HOSTLOADLIBES_sign-file = -lcrypto
|
||||
HOSTLOADLIBES_extract-cert = -lcrypto
|
||||
HOSTLDLIBS_sign-file = -lcrypto
|
||||
HOSTLDLIBS_extract-cert = -lcrypto
|
||||
|
||||
always := $(hostprogs-y) $(hostprogs-m)
|
||||
|
||||
|
|
|
@ -53,13 +53,6 @@ endif
|
|||
|
||||
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
|
||||
ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
|
||||
include scripts/Makefile.host
|
||||
|
|
|
@ -38,7 +38,6 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
|
|||
|
||||
__clean-files := $(extra-y) $(extra-m) $(extra-) \
|
||||
$(always) $(targets) $(clean-files) \
|
||||
$(host-progs) \
|
||||
$(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
|
||||
$(hostlibs-y) $(hostlibs-m) $(hostlibs-) \
|
||||
$(hostcxxlibs-y) $(hostcxxlibs-m)
|
||||
|
|
|
@ -62,9 +62,9 @@ host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
|
|||
#####
|
||||
# Handle options to gcc. Support building with separate output directory
|
||||
|
||||
_hostc_flags = $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
||||
_hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
|
||||
$(HOSTCFLAGS_$(basetarget).o)
|
||||
_hostcxx_flags = $(HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
||||
_hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
|
||||
$(HOSTCXXFLAGS_$(basetarget).o)
|
||||
|
||||
ifeq ($(KBUILD_SRC),)
|
||||
|
@ -84,17 +84,17 @@ hostcxx_flags = -Wp,-MD,$(depfile) $(__hostcxx_flags)
|
|||
# Create executable from a single .c file
|
||||
# host-csingle -> Executable
|
||||
quiet_cmd_host-csingle = HOSTCC $@
|
||||
cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(HOSTLDFLAGS) -o $@ $< \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
|
||||
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-csingle): $(obj)/%: $(src)/%.c FORCE
|
||||
$(call if_changed_dep,host-csingle)
|
||||
|
||||
# Link an executable based on list of .o files, all plain c
|
||||
# host-cmulti -> executable
|
||||
quiet_cmd_host-cmulti = HOSTLD $@
|
||||
cmd_host-cmulti = $(HOSTCC) $(HOSTLDFLAGS) -o $@ \
|
||||
cmd_host-cmulti = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||
$(addprefix $(obj)/,$($(@F)-objs)) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cmulti): FORCE
|
||||
$(call if_changed,host-cmulti)
|
||||
$(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
|
||||
# host-cxxmulti -> executable
|
||||
quiet_cmd_host-cxxmulti = HOSTLD $@
|
||||
cmd_host-cxxmulti = $(HOSTCXX) $(HOSTLDFLAGS) -o $@ \
|
||||
cmd_host-cxxmulti = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
|
||||
$(foreach o,objs cxxobjs,\
|
||||
$(addprefix $(obj)/,$($(@F)-$(o)))) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cxxmulti): FORCE
|
||||
$(call if_changed,host-cxxmulti)
|
||||
$(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
|
||||
# *.o -> .so shared library (host-cshlib)
|
||||
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))) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cshlib): FORCE
|
||||
$(call if_changed,host-cshlib)
|
||||
$(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
|
||||
# *.o -> .so shared library (host-cxxshlib)
|
||||
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))) \
|
||||
$(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
|
||||
$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
|
||||
$(host-cxxshlib): FORCE
|
||||
$(call if_changed,host-cxxshlib)
|
||||
$(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)
|
||||
|
||||
ld_flags = $(LDFLAGS) $(ldflags-y)
|
||||
ld_flags = $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
|
||||
|
||||
DTC_INCLUDE := $(srctree)/scripts/dtc/include-prefixes
|
||||
|
||||
|
@ -225,8 +225,7 @@ $(obj)/%: $(src)/%_shipped
|
|||
# ---------------------------------------------------------------------------
|
||||
|
||||
quiet_cmd_ld = LD $@
|
||||
cmd_ld = $(LD) $(LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F)) \
|
||||
$(filter-out FORCE,$^) -o $@
|
||||
cmd_ld = $(LD) $(ld_flags) $(filter-out FORCE,$^) -o $@
|
||||
|
||||
# Objcopy
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -416,7 +415,7 @@ define filechk_offsets
|
|||
echo " * This file was generated by Kbuild"; \
|
||||
echo " */"; \
|
||||
echo ""; \
|
||||
sed -ne $(sed-offsets); \
|
||||
sed -ne $(sed-offsets) < $<; \
|
||||
echo ""; \
|
||||
echo "#endif" )
|
||||
endef
|
||||
|
|
1
scripts/basic/.gitignore
vendored
1
scripts/basic/.gitignore
vendored
|
@ -1,2 +1 @@
|
|||
fixdep
|
||||
bin2c
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
# fixdep: Used to generate dependency information during build process
|
||||
|
||||
hostprogs-y := fixdep
|
||||
hostprogs-$(CONFIG_BUILD_BIN2C) += bin2c
|
||||
always := $(hostprogs-y)
|
||||
|
||||
# fixdep is needed to compile other host programs
|
||||
|
|
|
@ -128,9 +128,10 @@ run_cmd_parmap() {
|
|||
fi
|
||||
echo $@ >>$DEBUG_FILE
|
||||
$@ 2>>$DEBUG_FILE
|
||||
if [[ $? -ne 0 ]]; then
|
||||
err=$?
|
||||
if [[ $err -ne 0 ]]; then
|
||||
echo "coccicheck failed"
|
||||
exit $?
|
||||
exit $err
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
129
scripts/coccinelle/api/atomic_as_refcounter.cocci
Normal file
129
scripts/coccinelle/api/atomic_as_refcounter.cocci
Normal file
|
@ -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
|
||||
//# A common source of false positives is when the argument performs a side
|
||||
//# effect.
|
||||
//# A common source of false positives is when the expression, or
|
||||
//# another expresssion in the same && or || operation, performs a
|
||||
//# side effect.
|
||||
///
|
||||
// Confidence: Moderate
|
||||
// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
|
||||
|
@ -20,20 +21,37 @@ position p;
|
|||
@@
|
||||
|
||||
(
|
||||
* E@p
|
||||
|| ... || E
|
||||
E@p || ... || E
|
||||
|
|
||||
* E@p
|
||||
&& ... && E
|
||||
E@p && ... && 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;
|
||||
@@
|
||||
|
||||
cocci.print_main("duplicated argument to && or ||",p)
|
||||
|
||||
@script:python depends on report@
|
||||
@script:python depends on report && !bad@
|
||||
p << r.p;
|
||||
@@
|
||||
|
||||
|
|
|
@ -10,10 +10,16 @@ fi
|
|||
DEPMOD=$1
|
||||
KERNELRELEASE=$2
|
||||
|
||||
if ! test -r System.map -a -x "$DEPMOD"; then
|
||||
if ! test -r System.map ; then
|
||||
exit 0
|
||||
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
|
||||
# numbers, so we cheat with a symlink here
|
||||
depmod_hack_needed=true
|
||||
|
|
|
@ -169,7 +169,7 @@ HOSTCFLAGS_zconf.tab.o := -I$(src)
|
|||
hostprogs-y += nconf
|
||||
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.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
|
||||
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), \
|
||||
$(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags)))
|
||||
|
||||
|
@ -191,7 +191,7 @@ hostprogs-y += qconf
|
|||
qconf-cxxobjs := qconf.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)
|
||||
|
||||
$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc
|
||||
|
@ -206,7 +206,7 @@ $(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg
|
|||
hostprogs-y += gconf
|
||||
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)
|
||||
|
||||
$(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)
|
||||
{
|
||||
buf_printf(b, "#include <linux/build-salt.h>\n");
|
||||
buf_printf(b, "#include <linux/module.h>\n");
|
||||
buf_printf(b, "#include <linux/vermagic.h>\n");
|
||||
buf_printf(b, "#include <linux/compiler.h>\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(name, KBUILD_MODNAME);\n");
|
||||
buf_printf(b, "\n");
|
||||
|
|
|
@ -84,10 +84,6 @@ case "${ARCH}" in
|
|||
[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${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)
|
||||
if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then
|
||||
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}"
|
||||
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}"
|
||||
echo "" >&2
|
||||
|
|
|
@ -6,49 +6,81 @@
|
|||
|
||||
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() {
|
||||
if [ -n "$KBUILD_DEBARCH" ] ; then
|
||||
debarch="$KBUILD_DEBARCH"
|
||||
return
|
||||
fi
|
||||
|
||||
# Attempt to find the correct Debian architecture
|
||||
case "$UTS_MACHINE" in
|
||||
i386|ia64|alpha)
|
||||
i386|ia64|alpha|m68k|riscv*)
|
||||
debarch="$UTS_MACHINE" ;;
|
||||
x86_64)
|
||||
debarch=amd64 ;;
|
||||
sparc*)
|
||||
debarch=sparc ;;
|
||||
debarch=sparc$(if_enabled_echo 64BIT 64) ;;
|
||||
s390*)
|
||||
debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;;
|
||||
debarch=s390x ;;
|
||||
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*)
|
||||
debarch=hppa ;;
|
||||
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)
|
||||
debarch=arm64 ;;
|
||||
arm*)
|
||||
if grep -q CONFIG_AEABI=y $KCONFIG_CONFIG; then
|
||||
if grep -q CONFIG_VFP=y $KCONFIG_CONFIG; then
|
||||
debarch=armhf
|
||||
else
|
||||
debarch=armel
|
||||
fi
|
||||
if is_enabled AEABI; then
|
||||
debarch=arm$(if_enabled_echo VFP hf el)
|
||||
else
|
||||
debarch=arm
|
||||
debarch=arm
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
debarch=$(dpkg --print-architecture)
|
||||
openrisc)
|
||||
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 "** ** ** WARNING ** ** **" >&2
|
||||
echo "" >&2
|
||||
echo "Your architecture doesn't have its equivalent" >&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 "" >&2
|
||||
esac
|
||||
if [ -n "$KBUILD_DEBARCH" ] ; then
|
||||
debarch="$KBUILD_DEBARCH"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ def main():
|
|||
tree = tree.getParent(caller)
|
||||
tree = tree.calls(callee, calltime)
|
||||
|
||||
print CallTree.ROOT
|
||||
print(CallTree.ROOT)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue