Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80a04d3f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
  docbook: make cleandocs
  kbuild: fix spurious initramfs rebuild
  Documentation: explain the difference between __bitwise and __bitwise__
  kbuild: make it possible for the linker to discard local symbols from vmlinux
  kbuild: remove pointless strdup() on arguments passed to new_module() in modpost
  kbuild: fix a few typos in top-level Makefile
  kbuild: introduce destination-y for exported headers
  kbuild: use git svn instead of git-svn in setlocalversion
  kconfig: fix update-po-config to accect backslash in input
  kbuild: fix option processing for -I in headerdep
parents eebb2afb 2810ae8c
Loading
Loading
Loading
Loading
+8 −3
Original line number Original line Diff line number Diff line
@@ -31,7 +31,7 @@ PS_METHOD = $(prefer-db2x)


###
###
# The targets that may be used.
# The targets that may be used.
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs


BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
xmldocs: $(BOOKS)
xmldocs: $(BOOKS)
@@ -213,11 +213,12 @@ silent_gen_xml = :
dochelp:
dochelp:
	@echo  ' Linux kernel internal documentation in different formats:'
	@echo  ' Linux kernel internal documentation in different formats:'
	@echo  '  htmldocs        - HTML'
	@echo  '  htmldocs        - HTML'
	@echo  '  installmandocs  - install man pages generated by mandocs'
	@echo  '  mandocs         - man pages'
	@echo  '  pdfdocs         - PDF'
	@echo  '  pdfdocs         - PDF'
	@echo  '  psdocs          - Postscript'
	@echo  '  psdocs          - Postscript'
	@echo  '  xmldocs         - XML DocBook'
	@echo  '  xmldocs         - XML DocBook'
	@echo  '  mandocs         - man pages'
	@echo  '  installmandocs  - install man pages generated by mandocs'
	@echo  '  cleandocs       - clean all generated DocBook files'


###
###
# Temporary files left by various tools
# Temporary files left by various tools
@@ -235,6 +236,10 @@ clean-files := $(DOCBOOKS) \


clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man


cleandocs:
	$(Q)rm -f $(call objectify, $(clean-files))
	$(Q)rm -rf $(call objectify, $(clean-dirs))

# 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 se we can use it in if_changed and friends.
# information in a variable se we can use it in if_changed and friends.


+75 −8
Original line number Original line Diff line number Diff line
@@ -40,10 +40,16 @@ This document describes the Linux kernel Makefiles.
	   --- 6.7 Custom kbuild commands
	   --- 6.7 Custom kbuild commands
	   --- 6.8 Preprocessing linker scripts
	   --- 6.8 Preprocessing linker scripts


	=== 7 Kbuild Variables
	=== 7 Kbuild syntax for exported headers
	=== 8 Makefile language
		--- 7.1 header-y
	=== 9 Credits
		--- 7.2 objhdr-y
	=== 10 TODO
		--- 7.3 destination-y
		--- 7.4 unifdef-y (deprecated)

	=== 8 Kbuild Variables
	=== 9 Makefile language
	=== 10 Credits
	=== 11 TODO


=== 1 Overview
=== 1 Overview


@@ -1143,8 +1149,69 @@ When kbuild executes, the following steps are followed (roughly):
	The kbuild infrastructure for *lds file are used in several
	The kbuild infrastructure for *lds file are used in several
	architecture-specific files.
	architecture-specific files.


=== 7 Kbuild syntax for exported headers

The kernel include a set of headers that is exported to userspace.
Many headers can be exported as-is but other headers requires  a
minimal pre-processing before they are ready for user-space.
The pre-processing does:
- drop kernel specific annotations
- drop include of compiler.h
- drop all sections that is kernel internat (guarded by ifdef __KERNEL__)

Each relevant directory contain a file name "Kbuild" which specify the
headers to be exported.
See subsequent chapter for the syntax of the Kbuild file.

	--- 7.1 header-y

	header-y specify header files to be exported.

		Example:
			#include/linux/Kbuild
			header-y += usb/
			header-y += aio_abi.h

	The convention is to list one file per line and
	preferably in alphabetic order.

	header-y also specify which subdirectories to visit.
	A subdirectory is identified by a trailing '/' which
	can be seen in the example above for the usb subdirectory.

	Subdirectories are visited before their parent directories.

	--- 7.2 objhdr-y

	objhdr-y specifies generated files to be exported.
	Generated files are special as they need to be looked
	up in another directory when doing 'make O=...' builds.

		Example:
			#include/linux/Kbuild
			objhdr-y += version.h

	--- 7.3 destination-y

	When an architecture have a set of exported headers that needs to be
	exported to a different directory destination-y is used.
	destination-y specify the destination directory for all exported
	headers in the file where it is present.

		Example:
			#arch/xtensa/platforms/s6105/include/platform/Kbuild
			destination-y := include/linux

	In the example above all exported headers in the Kbuild file
	will be located in the directory "include/linux" when exported.


	--- 7.4 unifdef-y (deprecated)

	unifdef-y is deprecated. A direct replacement is header-y.



=== 7 Kbuild Variables
=== 8 Kbuild Variables


The top Makefile exports the following variables:
The top Makefile exports the following variables:


@@ -1206,7 +1273,7 @@ The top Makefile exports the following variables:
	INSTALL_MOD_STRIP will used as the option(s) to the strip command.
	INSTALL_MOD_STRIP will used as the option(s) to the strip command.




=== 8 Makefile language
=== 9 Makefile language


The kernel Makefiles are designed to be run with GNU Make.  The Makefiles
The kernel Makefiles are designed to be run with GNU Make.  The Makefiles
use only the documented features of GNU Make, but they do use many
use only the documented features of GNU Make, but they do use many
@@ -1225,14 +1292,14 @@ time the left-hand side is used.
There are some cases where "=" is appropriate.  Usually, though, ":="
There are some cases where "=" is appropriate.  Usually, though, ":="
is the right choice.
is the right choice.


=== 9 Credits
=== 10 Credits


Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Updates by Sam Ravnborg <sam@ravnborg.org>
Updates by Sam Ravnborg <sam@ravnborg.org>
Language QA by Jan Engelhardt <jengelh@gmx.de>
Language QA by Jan Engelhardt <jengelh@gmx.de>


=== 10 TODO
=== 11 TODO


- Describe how kbuild supports shipped files with _shipped.
- Describe how kbuild supports shipped files with _shipped.
- Generating offset header files.
- Generating offset header files.
+8 −0
Original line number Original line Diff line number Diff line
@@ -42,6 +42,14 @@ sure that bitwise types don't get mixed up (little-endian vs big-endian
vs cpu-endian vs whatever), and there the constant "0" really _is_
vs cpu-endian vs whatever), and there the constant "0" really _is_
special.
special.


__bitwise__ - to be used for relatively compact stuff (gfp_t, etc.) that
is mostly warning-free and is supposed to stay that way.  Warnings will
be generated without __CHECK_ENDIAN__.

__bitwise - noisy stuff; in particular, __le*/__be* are that.  We really
don't want to drown in noise unless we'd explicitly asked for it.


Getting sparse
Getting sparse
~~~~~~~~~~~~~~
~~~~~~~~~~~~~~


+6 −2
Original line number Original line Diff line number Diff line
@@ -567,7 +567,7 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
# disable pointer signed / unsigned warnings in gcc 4.0
# disable pointer signed / unsigned warnings in gcc 4.0
KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)


# disable invalid "can't wrap" optimzations for signed / pointers
# disable invalid "can't wrap" optimizations for signed / pointers
KBUILD_CFLAGS	+= $(call cc-option,-fwrapv)
KBUILD_CFLAGS	+= $(call cc-option,-fwrapv)


# revert to pre-gcc-4.4 behaviour of .eh_frame
# revert to pre-gcc-4.4 behaviour of .eh_frame
@@ -597,6 +597,10 @@ LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)


ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
LDFLAGS_vmlinux	+= -X
endif

# Default kernel image to build when no specific target is given.
# Default kernel image to build when no specific target is given.
# KBUILD_IMAGE may be overruled on the command line or
# KBUILD_IMAGE may be overruled on the command line or
# set in the environment
# set in the environment
@@ -1587,5 +1591,5 @@ 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 se 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)
+8 −0
Original line number Original line Diff line number Diff line
@@ -808,6 +808,14 @@ config KALLSYMS_EXTRA_PASS
	   you wait for kallsyms to be fixed.
	   you wait for kallsyms to be fixed.




config STRIP_ASM_SYMS
	bool "Strip assembler-generated symbols during link"
	default n
	help
	  Strip internal assembler-generated symbols during a link (symbols
	  that look like '.Lxxx') so they don't pollute the output of
	  get_wchan() and suchlike.

config HOTPLUG
config HOTPLUG
	bool "Support for hot-pluggable devices" if EMBEDDED
	bool "Support for hot-pluggable devices" if EMBEDDED
	default y
	default y
Loading