Ver código fonte

Merge tag 'kbuild-fixes-v4.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull Kbuild fixes from Masahiro Yamada:

 - update Kbuild and Kconfig documents

 - sanitize -I compiler option handling

 - update extract-vmlinux script to recognize LZ4 and ZSTD

 - fix tools Makefiles

 - update tags.sh to handle __ro_after_init

 - suppress warnings in case getconf does not recognize LFS_* parameters

* tag 'kbuild-fixes-v4.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
  kbuild: suppress warnings from 'getconf LFS_*'
  scripts/tags.sh: add __ro_after_init
  tools: build: Use HOSTLDFLAGS with fixdep
  tools: build: Fixup host c flags
  tools build: fix # escaping in .cmd files for future Make
  scripts: teach extract-vmlinux about LZ4 and ZSTD
  kbuild: remove duplicated comments about PHONY
  kbuild: .PHONY is not a variable, but PHONY is
  kbuild: do not drop -I without parameter
  kbuild: document the KBUILD_KCONFIG env. variable
  kconfig: update user kconfig tools doc.
  kbuild: delete INSTALL_FW_PATH from kbuild documentation
  kbuild: update ARCH alias info for sparc
  kbuild: update ARCH alias info for sh
Linus Torvalds 7 anos atrás
pai
commit
79facf308f

+ 7 - 10
Documentation/kbuild/kbuild.txt

@@ -50,6 +50,11 @@ LDFLAGS_MODULE
 --------------------------------------------------
 --------------------------------------------------
 Additional options used for $(LD) when linking modules.
 Additional options used for $(LD) when linking modules.
 
 
+KBUILD_KCONFIG
+--------------------------------------------------
+Set the top-level Kconfig file to the value of this environment
+variable.  The default name is "Kconfig".
+
 KBUILD_VERBOSE
 KBUILD_VERBOSE
 --------------------------------------------------
 --------------------------------------------------
 Set the kbuild verbosity. Can be assigned same values as "V=...".
 Set the kbuild verbosity. Can be assigned same values as "V=...".
@@ -88,7 +93,8 @@ In most cases the name of the architecture is the same as the
 directory name found in the arch/ directory.
 directory name found in the arch/ directory.
 But some architectures such as x86 and sparc have aliases.
 But some architectures such as x86 and sparc have aliases.
 x86: i386 for 32 bit, x86_64 for 64 bit
 x86: i386 for 32 bit, x86_64 for 64 bit
-sparc: sparc for 32 bit, sparc64 for 64 bit
+sh: sh for 32 bit, sh64 for 64 bit
+sparc: sparc32 for 32 bit, sparc64 for 64 bit
 
 
 CROSS_COMPILE
 CROSS_COMPILE
 --------------------------------------------------
 --------------------------------------------------
@@ -148,15 +154,6 @@ stripped after they are installed.  If INSTALL_MOD_STRIP is '1', then
 the default option --strip-debug will be used.  Otherwise,
 the default option --strip-debug will be used.  Otherwise,
 INSTALL_MOD_STRIP value will be used as the options to the strip command.
 INSTALL_MOD_STRIP value will be used as the options to the strip command.
 
 
-INSTALL_FW_PATH
---------------------------------------------------
-INSTALL_FW_PATH specifies where to install the firmware blobs.
-The default value is:
-
-    $(INSTALL_MOD_PATH)/lib/firmware
-
-The value can be overridden in which case the default value is ignored.
-
 INSTALL_HDR_PATH
 INSTALL_HDR_PATH
 --------------------------------------------------
 --------------------------------------------------
 INSTALL_HDR_PATH specifies where to install user space headers when
 INSTALL_HDR_PATH specifies where to install user space headers when

+ 43 - 8
Documentation/kbuild/kconfig.txt

@@ -2,9 +2,9 @@ This file contains some assistance for using "make *config".
 
 
 Use "make help" to list all of the possible configuration targets.
 Use "make help" to list all of the possible configuration targets.
 
 
-The xconfig ('qconf') and menuconfig ('mconf') programs also
-have embedded help text.  Be sure to check it for navigation,
-search, and other general help text.
+The xconfig ('qconf'), menuconfig ('mconf'), and nconfig ('nconf')
+programs also have embedded help text.  Be sure to check that for
+navigation, search, and other general help text.
 
 
 ======================================================================
 ======================================================================
 General
 General
@@ -17,13 +17,16 @@ this happens, using a previously working .config file and running
 for you, so you may find that you need to see what NEW kernel
 for you, so you may find that you need to see what NEW kernel
 symbols have been introduced.
 symbols have been introduced.
 
 
-To see a list of new config symbols when using "make oldconfig", use
+To see a list of new config symbols, use
 
 
 	cp user/some/old.config .config
 	cp user/some/old.config .config
 	make listnewconfig
 	make listnewconfig
 
 
 and the config program will list any new symbols, one per line.
 and the config program will list any new symbols, one per line.
 
 
+Alternatively, you can use the brute force method:
+
+	make oldconfig
 	scripts/diffconfig .config.old .config | less
 	scripts/diffconfig .config.old .config | less
 
 
 ______________________________________________________________________
 ______________________________________________________________________
@@ -160,7 +163,7 @@ Searching in menuconfig:
 		This lists all config symbols that contain "hotplug",
 		This lists all config symbols that contain "hotplug",
 		e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.
 		e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.
 
 
-	For search help, enter / followed TAB-TAB-TAB (to highlight
+	For search help, enter / followed by TAB-TAB (to highlight
 	<Help>) and Enter.  This will tell you that you can also use
 	<Help>) and Enter.  This will tell you that you can also use
 	regular expressions (regexes) in the search string, so if you
 	regular expressions (regexes) in the search string, so if you
 	are not interested in MEMORY_HOTPLUG, you could try
 	are not interested in MEMORY_HOTPLUG, you could try
@@ -202,6 +205,39 @@ Example:
 	make MENUCONFIG_MODE=single_menu menuconfig
 	make MENUCONFIG_MODE=single_menu menuconfig
 
 
 
 
+======================================================================
+nconfig
+--------------------------------------------------
+
+nconfig is an alternate text-based configurator.  It lists function
+keys across the bottom of the terminal (window) that execute commands.
+You can also just use the corresponding numeric key to execute the
+commands unless you are in a data entry window.  E.g., instead of F6
+for Save, you can just press 6.
+
+Use F1 for Global help or F3 for the Short help menu.
+
+Searching in nconfig:
+
+	You can search either in the menu entry "prompt" strings
+	or in the configuration symbols.
+
+	Use / to begin a search through the menu entries.  This does
+	not support regular expressions.  Use <Down> or <Up> for
+	Next hit and Previous hit, respectively.  Use <Esc> to
+	terminate the search mode.
+
+	F8 (SymSearch) searches the configuration symbols for the
+	given string or regular expression (regex).
+
+NCONFIG_MODE
+--------------------------------------------------
+This mode shows all sub-menus in one large tree.
+
+Example:
+	make NCONFIG_MODE=single_menu nconfig
+
+
 ======================================================================
 ======================================================================
 xconfig
 xconfig
 --------------------------------------------------
 --------------------------------------------------
@@ -230,8 +266,7 @@ gconfig
 
 
 Searching in gconfig:
 Searching in gconfig:
 
 
-	None (gconfig isn't maintained as well as xconfig or menuconfig);
-	however, gconfig does have a few more viewing choices than
-	xconfig does.
+	There is no search command in gconfig.  However, gconfig does
+	have several different viewing choices, modes, and options.
 
 
 ###
 ###

+ 4 - 4
Makefile

@@ -353,9 +353,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
 	  else if [ -x /bin/bash ]; then echo /bin/bash; \
 	  else if [ -x /bin/bash ]; then echo /bin/bash; \
 	  else echo sh; fi ; fi)
 	  else echo sh; fi ; fi)
 
 
-HOST_LFS_CFLAGS := $(shell getconf LFS_CFLAGS)
-HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS)
-HOST_LFS_LIBS := $(shell getconf LFS_LIBS)
+HOST_LFS_CFLAGS := $(shell getconf LFS_CFLAGS 2>/dev/null)
+HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null)
+HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null)
 
 
 HOSTCC       = gcc
 HOSTCC       = gcc
 HOSTCXX      = g++
 HOSTCXX      = g++
@@ -1712,6 +1712,6 @@ endif	# skip-makefile
 PHONY += FORCE
 PHONY += FORCE
 FORCE:
 FORCE:
 
 
-# Declare the contents of the .PHONY variable as phony.  We keep that
+# Declare the contents of the PHONY variable as phony.  We keep that
 # information in a variable so we can use it in if_changed and friends.
 # information in a variable so we can use it in if_changed and friends.
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 1 - 1
scripts/Kbuild.include

@@ -214,7 +214,7 @@ hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
 # Prefix -I with $(srctree) if it is not an absolute path.
 # Prefix -I with $(srctree) if it is not an absolute path.
 # skip if -I has no parameter
 # skip if -I has no parameter
 addtree = $(if $(patsubst -I%,%,$(1)), \
 addtree = $(if $(patsubst -I%,%,$(1)), \
-$(if $(filter-out -I/% -I./% -I../%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1)))
+$(if $(filter-out -I/% -I./% -I../%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1)),$(1))
 
 
 # Find all -I options and call addtree
 # Find all -I options and call addtree
 flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
 flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))

+ 0 - 3
scripts/Makefile.build

@@ -590,7 +590,4 @@ endif
 # We never want them to be removed automatically.
 # We never want them to be removed automatically.
 .SECONDARY: $(targets)
 .SECONDARY: $(targets)
 
 
-# Declare the contents of the .PHONY variable as phony.  We keep that
-# information in a variable se we can use it in if_changed and friends.
-
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 0 - 3
scripts/Makefile.clean

@@ -88,7 +88,4 @@ PHONY += $(subdir-ymn)
 $(subdir-ymn):
 $(subdir-ymn):
 	$(Q)$(MAKE) $(clean)=$@
 	$(Q)$(MAKE) $(clean)=$@
 
 
-# Declare the contents of the .PHONY variable as phony.  We keep that
-# information in a variable se we can use it in if_changed and friends.
-
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 0 - 4
scripts/Makefile.modbuiltin

@@ -54,8 +54,4 @@ PHONY += $(subdir-ym)
 $(subdir-ym):
 $(subdir-ym):
 	$(Q)$(MAKE) $(modbuiltin)=$@
 	$(Q)$(MAKE) $(modbuiltin)=$@
 
 
-
-# Declare the contents of the .PHONY variable as phony.  We keep that
-# information in a variable se we can use it in if_changed and friends.
-
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 0 - 4
scripts/Makefile.modinst

@@ -35,8 +35,4 @@ modinst_dir = $(if $(KBUILD_EXTMOD),$(ext-mod-dir),kernel/$(@D))
 $(modules):
 $(modules):
 	$(call cmd,modules_install,$(MODLIB)/$(modinst_dir))
 	$(call cmd,modules_install,$(MODLIB)/$(modinst_dir))
 
 
-
-# Declare the contents of the .PHONY variable as phony.  We keep that
-# information in a variable so we can use it in if_changed and friends.
-
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 0 - 4
scripts/Makefile.modpost

@@ -149,8 +149,4 @@ ifneq ($(cmd_files),)
   include $(cmd_files)
   include $(cmd_files)
 endif
 endif
 
 
-
-# Declare the contents of the .PHONY variable as phony.  We keep that
-# information in a variable se we can use it in if_changed and friends.
-
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 0 - 3
scripts/Makefile.modsign

@@ -27,7 +27,4 @@ modinst_dir = $(if $(KBUILD_EXTMOD),$(ext-mod-dir),kernel/$(@D))
 $(modules):
 $(modules):
 	$(call cmd,sign_ko,$(MODLIB)/$(modinst_dir))
 	$(call cmd,sign_ko,$(MODLIB)/$(modinst_dir))
 
 
-# Declare the contents of the .PHONY variable as phony.  We keep that
-# information in a variable se we can use it in if_changed and friends.
-
 .PHONY: $(PHONY)
 .PHONY: $(PHONY)

+ 2 - 0
scripts/extract-vmlinux

@@ -57,6 +57,8 @@ try_decompress '\3757zXZ\000' abcde unxz
 try_decompress 'BZh'          xy    bunzip2
 try_decompress 'BZh'          xy    bunzip2
 try_decompress '\135\0\0\0'   xxx   unlzma
 try_decompress '\135\0\0\0'   xxx   unlzma
 try_decompress '\211\114\132' xy    'lzop -d'
 try_decompress '\211\114\132' xy    'lzop -d'
+try_decompress '\002!L\030'   xxx   'lz4 -d'
+try_decompress '(\265/\375'   xxx   unzstd
 
 
 # Bail out:
 # Bail out:
 echo "$me: Cannot find vmlinux." >&2
 echo "$me: Cannot find vmlinux." >&2

+ 1 - 1
scripts/tags.sh

@@ -245,7 +245,7 @@ exuberant()
 {
 {
 	setup_regex exuberant asm c
 	setup_regex exuberant asm c
 	all_target_sources | xargs $1 -a                        \
 	all_target_sources | xargs $1 -a                        \
-	-I __initdata,__exitdata,__initconst,			\
+	-I __initdata,__exitdata,__initconst,__ro_after_init	\
 	-I __initdata_memblock					\
 	-I __initdata_memblock					\
 	-I __refdata,__attribute,__maybe_unused,__always_unused \
 	-I __refdata,__attribute,__maybe_unused,__always_unused \
 	-I __acquires,__releases,__deprecated			\
 	-I __acquires,__releases,__deprecated			\

+ 3 - 3
tools/build/Build.include

@@ -63,8 +63,8 @@ dep-cmd = $(if $(wildcard $(fixdep)),
            $(fixdep) $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;           \
            $(fixdep) $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;           \
            rm -f $(depfile);                                                    \
            rm -f $(depfile);                                                    \
            mv -f $(dot-target).tmp $(dot-target).cmd,                           \
            mv -f $(dot-target).tmp $(dot-target).cmd,                           \
-           printf '\# cannot find fixdep (%s)\n' $(fixdep) > $(dot-target).cmd; \
-           printf '\# using basic dep data\n\n' >> $(dot-target).cmd;           \
+           printf '$(pound) cannot find fixdep (%s)\n' $(fixdep) > $(dot-target).cmd; \
+           printf '$(pound) using basic dep data\n\n' >> $(dot-target).cmd;           \
            cat $(depfile) >> $(dot-target).cmd;                                 \
            cat $(depfile) >> $(dot-target).cmd;                                 \
            printf '\n%s\n' 'cmd_$@ := $(make-cmd)' >> $(dot-target).cmd)
            printf '\n%s\n' 'cmd_$@ := $(make-cmd)' >> $(dot-target).cmd)
 
 
@@ -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,$@ $(CHOSTFLAGS) -D"BUILD_STR(s)=\#s" $(CHOSTFLAGS_$(basetarget).o) $(CHOSTFLAGS_$(obj))
+host_c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(HOSTCFLAGS) -D"BUILD_STR(s)=\#s" $(HOSTCFLAGS_$(basetarget).o) $(HOSTCFLAGS_$(obj))

+ 1 - 1
tools/build/Makefile

@@ -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) $(LDFLAGS) -o $@ $<
+	$(QUIET_LINK)$(HOSTCC) $(HOSTLDFLAGS) -o $@ $<
 
 
 FORCE:
 FORCE:
 
 

+ 1 - 1
tools/perf/pmu-events/Build

@@ -1,7 +1,7 @@
 hostprogs := jevents
 hostprogs := jevents
 
 
 jevents-y	+= json.o jsmn.o jevents.o
 jevents-y	+= json.o jsmn.o jevents.o
-CHOSTFLAGS_jevents.o	= -I$(srctree)/tools/include
+HOSTCFLAGS_jevents.o	= -I$(srctree)/tools/include
 pmu-events-y	+= pmu-events.o
 pmu-events-y	+= pmu-events.o
 JDIR		=  pmu-events/arch/$(SRCARCH)
 JDIR		=  pmu-events/arch/$(SRCARCH)
 JSON		=  $(shell [ -d $(JDIR) ] &&				\
 JSON		=  $(shell [ -d $(JDIR) ] &&				\