Merge tag 'kbuild-fixes-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild fixes from Masahiro Yamada: - Move -Wcast-align to W=3, which tends to be false-positive and there is no tree-wide solution. - Pass -fmacro-prefix-map to KBUILD_CPPFLAGS because it is a preprocessor option and makes sense for .S files as well. - Disable -gdwarf-2 for Clang's integrated assembler to avoid warnings. - Disable --orphan-handling=warn for LLD 10.0.1 to avoid warnings. - Fix undesirable line breaks in *.mod files. * tag 'kbuild-fixes-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: avoid split lines in .mod files kbuild: Disable CONFIG_LD_ORPHAN_WARN for ld.lld 10.0.1 kbuild: Hoist '--orphan-handling' into Kconfig Kbuild: do not emit debug info for assembly with LLVM_IAS=1 kbuild: use -fmacro-prefix-map for .S sources Makefile.extrawarn: move -Wcast-align to W=3
This commit is contained in:
@@ -252,6 +252,9 @@ objtool_dep = $(objtool_obj) \
|
||||
ifdef CONFIG_TRIM_UNUSED_KSYMS
|
||||
cmd_gen_ksymdeps = \
|
||||
$(CONFIG_SHELL) $(srctree)/scripts/gen_ksymdeps.sh $@ >> $(dot-target).cmd
|
||||
|
||||
# List module undefined symbols
|
||||
undefined_syms = $(NM) $< | $(AWK) '$$1 == "U" { printf("%s%s", x++ ? " " : "", $$2) }';
|
||||
endif
|
||||
|
||||
define rule_cc_o_c
|
||||
@@ -271,13 +274,6 @@ define rule_as_o_S
|
||||
$(call cmd,modversions_S)
|
||||
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
|
||||
else
|
||||
cmd_undef_syms = echo
|
||||
endif
|
||||
|
||||
# Built-in and composite module parts
|
||||
$(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
|
||||
$(call if_changed_rule,cc_o_c)
|
||||
@@ -285,7 +281,7 @@ $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
|
||||
|
||||
cmd_mod = { \
|
||||
echo $(if $($*-objs)$($*-y)$($*-m), $(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), $(@:.mod=.o)); \
|
||||
$(cmd_undef_syms); \
|
||||
$(undefined_syms) echo; \
|
||||
} > $@
|
||||
|
||||
$(obj)/%.mod: $(obj)/%.o FORCE
|
||||
|
@@ -60,7 +60,6 @@ endif
|
||||
#
|
||||
ifneq ($(findstring 2, $(KBUILD_EXTRA_WARN)),)
|
||||
|
||||
KBUILD_CFLAGS += -Wcast-align
|
||||
KBUILD_CFLAGS += -Wdisabled-optimization
|
||||
KBUILD_CFLAGS += -Wnested-externs
|
||||
KBUILD_CFLAGS += -Wshadow
|
||||
@@ -80,6 +79,7 @@ endif
|
||||
ifneq ($(findstring 3, $(KBUILD_EXTRA_WARN)),)
|
||||
|
||||
KBUILD_CFLAGS += -Wbad-function-cast
|
||||
KBUILD_CFLAGS += -Wcast-align
|
||||
KBUILD_CFLAGS += -Wcast-qual
|
||||
KBUILD_CFLAGS += -Wconversion
|
||||
KBUILD_CFLAGS += -Wpacked
|
||||
|
20
scripts/lld-version.sh
Executable file
20
scripts/lld-version.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Usage: $ ./scripts/lld-version.sh ld.lld
|
||||
#
|
||||
# Print the linker version of `ld.lld' in a 5 or 6-digit form
|
||||
# such as `100001' for ld.lld 10.0.1 etc.
|
||||
|
||||
linker_string="$($* --version)"
|
||||
|
||||
if ! ( echo $linker_string | grep -q LLD ); then
|
||||
echo 0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION=$(echo $linker_string | cut -d ' ' -f 2)
|
||||
MAJOR=$(echo $VERSION | cut -d . -f 1)
|
||||
MINOR=$(echo $VERSION | cut -d . -f 2)
|
||||
PATCHLEVEL=$(echo $VERSION | cut -d . -f 3)
|
||||
printf "%d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL
|
Reference in New Issue
Block a user