提交 0f979d81 编写于 作者: L Linus Torvalds

Merge tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull more Kbuild updates from Masahiro Yamada:

 - Convert sh and sparc to use generic shell scripts to generate the
   syscall headers

 - refactor .gitignore files

 - Update kernel/config_data.gz only when the content of the .config
   is really changed, which avoids the unneeded re-link of vmlinux

 - move "remove stale files" workarounds to scripts/remove-stale-files

 - suppress unused-but-set-variable warnings by default for Clang
   as well

 - fix locale setting LANG=C to LC_ALL=C

 - improve 'make distclean'

 - always keep intermediate objects from scripts/link-vmlinux.sh

 - move IF_ENABLED out of <linux/kconfig.h> to make it self-contained

 - misc cleanups

* tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
  linux/kconfig.h: replace IF_ENABLED() with PTR_IF() in <linux/kernel.h>
  kbuild: Don't remove link-vmlinux temporary files on exit/signal
  kbuild: remove the unneeded comments for external module builds
  kbuild: make distclean remove tag files in sub-directories
  kbuild: make distclean work against $(objtree) instead of $(srctree)
  kbuild: refactor modname-multi by using suffix-search
  kbuild: refactor fdtoverlay rule
  kbuild: parameterize the .o part of suffix-search
  arch: use cross_compiling to check whether it is a cross build or not
  kbuild: remove ARCH=sh64 support from top Makefile
  .gitignore: prefix local generated files with a slash
  kbuild: replace LANG=C with LC_ALL=C
  Makefile: Move -Wno-unused-but-set-variable out of GCC only block
  kbuild: add a script to remove stale generated files
  kbuild: update config_data.gz only when the content of .config is changed
  .gitignore: ignore only top-level modules.builtin
  .gitignore: move tags and TAGS close to other tag files
  kernel/.gitgnore: remove stale timeconst.h and hz.bc
  usr/include: refactor .gitignore
  genksyms: fix stale comment
  ...
...@@ -48,14 +48,11 @@ ...@@ -48,14 +48,11 @@
*.xz *.xz
*.zst *.zst
Module.symvers Module.symvers
modules.builtin
modules.order modules.order
# #
# Top-level generic files # Top-level generic files
# #
/tags
/TAGS
/linux /linux
/modules-only.symvers /modules-only.symvers
/vmlinux /vmlinux
...@@ -66,6 +63,7 @@ modules.order ...@@ -66,6 +63,7 @@ modules.order
/vmlinuz /vmlinuz
/System.map /System.map
/Module.markers /Module.markers
/modules.builtin
/modules.builtin.modinfo /modules.builtin.modinfo
/modules.nsdeps /modules.nsdeps
...@@ -114,6 +112,10 @@ patches-* ...@@ -114,6 +112,10 @@ patches-*
patches patches
series series
# ctags files
tags
TAGS
# cscope files # cscope files
cscope.* cscope.*
ncscope.* ncscope.*
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
*.example.dts *.example.dts
processed-schema*.yaml /processed-schema*.yaml
processed-schema*.json /processed-schema*.json
...@@ -399,11 +399,6 @@ ifeq ($(ARCH),sparc64) ...@@ -399,11 +399,6 @@ ifeq ($(ARCH),sparc64)
SRCARCH := sparc SRCARCH := sparc
endif endif
# Additional ARCH settings for sh
ifeq ($(ARCH),sh64)
SRCARCH := sh
endif
export cross_compiling := export cross_compiling :=
ifneq ($(SRCARCH),$(SUBARCH)) ifneq ($(SRCARCH),$(SUBARCH))
cross_compiling := 1 cross_compiling := 1
...@@ -792,16 +787,16 @@ KBUILD_CFLAGS += -Wno-gnu ...@@ -792,16 +787,16 @@ KBUILD_CFLAGS += -Wno-gnu
KBUILD_CFLAGS += -mno-global-merge KBUILD_CFLAGS += -mno-global-merge
else else
# These warnings generated too much noise in a regular build.
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += -Wno-unused-but-set-variable
# Warn about unmarked fall-throughs in switch statement. # Warn about unmarked fall-throughs in switch statement.
# Disabled for clang while comment to attribute conversion happens and # Disabled for clang while comment to attribute conversion happens and
# https://github.com/ClangBuiltLinux/linux/issues/636 is discussed. # https://github.com/ClangBuiltLinux/linux/issues/636 is discussed.
KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,) KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,)
endif endif
# These warnings generated too much noise in a regular build.
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
ifdef CONFIG_FRAME_POINTER ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
...@@ -1225,7 +1220,7 @@ PHONY += prepare archprepare ...@@ -1225,7 +1220,7 @@ PHONY += prepare archprepare
archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \ archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \
asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h \ asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h \
include/generated/autoconf.h include/generated/autoconf.h remove-stale-files
prepare0: archprepare prepare0: archprepare
$(Q)$(MAKE) $(build)=scripts/mod $(Q)$(MAKE) $(build)=scripts/mod
...@@ -1234,6 +1229,10 @@ prepare0: archprepare ...@@ -1234,6 +1229,10 @@ prepare0: archprepare
# All the preparing.. # All the preparing..
prepare: prepare0 prepare-objtool prepare-resolve_btfids prepare: prepare0 prepare-objtool prepare-resolve_btfids
PHONY += remove-stale-files
remove-stale-files:
$(Q)$(srctree)/scripts/remove-stale-files
# Support for using generic headers in asm-generic # Support for using generic headers in asm-generic
asm-generic := -f $(srctree)/scripts/Makefile.asm-generic obj asm-generic := -f $(srctree)/scripts/Makefile.asm-generic obj
...@@ -1512,9 +1511,6 @@ MRPROPER_FILES += include/config include/generated \ ...@@ -1512,9 +1511,6 @@ MRPROPER_FILES += include/config include/generated \
vmlinux-gdb.py \ vmlinux-gdb.py \
*.spec *.spec
# Directories & files removed with 'make distclean'
DISTCLEAN_FILES += tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS
# clean - Delete most, but leave enough to build external modules # clean - Delete most, but leave enough to build external modules
# #
clean: rm-files := $(CLEAN_FILES) clean: rm-files := $(CLEAN_FILES)
...@@ -1541,16 +1537,14 @@ mrproper: clean $(mrproper-dirs) ...@@ -1541,16 +1537,14 @@ mrproper: clean $(mrproper-dirs)
# distclean # distclean
# #
distclean: rm-files := $(wildcard $(DISTCLEAN_FILES))
PHONY += distclean PHONY += distclean
distclean: mrproper distclean: mrproper
$(call cmd,rmfiles) @find . $(RCS_FIND_IGNORE) \
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \ \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '*%' \ -o -name '*.bak' -o -name '#*#' -o -name '*%' \
-o -name 'core' \) \ -o -name 'core' -o -name tags -o -name TAGS -o -name 'cscope*' \
-o -name GPATH -o -name GRTAGS -o -name GSYMS -o -name GTAGS \) \
-type f -print | xargs rm -f -type f -print | xargs rm -f
...@@ -1717,17 +1711,7 @@ else # KBUILD_EXTMOD ...@@ -1717,17 +1711,7 @@ else # KBUILD_EXTMOD
# When building external modules the kernel used as basis is considered # When building external modules the kernel used as basis is considered
# read-only, and no consistency checks are made and the make # read-only, and no consistency checks are made and the make
# system is not used on the basis kernel. If updates are required # system is not used on the basis kernel. If updates are required
# in the basis kernel ordinary make commands (without M=...) must # in the basis kernel ordinary make commands (without M=...) must be used.
# be used.
#
# The following are the only valid targets when building external
# modules.
# make M=dir clean Delete all automatically generated files
# make M=dir modules Make all modules in specified dir
# make M=dir Same as 'make M=dir modules'
# make M=dir modules_install
# Install the modules built in the module directory
# Assumes install directory is already created
# We are always building only modules. # We are always building only modules.
KBUILD_BUILTIN := KBUILD_BUILTIN :=
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
i386 /i386/
x86_64 /x86_64/
...@@ -96,13 +96,6 @@ endif ...@@ -96,13 +96,6 @@ endif
$(foreach o, $(libfdt_objs) atags_to_fdt.o fdt_check_mem_start.o, \ $(foreach o, $(libfdt_objs) atags_to_fdt.o fdt_check_mem_start.o, \
$(eval CFLAGS_$(o) := -I $(srctree)/scripts/dtc/libfdt -fno-stack-protector)) $(eval CFLAGS_$(o) := -I $(srctree)/scripts/dtc/libfdt -fno-stack-protector))
# These were previously generated C files. When you are building the kernel
# with O=, make sure to remove the stale files in the output tree. Otherwise,
# the build system wrongly compiles the stale ones.
ifdef building_out_of_srctree
$(shell rm -f $(addprefix $(obj)/, fdt_rw.c fdt_ro.c fdt_wip.c fdt.c))
endif
targets := vmlinux vmlinux.lds piggy_data piggy.o \ targets := vmlinux vmlinux.lds piggy_data piggy.o \
lib1funcs.o ashldi3.o bswapsdi2.o \ lib1funcs.o ashldi3.o bswapsdi2.o \
head.o $(OBJS) head.o $(OBJS)
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
KBUILD_DEFCONFIG := multi_defconfig KBUILD_DEFCONFIG := multi_defconfig
ifneq ($(SUBARCH),$(ARCH)) ifdef cross_compiling
ifeq ($(CROSS_COMPILE),) ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := $(call cc-cross-prefix, \ CROSS_COMPILE := $(call cc-cross-prefix, \
m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-) m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-)
......
...@@ -50,7 +50,7 @@ tool-archpref = $(64bit-tool-archpref) ...@@ -50,7 +50,7 @@ tool-archpref = $(64bit-tool-archpref)
UTS_MACHINE := mips64 UTS_MACHINE := mips64
endif endif
ifneq ($(SUBARCH),$(ARCH)) ifdef cross_compiling
ifeq ($(CROSS_COMPILE),) ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux- $(tool-archpref)-linux-gnu- $(tool-archpref)-unknown-linux-gnu-) CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux- $(tool-archpref)-linux-gnu- $(tool-archpref)-unknown-linux-gnu-)
endif endif
......
...@@ -41,7 +41,7 @@ endif ...@@ -41,7 +41,7 @@ endif
export LD_BFD export LD_BFD
ifneq ($(SUBARCH),$(UTS_MACHINE)) ifdef cross_compiling
ifeq ($(CROSS_COMPILE),) ifeq ($(CROSS_COMPILE),)
CC_SUFFIXES = linux linux-gnu unknown-linux-gnu CC_SUFFIXES = linux linux-gnu unknown-linux-gnu
CROSS_COMPILE := $(call cc-cross-prefix, \ CROSS_COMPILE := $(call cc-cross-prefix, \
......
...@@ -191,7 +191,7 @@ if [ -z "$kernel" ]; then ...@@ -191,7 +191,7 @@ if [ -z "$kernel" ]; then
kernel=vmlinux kernel=vmlinux
fi fi
LANG=C elfformat="`${CROSS}objdump -p "$kernel" | grep 'file format' | awk '{print $4}'`" LC_ALL=C elfformat="`${CROSS}objdump -p "$kernel" | grep 'file format' | awk '{print $4}'`"
case "$elfformat" in case "$elfformat" in
elf64-powerpcle) format=elf64lppc ;; elf64-powerpcle) format=elf64lppc ;;
elf64-powerpc) format=elf32ppc ;; elf64-powerpc) format=elf32ppc ;;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
# License. See the file "COPYING" in the main directory of this archive # License. See the file "COPYING" in the main directory of this archive
# for more details. # for more details.
# #
ifneq ($(SUBARCH),$(ARCH)) ifdef cross_compiling
ifeq ($(CROSS_COMPILE),) ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := $(call cc-cross-prefix, sh-linux- sh-linux-gnu- sh-unknown-linux-gnu-) CROSS_COMPILE := $(call cc-cross-prefix, sh-linux- sh-linux-gnu- sh-unknown-linux-gnu-)
endif endif
......
...@@ -6,20 +6,14 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \ ...@@ -6,20 +6,14 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
syscall := $(src)/syscall.tbl syscall := $(src)/syscall.tbl
syshdr := $(srctree)/$(src)/syscallhdr.sh syshdr := $(srctree)/scripts/syscallhdr.sh
systbl := $(srctree)/$(src)/syscalltbl.sh systbl := $(srctree)/scripts/syscalltbl.sh
quiet_cmd_syshdr = SYSHDR $@ quiet_cmd_syshdr = SYSHDR $@
cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --emit-nr $< $@
'$(syshdr_abis_$(basetarget))' \
'$(syshdr_pfx_$(basetarget))' \
'$(syshdr_offset_$(basetarget))'
quiet_cmd_systbl = SYSTBL $@ quiet_cmd_systbl = SYSTBL $@
cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \ cmd_systbl = $(CONFIG_SHELL) $(systbl) $< $@
'$(systbl_abis_$(basetarget))' \
'$(systbl_abi_$(basetarget))' \
'$(systbl_offset_$(basetarget))'
$(uapi)/unistd_32.h: $(syscall) $(syshdr) FORCE $(uapi)/unistd_32.h: $(syscall) $(syshdr) FORCE
$(call if_changed,syshdr) $(call if_changed,syshdr)
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
in="$1"
out="$2"
my_abis=`echo "($3)" | tr ',' '|'`
prefix="$4"
offset="$5"
fileguard=_UAPI_ASM_SH_`basename "$out" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
printf "#ifndef %s\n" "${fileguard}"
printf "#define %s\n" "${fileguard}"
printf "\n"
nxt=0
while read nr abi name entry ; do
if [ -z "$offset" ]; then
printf "#define __NR_%s%s\t%s\n" \
"${prefix}" "${name}" "${nr}"
else
printf "#define __NR_%s%s\t(%s + %s)\n" \
"${prefix}" "${name}" "${offset}" "${nr}"
fi
nxt=$((nr+1))
done
printf "\n"
printf "#ifdef __KERNEL__\n"
printf "#define __NR_syscalls\t%s\n" "${nxt}"
printf "#endif\n"
printf "\n"
printf "#endif /* %s */\n" "${fileguard}"
) > "$out"
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
in="$1"
out="$2"
my_abis=`echo "($3)" | tr ',' '|'`
my_abi="$4"
offset="$5"
emit() {
t_nxt="$1"
t_nr="$2"
t_entry="$3"
while [ $t_nxt -lt $t_nr ]; do
printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}"
t_nxt=$((t_nxt+1))
done
printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}"
}
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
nxt=0
if [ -z "$offset" ]; then
offset=0
fi
while read nr abi name entry ; do
emit $((nxt+offset)) $((nr+offset)) $entry
nxt=$((nr+1))
done
) > "$out"
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
generated-y += syscall_table_32.h generated-y += syscall_table_32.h
generated-y += syscall_table_64.h generated-y += syscall_table_64.h
generated-y += syscall_table_c32.h
generic-y += export.h generic-y += export.h
generic-y += kvm_para.h generic-y += kvm_para.h
generic-y += mcs_spinlock.h generic-y += mcs_spinlock.h
...@@ -6,46 +6,34 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \ ...@@ -6,46 +6,34 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
syscall := $(src)/syscall.tbl syscall := $(src)/syscall.tbl
syshdr := $(srctree)/$(src)/syscallhdr.sh syshdr := $(srctree)/scripts/syscallhdr.sh
systbl := $(srctree)/$(src)/syscalltbl.sh systbl := $(srctree)/scripts/syscalltbl.sh
quiet_cmd_syshdr = SYSHDR $@ quiet_cmd_syshdr = SYSHDR $@
cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ cmd_syshdr = $(CONFIG_SHELL) $(syshdr) --emit-nr --abis $(abis) $< $@
'$(syshdr_abis_$(basetarget))' \
'$(syshdr_pfx_$(basetarget))' \
'$(syshdr_offset_$(basetarget))'
quiet_cmd_systbl = SYSTBL $@ quiet_cmd_systbl = SYSTBL $@
cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \ cmd_systbl = $(CONFIG_SHELL) $(systbl) --abis $(abis) $< $@
'$(systbl_abis_$(basetarget))' \
'$(systbl_abi_$(basetarget))' \
'$(systbl_offset_$(basetarget))'
syshdr_abis_unistd_32 := common,32 $(uapi)/unistd_32.h: abis := common,32
$(uapi)/unistd_32.h: $(syscall) $(syshdr) FORCE $(uapi)/unistd_32.h: $(syscall) $(syshdr) FORCE
$(call if_changed,syshdr) $(call if_changed,syshdr)
syshdr_abis_unistd_64 := common,64 $(uapi)/unistd_64.h: abis := common,64
$(uapi)/unistd_64.h: $(syscall) $(syshdr) FORCE $(uapi)/unistd_64.h: $(syscall) $(syshdr) FORCE
$(call if_changed,syshdr) $(call if_changed,syshdr)
systbl_abis_syscall_table_32 := common,32 $(kapi)/syscall_table_32.h: abis := common,32
$(kapi)/syscall_table_32.h: $(syscall) $(systbl) FORCE $(kapi)/syscall_table_32.h: $(syscall) $(systbl) FORCE
$(call if_changed,systbl) $(call if_changed,systbl)
systbl_abis_syscall_table_64 := common,64 $(kapi)/syscall_table_64.h: abis := common,64
$(kapi)/syscall_table_64.h: $(syscall) $(systbl) FORCE $(kapi)/syscall_table_64.h: $(syscall) $(systbl) FORCE
$(call if_changed,systbl) $(call if_changed,systbl)
systbl_abis_syscall_table_c32 := common,32
systbl_abi_syscall_table_c32 := c32
$(kapi)/syscall_table_c32.h: $(syscall) $(systbl) FORCE
$(call if_changed,systbl)
uapisyshdr-y += unistd_32.h unistd_64.h uapisyshdr-y += unistd_32.h unistd_64.h
kapisyshdr-y += syscall_table_32.h \ kapisyshdr-y += syscall_table_32.h \
syscall_table_64.h \ syscall_table_64.h
syscall_table_c32.h
uapisyshdr-y := $(addprefix $(uapi)/, $(uapisyshdr-y)) uapisyshdr-y := $(addprefix $(uapi)/, $(uapisyshdr-y))
kapisyshdr-y := $(addprefix $(kapi)/, $(kapisyshdr-y)) kapisyshdr-y := $(addprefix $(kapi)/, $(kapisyshdr-y))
......
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
in="$1"
out="$2"
my_abis=`echo "($3)" | tr ',' '|'`
prefix="$4"
offset="$5"
fileguard=_UAPI_ASM_SPARC_`basename "$out" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
printf "#ifndef %s\n" "${fileguard}"
printf "#define %s\n" "${fileguard}"
printf "\n"
nxt=0
while read nr abi name entry compat ; do
if [ -z "$offset" ]; then
printf "#define __NR_%s%s\t%s\n" \
"${prefix}" "${name}" "${nr}"
else
printf "#define __NR_%s%s\t(%s + %s)\n" \
"${prefix}" "${name}" "${offset}" "${nr}"
fi
nxt=$((nr+1))
done
printf "\n"
printf "#ifdef __KERNEL__\n"
printf "#define __NR_syscalls\t%s\n" "${nxt}"
printf "#endif\n"
printf "\n"
printf "#endif /* %s */\n" "${fileguard}"
) > "$out"
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
in="$1"
out="$2"
my_abis=`echo "($3)" | tr ',' '|'`
my_abi="$4"
offset="$5"
emit() {
t_nxt="$1"
t_nr="$2"
t_entry="$3"
while [ $t_nxt -lt $t_nr ]; do
printf "__SYSCALL(%s, sys_nis_syscall, )\n" "${t_nxt}"
t_nxt=$((t_nxt+1))
done
printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}"
}
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
nxt=0
if [ -z "$offset" ]; then
offset=0
fi
while read nr abi name entry compat ; do
if [ "$my_abi" = "c32" ] && [ ! -z "$compat" ]; then
emit $((nxt+offset)) $((nr+offset)) $compat
else
emit $((nxt+offset)) $((nr+offset)) $entry
fi
nxt=$((nr+1))
done
) > "$out"
...@@ -9,10 +9,10 @@ ...@@ -9,10 +9,10 @@
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
*/ */
#define __SYSCALL(nr, entry, nargs) .long entry #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
#define __SYSCALL(nr, entry) .long entry
.data .data
.align 4 .align 4
.globl sys_call_table .globl sys_call_table
sys_call_table: sys_call_table:
#include <asm/syscall_table_32.h> /* 32-bit native syscalls */ #include <asm/syscall_table_32.h> /* 32-bit native syscalls */
#undef __SYSCALL
...@@ -10,18 +10,20 @@ ...@@ -10,18 +10,20 @@
* Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
*/ */
#define __SYSCALL(nr, entry, nargs) .word entry #define __SYSCALL(nr, entry) .word entry
.text .text
.align 4 .align 4
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
.globl sys_call_table32 .globl sys_call_table32
sys_call_table32: sys_call_table32:
#include <asm/syscall_table_c32.h> /* Compat syscalls */ #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, compat)
#include <asm/syscall_table_32.h> /* Compat syscalls */
#undef __SYSCALL_WITH_COMPAT
#endif /* CONFIG_COMPAT */ #endif /* CONFIG_COMPAT */
.align 4 .align 4
.globl sys_call_table64, sys_call_table .globl sys_call_table64, sys_call_table
sys_call_table64: sys_call_table64:
sys_call_table: sys_call_table:
#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
#include <asm/syscall_table_64.h> /* 64-bit native syscalls */ #include <asm/syscall_table_64.h> /* 64-bit native syscalls */
#undef __SYSCALL
...@@ -19,12 +19,8 @@ variant-y := $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME)) ...@@ -19,12 +19,8 @@ variant-y := $(patsubst "%",%,$(CONFIG_XTENSA_VARIANT_NAME))
VARIANT = $(variant-y) VARIANT = $(variant-y)
export VARIANT export VARIANT
# Test for cross compiling
ifneq ($(VARIANT),) ifneq ($(VARIANT),)
COMPILE_ARCH = $(shell uname -m) ifdef cross_compiling
ifneq ($(COMPILE_ARCH), xtensa)
ifndef CROSS_COMPILE ifndef CROSS_COMPILE
CROSS_COMPILE = xtensa_$(VARIANT)- CROSS_COMPILE = xtensa_$(VARIANT)-
endif endif
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
x509_certificate_list /x509_certificate_list
x509_revocation_list /x509_revocation_list
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
ti-emif-asm-offsets.h /ti-emif-asm-offsets.h
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <linux/gpio/driver.h> #include <linux/gpio/driver.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/kernel.h>
#include <linux/of_device.h> #include <linux/of_device.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
...@@ -3854,6 +3855,8 @@ static int __init ingenic_pinctrl_probe(struct platform_device *pdev) ...@@ -3854,6 +3855,8 @@ static int __init ingenic_pinctrl_probe(struct platform_device *pdev)
return 0; return 0;
} }
#define IF_ENABLED(cfg, ptr) PTR_IF(IS_ENABLED(cfg), (ptr))
static const struct of_device_id ingenic_pinctrl_of_match[] = { static const struct of_device_id ingenic_pinctrl_of_match[] = {
{ {
.compatible = "ingenic,jz4730-pinctrl", .compatible = "ingenic,jz4730-pinctrl",
......
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
conmakehash /conmakehash
consolemap_deftbl.c /consolemap_deftbl.c
defkeymap.c /defkeymap.c
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
mkutf8data /mkutf8data
utf8data.h /utf8data.h
...@@ -70,10 +70,4 @@ ...@@ -70,10 +70,4 @@
*/ */
#define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option)) #define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))
/*
* IF_ENABLED(CONFIG_FOO, ptr) evaluates to (ptr) if CONFIG_FOO is set to 'y'
* or 'm', NULL otherwise.
*/
#define IF_ENABLED(option, ptr) (IS_ENABLED(option) ? (ptr) : NULL)
#endif /* __LINUX_KCONFIG_H */ #endif /* __LINUX_KCONFIG_H */
...@@ -41,6 +41,8 @@ ...@@ -41,6 +41,8 @@
*/ */
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
#define PTR_IF(cond, ptr) ((cond) ? (ptr) : NULL)
#define u64_to_user_ptr(x) ( \ #define u64_to_user_ptr(x) ( \
{ \ { \
typecheck(u64, (x)); \ typecheck(u64, (x)); \
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
kheaders.md5 /config_data
timeconst.h /kheaders.md5
hz.bc
...@@ -142,10 +142,15 @@ obj-$(CONFIG_SCF_TORTURE_TEST) += scftorture.o ...@@ -142,10 +142,15 @@ obj-$(CONFIG_SCF_TORTURE_TEST) += scftorture.o
$(obj)/configs.o: $(obj)/config_data.gz $(obj)/configs.o: $(obj)/config_data.gz
targets += config_data.gz targets += config_data config_data.gz
$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE $(obj)/config_data.gz: $(obj)/config_data FORCE
$(call if_changed,gzip) $(call if_changed,gzip)
filechk_cat = cat $<
$(obj)/config_data: $(KCONFIG_CONFIG) FORCE
$(call filechk,cat)
$(obj)/kheaders.o: $(obj)/kheaders_data.tar.xz $(obj)/kheaders.o: $(obj)/kheaders_data.tar.xz
quiet_cmd_genikh = CHK $(obj)/kheaders_data.tar.xz quiet_cmd_genikh = CHK $(obj)/kheaders_data.tar.xz
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
gen_crc32table /crc32table.h
gen_crc64table /crc64table.h
crc32table.h /gen_crc32table
crc64table.h /gen_crc64table
oid_registry_data.c /oid_registry_data.c
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
cfag12864b-example /cfag12864b-example
binderfs_example # SPDX-License-Identifier: GPL-2.0
/binderfs_example
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
ucon /ucon
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
hid-example /hid-example
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
mei-amt-version /mei-amt-version
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
ne_ioctl_sample /ne_ioctl_sample
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
pidfd-metadata /pidfd-metadata
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
bpf-direct /bpf-direct
bpf-fancy /bpf-fancy
dropper /dropper
user-trap /user-trap
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
hpet_example /hpet_example
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
test-fsmount /test-fsmount
test-statx /test-statx
watch_test # SPDX-License-Identifier: GPL-2.0-only
/watch_test
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
watchdog-simple /watchdog-simple
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
bin2c /asn1_compiler
kallsyms /bin2c
unifdef /extract-cert
recordmcount /insert-sys-cert
sorttable /kallsyms
asn1_compiler
extract-cert
sign-file
insert-sys-cert
/module.lds /module.lds
/recordmcount
/sign-file
/sorttable
/unifdef
...@@ -354,7 +354,7 @@ $(obj)/%.o: $(src)/%.S $(objtool_dep) FORCE ...@@ -354,7 +354,7 @@ $(obj)/%.o: $(src)/%.S $(objtool_dep) FORCE
targets += $(filter-out $(subdir-builtin), $(real-obj-y)) targets += $(filter-out $(subdir-builtin), $(real-obj-y))
targets += $(filter-out $(subdir-modorder), $(real-obj-m)) targets += $(filter-out $(subdir-modorder), $(real-obj-m))
targets += $(lib-y) $(always-y) $(MAKECMDGOALS) targets += $(real-dtb-y) $(lib-y) $(always-y) $(MAKECMDGOALS)
# Linker scripts preprocessor (.lds.S -> .lds) # Linker scripts preprocessor (.lds.S -> .lds)
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
......
...@@ -44,19 +44,22 @@ else ...@@ -44,19 +44,22 @@ else
obj-y := $(filter-out %/, $(obj-y)) obj-y := $(filter-out %/, $(obj-y))
endif endif
# Expand $(foo-objs) $(foo-y) by calling $(call suffix-search,foo.o,-objs -y) # Expand $(foo-objs) $(foo-y) etc. by replacing their individuals
suffix-search = $(strip $(foreach s, $2, $($(1:.o=$s)))) suffix-search = $(strip $(foreach s, $3, $($(1:%$(strip $2)=%$s))))
# List composite targets that are constructed by combining other targets
multi-search = $(sort $(foreach m, $1, $(if $(call suffix-search, $m, $2, $3 -), $m)))
# List primitive targets that are compiled from source files
real-search = $(foreach m, $1, $(if $(call suffix-search, $m, $2, $3 -), $(call suffix-search, $m, $2, $3), $m))
# If $(foo-objs), $(foo-y), $(foo-m), or $(foo-) exists, foo.o is a composite object # If $(foo-objs), $(foo-y), $(foo-m), or $(foo-) exists, foo.o is a composite object
multi-search = $(sort $(foreach m, $1, $(if $(call suffix-search, $m, $2 -), $m))) multi-obj-y := $(call multi-search, $(obj-y), .o, -objs -y)
multi-obj-y := $(call multi-search,$(obj-y),-objs -y) multi-obj-m := $(call multi-search, $(obj-m), .o, -objs -y -m)
multi-obj-m := $(call multi-search,$(obj-m),-objs -y -m)
multi-obj-ym := $(multi-obj-y) $(multi-obj-m) multi-obj-ym := $(multi-obj-y) $(multi-obj-m)
# Replace multi-part objects by their individual parts, # Replace multi-part objects by their individual parts,
# including built-in.a from subdirectories # including built-in.a from subdirectories
real-search = $(foreach m, $1, $(if $(call suffix-search, $m, $2 -), $(call suffix-search, $m, $2), $m)) real-obj-y := $(call real-search, $(obj-y), .o, -objs -y)
real-obj-y := $(call real-search, $(obj-y),-objs -y) real-obj-m := $(call real-search, $(obj-m), .o, -objs -y -m)
real-obj-m := $(call real-search, $(obj-m),-objs -y -m)
always-y += $(always-m) always-y += $(always-m)
...@@ -75,24 +78,18 @@ always-y += $(userprogs-always-y) $(userprogs-always-m) ...@@ -75,24 +78,18 @@ always-y += $(userprogs-always-y) $(userprogs-always-m)
# If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built # If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built
dtb-$(CONFIG_OF_ALL_DTBS) += $(dtb-) dtb-$(CONFIG_OF_ALL_DTBS) += $(dtb-)
# List all dtbs to be generated by fdtoverlay # Composite DTB (i.e. DTB constructed by overlay)
overlay-y := $(foreach m,$(dtb-y), $(if $(strip $($(m:.dtb=-dtbs))),$(m),)) multi-dtb-y := $(call multi-search, $(dtb-y), .dtb, -dtbs)
# Primitive DTB compiled from *.dts
# Generate symbols for the base files so overlays can be applied to them. real-dtb-y := $(call real-search, $(dtb-y), .dtb, -dtbs)
$(foreach m,$(overlay-y), $(eval DTC_FLAGS_$(basename $(firstword $($(m:.dtb=-dtbs)))) += -@)) # Base DTB that overlay is applied onto (each first word of $(*-dtbs) expansion)
base-dtb-y := $(foreach m, $(multi-dtb-y), $(firstword $(call suffix-search, $m, .dtb, -dtbs)))
# Add base dtb and overlay dtbo
dtb-y += $(foreach m,$(overlay-y), $($(m:.dtb=-dtbs)))
always-y += $(dtb-y) always-y += $(dtb-y)
ifneq ($(CHECK_DTBS),) ifneq ($(CHECK_DTBS),)
# Don't run schema checks for dtbs created by fdtoverlay as they don't always-y += $(patsubst %.dtb,%.dt.yaml, $(real-dtb-y))
# have corresponding dts files. always-y += $(patsubst %.dtbo,%.dt.yaml, $(real-dtb-y))
dt-yaml-y := $(filter-out $(overlay-y),$(dtb-y))
always-y += $(patsubst %.dtb,%.dt.yaml, $(dt-yaml-y))
always-y += $(patsubst %.dtbo,%.dt.yaml, $(dt-yaml-y))
endif endif
# Add subdir path # Add subdir path
...@@ -105,12 +102,14 @@ lib-y := $(addprefix $(obj)/,$(lib-y)) ...@@ -105,12 +102,14 @@ lib-y := $(addprefix $(obj)/,$(lib-y))
real-obj-y := $(addprefix $(obj)/,$(real-obj-y)) real-obj-y := $(addprefix $(obj)/,$(real-obj-y))
real-obj-m := $(addprefix $(obj)/,$(real-obj-m)) real-obj-m := $(addprefix $(obj)/,$(real-obj-m))
multi-obj-m := $(addprefix $(obj)/, $(multi-obj-m)) multi-obj-m := $(addprefix $(obj)/, $(multi-obj-m))
multi-dtb-y := $(addprefix $(obj)/, $(multi-dtb-y))
real-dtb-y := $(addprefix $(obj)/, $(real-dtb-y))
subdir-ym := $(addprefix $(obj)/,$(subdir-ym)) subdir-ym := $(addprefix $(obj)/,$(subdir-ym))
# Finds the multi-part object the current object will be linked into. # Finds the multi-part object the current object will be linked into.
# If the object belongs to two or more multi-part objects, list them all. # If the object belongs to two or more multi-part objects, list them all.
modname-multi = $(sort $(foreach m,$(multi-obj-ym),\ modname-multi = $(sort $(foreach m,$(multi-obj-ym),\
$(if $(filter $*.o, $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$(m:.o=)))) $(if $(filter $*.o, $(call suffix-search, $m, .o, -objs -y -m)),$(m:.o=))))
__modname = $(if $(modname-multi),$(modname-multi),$(basetarget)) __modname = $(if $(modname-multi),$(modname-multi),$(basetarget))
...@@ -252,6 +251,9 @@ quiet_cmd_copy = COPY $@ ...@@ -252,6 +251,9 @@ quiet_cmd_copy = COPY $@
# Shipped files # Shipped files
# =========================================================================== # ===========================================================================
# 'cp' preserves permissions. If you use it to copy a file in read-only srctree,
# the copy would be read-only as well, leading to an error when executing the
# rule next time. Use 'cat' instead in order to generate a writable file.
quiet_cmd_shipped = SHIPPED $@ quiet_cmd_shipped = SHIPPED $@
cmd_shipped = cat $< > $@ cmd_shipped = cat $< > $@
...@@ -319,6 +321,9 @@ endif ...@@ -319,6 +321,9 @@ endif
DTC_FLAGS += $(DTC_FLAGS_$(basetarget)) DTC_FLAGS += $(DTC_FLAGS_$(basetarget))
# Set -@ if the target is a base DTB that overlay is applied onto
DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
# Generate an assembly file to wrap the output of the device tree compiler # Generate an assembly file to wrap the output of the device tree compiler
quiet_cmd_dt_S_dtb= DTB $@ quiet_cmd_dt_S_dtb= DTB $@
cmd_dt_S_dtb= \ cmd_dt_S_dtb= \
...@@ -350,14 +355,12 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE ...@@ -350,14 +355,12 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE
$(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE $(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE
$(call if_changed_dep,dtc) $(call if_changed_dep,dtc)
overlay-y := $(addprefix $(obj)/, $(overlay-y))
quiet_cmd_fdtoverlay = DTOVL $@ quiet_cmd_fdtoverlay = DTOVL $@
cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs) cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs)
$(overlay-y): FORCE $(multi-dtb-y): FORCE
$(call if_changed,fdtoverlay) $(call if_changed,fdtoverlay)
$(call multi_depend, $(overlay-y), .dtb, -dtbs) $(call multi_depend, $(multi-dtb-y), .dtb, -dtbs)
DT_CHECKER ?= dt-validate DT_CHECKER ?= dt-validate
DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),,-m) DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),,-m)
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
fixdep /fixdep
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
dtc /dtc
fdtoverlay /fdtoverlay
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
randomize_layout_seed.h /randomize_layout_seed.h
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
genksyms /genksyms
...@@ -22,7 +22,7 @@ $(obj)/pars%.tab.c $(obj)/pars%.tab.h: $(src)/pars%.y FORCE ...@@ -22,7 +22,7 @@ $(obj)/pars%.tab.c $(obj)/pars%.tab.h: $(src)/pars%.y FORCE
endif endif
# -I needed for generated C source (shipped source) # -I needed for generated C source to include headers in source tree
HOSTCFLAGS_parse.tab.o := -I $(srctree)/$(src) HOSTCFLAGS_parse.tab.o := -I $(srctree)/$(src)
HOSTCFLAGS_lex.lex.o := -I $(srctree)/$(src) HOSTCFLAGS_lex.lex.o := -I $(srctree)/$(src)
......
...@@ -320,20 +320,6 @@ cleanup() ...@@ -320,20 +320,6 @@ cleanup()
rm -f .vmlinux.d rm -f .vmlinux.d
} }
on_exit()
{
if [ $? -ne 0 ]; then
cleanup
fi
}
trap on_exit EXIT
on_signals()
{
exit 1
}
trap on_signals HUP INT QUIT TERM
# Use "make V=1" to debug this script # Use "make V=1" to debug this script
case "${KBUILD_VERBOSE}" in case "${KBUILD_VERBOSE}" in
*1*) *1*)
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
elfconfig.h /devicetable-offsets.h
mk_elfconfig /elfconfig.h
modpost /mk_elfconfig
devicetable-offsets.h /modpost
...@@ -44,7 +44,7 @@ generate_deps() { ...@@ -44,7 +44,7 @@ generate_deps() {
for source_file in $mod_source_files; do for source_file in $mod_source_files; do
sed '/MODULE_IMPORT_NS/Q' $source_file > ${source_file}.tmp sed '/MODULE_IMPORT_NS/Q' $source_file > ${source_file}.tmp
offset=$(wc -l ${source_file}.tmp | awk '{print $1;}') offset=$(wc -l ${source_file}.tmp | awk '{print $1;}')
cat $source_file | grep MODULE_IMPORT_NS | LANG=C sort -u >> ${source_file}.tmp cat $source_file | grep MODULE_IMPORT_NS | LC_ALL=C sort -u >> ${source_file}.tmp
tail -n +$((offset +1)) ${source_file} | grep -v MODULE_IMPORT_NS >> ${source_file}.tmp tail -n +$((offset +1)) ${source_file} | grep -v MODULE_IMPORT_NS >> ${source_file}.tmp
if ! diff -q ${source_file} ${source_file}.tmp; then if ! diff -q ${source_file} ${source_file}.tmp; then
mv ${source_file}.tmp ${source_file} mv ${source_file}.tmp ${source_file}
......
...@@ -497,7 +497,7 @@ sub update_funcs ...@@ -497,7 +497,7 @@ sub update_funcs
# #
# Step 2: find the sections and mcount call sites # Step 2: find the sections and mcount call sites
# #
open(IN, "LANG=C $objdump -hdr $inputfile|") || die "error running $objdump"; open(IN, "LC_ALL=C $objdump -hdr $inputfile|") || die "error running $objdump";
my $text; my $text;
......
#!/bin/sh
set -e
# When you move, remove or rename generated files, you probably also update
# .gitignore and cleaning rules in the Makefile. This is the right thing
# to do. However, people usually do 'git pull', 'git bisect', etc. without
# running 'make clean'. Then, the stale generated files are left over, often
# causing build issues.
#
# Also, 'git status' shows such stale build artifacts as untracked files.
# What is worse, some people send a wrong patch to get them back to .gitignore
# without checking the commit history.
#
# So, when you (re)move generated files, please move the cleaning rules from
# the Makefile to this script. This is run before Kbuild starts building
# anything, so people will not be annoyed by such garbage files.
#
# This script is not intended to grow endlessly. Rather, it is a temporary scrap
# yard. Stale files stay in this file for a while (for some release cycles?),
# then will be really dead and removed from the code base entirely.
# These were previously generated source files. When you are building the kernel
# with O=, make sure to remove the stale files in the output tree. Otherwise,
# the build system wrongly compiles the stale ones.
if [ -n "${building_out_of_srctree}" ]; then
for f in fdt_rw.c fdt_ro.c fdt_wip.c fdt.c
do
rm -f arch/arm/boot/compressed/${f}
done
fi
...@@ -126,7 +126,7 @@ scm_version() ...@@ -126,7 +126,7 @@ scm_version()
fi fi
# Check for svn and a svn repo. # Check for svn and a svn repo.
if rev=$(LANG= LC_ALL= LC_MESSAGES=C svn info 2>/dev/null | grep '^Last Changed Rev'); then if rev=$(LC_ALL=C svn info 2>/dev/null | grep '^Last Changed Rev'); then
rev=$(echo $rev | awk '{print $NF}') rev=$(echo $rev | awk '{print $NF}')
printf -- '-svn%s' "$rev" printf -- '-svn%s' "$rev"
......
...@@ -326,5 +326,5 @@ esac ...@@ -326,5 +326,5 @@ esac
# Remove structure forward declarations. # Remove structure forward declarations.
if [ -n "$remove_structs" ]; then if [ -n "$remove_structs" ]; then
LANG=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $1 LC_ALL=C sed -i -e '/^\([a-zA-Z_][a-zA-Z0-9_]*\)\t.*\t\/\^struct \1;.*\$\/;"\tx$/d' $1
fi fi
...@@ -274,7 +274,7 @@ check_mptcp_disabled() ...@@ -274,7 +274,7 @@ check_mptcp_disabled()
ip netns exec ${disabled_ns} sysctl -q net.mptcp.enabled=0 ip netns exec ${disabled_ns} sysctl -q net.mptcp.enabled=0
local err=0 local err=0
LANG=C ip netns exec ${disabled_ns} ./mptcp_connect -p 10000 -s MPTCP 127.0.0.1 < "$cin" 2>&1 | \ LC_ALL=C ip netns exec ${disabled_ns} ./mptcp_connect -p 10000 -s MPTCP 127.0.0.1 < "$cin" 2>&1 | \
grep -q "^socket: Protocol not available$" && err=1 grep -q "^socket: Protocol not available$" && err=1
ip netns delete ${disabled_ns} ip netns delete ${disabled_ns}
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
gen_init_cpio /gen_init_cpio
initramfs_data.cpio /initramfs_data.cpio
/initramfs_inc_data /initramfs_inc_data
...@@ -147,7 +147,7 @@ dir_filelist() { ...@@ -147,7 +147,7 @@ dir_filelist() {
header "$1" header "$1"
srcdir=$(echo "$1" | sed -e 's://*:/:g') srcdir=$(echo "$1" | sed -e 's://*:/:g')
dirlist=$(find "${srcdir}" -printf "%p %m %U %G\n" | LANG=C sort) dirlist=$(find "${srcdir}" -printf "%p %m %U %G\n" | LC_ALL=C sort)
# If $dirlist is only one line, then the directory is empty # If $dirlist is only one line, then the directory is empty
if [ "$(echo "${dirlist}" | wc -l)" -gt 1 ]; then if [ "$(echo "${dirlist}" | wc -l)" -gt 1 ]; then
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
* /*/
!.gitignore
!Makefile
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册