1
0
Fork 0
alistair23-linux/Documentation/process
Linus Torvalds e468f5c06b The Compiler Attributes series
This is an effort to disentangle the include/linux/compiler*.h headers
 and bring them up to date.
 
 The main idea behind the series is to use feature checking macros
 (i.e. __has_attribute) instead of compiler version checks (e.g. GCC_VERSION),
 which are compiler-agnostic (so they can be shared, reducing the size
 of compiler-specific headers) and version-agnostic.
 
 Other related improvements have been performed in the headers as well,
 which on top of the use of __has_attribute it has amounted to a significant
 simplification of these headers (e.g. GCC_VERSION is now only guarding
 a few non-attribute macros).
 
 This series should also help the efforts to support compiling the kernel
 with clang and icc. A fair amount of documentation and comments have also
 been added, clarified or removed; and the headers are now more readable,
 which should help kernel developers in general.
 
 The series was triggered due to the move to gcc >= 4.6. In turn, this series
 has also triggered Sparse to gain the ability to recognize __has_attribute
 on its own.
 
 Finally, the __nonstring variable attribute series has been also applied
 on top; plus two related patches from Nick Desaulniers for unreachable()
 that came a bit afterwards.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPjU5OPd5QIZ9jqqOGXyLc2htIW0FAlvNpywACgkQGXyLc2ht
 IW1aiQ/+P8SJOa3GkiH37/nrIbk/wgMNytbs+gxE5YPaU1DP74Mn1prJ4XhQQic9
 /mt8GnitZwzEHWdsGEUk+ZQwnIa7ZEAmpecbAF206AMRbNxa14T5YwBx4bqWFjZp
 sP4zPTHt3JCKL8TM+z26o152UbF2kc4WSxHjEjSFaqEnR2E5D0MwFeGPzc8fgWmS
 pNyn3CidzB0TS1UF008YXhiJO6HIhFNPyhPawlhwbbdsdlhZ4u0JmwfqP4EvjRFM
 kyzdQ9CDe+AgTTD9Y8HhtoUClaa7SJzFWNzpKIJMWt8jpKWYZQ/+WtwKg2cf+v3M
 uwktcs3RI1dYrjcITLz4VJ0oVaRFnyGgXvMP4yqWQx429hqnd09WXhMioXQ1htoI
 H0vpPIAPsK+dqVA9sP3JzMq4h6+dE7P364lkbThbVpYAGKZ52qaLt9ixT1mw1Q9f
 a683ji6o02IVOGUNZ/3KAb5MqdhewNEDdZILZYRfm4AL1Em3WW9QVtIosHPviLgc
 16VjA02wKdxIcg+1LZMTNhfybztnSCf7SuQurpH1zEqFDGzrXwB7nYFplEY7DrrD
 cqhOA1fMQa++oQR+D40QDoY2ybqPOyvJG7z17pvtt+6jXep4yy2a3Bxf+ClK0nto
 5yT7v9ikXJr84FOkk7OvktLlAWvcykvAdfvDepBZhpqhuX82tHY=
 =Y8WB
 -----END PGP SIGNATURE-----

Merge tag 'compiler-attributes-for-linus-4.20-rc1' of https://github.com/ojeda/linux

Pull compiler attribute updates from Miguel Ojeda:
 "This is an effort to disentangle the include/linux/compiler*.h headers
  and bring them up to date.

  The main idea behind the series is to use feature checking macros
  (i.e. __has_attribute) instead of compiler version checks (e.g.
  GCC_VERSION), which are compiler-agnostic (so they can be shared,
  reducing the size of compiler-specific headers) and version-agnostic.

  Other related improvements have been performed in the headers as well,
  which on top of the use of __has_attribute it has amounted to a
  significant simplification of these headers (e.g. GCC_VERSION is now
  only guarding a few non-attribute macros).

  This series should also help the efforts to support compiling the
  kernel with clang and icc. A fair amount of documentation and comments
  have also been added, clarified or removed; and the headers are now
  more readable, which should help kernel developers in general.

  The series was triggered due to the move to gcc >= 4.6. In turn, this
  series has also triggered Sparse to gain the ability to recognize
  __has_attribute on its own.

  Finally, the __nonstring variable attribute series has been also
  applied on top; plus two related patches from Nick Desaulniers for
  unreachable() that came a bit afterwards"

* tag 'compiler-attributes-for-linus-4.20-rc1' of https://github.com/ojeda/linux:
  compiler-gcc: remove comment about gcc 4.5 from unreachable()
  compiler.h: update definition of unreachable()
  Compiler Attributes: ext4: remove local __nonstring definition
  Compiler Attributes: auxdisplay: panel: use __nonstring
  Compiler Attributes: enable -Wstringop-truncation on W=1 (gcc >= 8)
  Compiler Attributes: add support for __nonstring (gcc >= 8)
  Compiler Attributes: add MAINTAINERS entry
  Compiler Attributes: add Doc/process/programming-language.rst
  Compiler Attributes: remove uses of __attribute__ from compiler.h
  Compiler Attributes: KENTRY used twice the "used" attribute
  Compiler Attributes: use feature checks instead of version checks
  Compiler Attributes: add missing SPDX ID in compiler_types.h
  Compiler Attributes: remove unneeded sparse (__CHECKER__) tests
  Compiler Attributes: homogenize __must_be_array
  Compiler Attributes: remove unneeded tests
  Compiler Attributes: always use the extra-underscores syntax
  Compiler Attributes: remove unused attributes
2018-11-01 18:34:46 -07:00
..
1.Intro.rst Doc: Correct typo, "Introdution" => "Introduction" 2016-12-01 10:44:08 -07:00
2.Process.rst docs: fix typo in table describing 4.16 development cycle 2018-08-31 16:28:06 -06:00
3.Early-stage.rst Documentation/process: phrasofix 2017-09-26 14:53:51 -06:00
4.Coding.rst clang-format: add configuration file 2018-04-11 10:28:35 -07:00
5.Posting.rst Documentation/process/posting: wrap text at 80 cols 2018-05-10 15:42:41 -06:00
6.Followthrough.rst
7.AdvancedTopics.rst
8.Conclusion.rst docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
adding-syscalls.rst doc: fix a typo in adding-syscalls.rst 2018-10-18 12:04:40 -06:00
applying-patches.rst docs: process: drop git snapshots from applying-patches.rst 2017-08-30 15:25:30 -06:00
changes.rst kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
clang-format.rst clang-format: add configuration file 2018-04-11 10:28:35 -07:00
code-of-conduct-interpretation.rst Code of Conduct Interpretation: Put in the proper URL for the committee 2018-10-22 07:33:36 +01:00
code-of-conduct.rst Code of Conduct: Change the contact email address 2018-10-22 07:33:36 +01:00
coding-style.rst clang-format: add configuration file 2018-04-11 10:28:35 -07:00
conf.py
deprecated.rst docs: Introduce deprecated APIs list 2018-10-18 12:22:43 -06:00
development-process.rst
email-clients.rst doc: Document suitability of IBM Verse for kernel development 2017-06-22 10:22:41 -06:00
howto.rst docs: tidy up TOCs and refs to license-rules.rst 2018-08-31 16:50:50 -06:00
index.rst The Compiler Attributes series 2018-11-01 18:34:46 -07:00
kernel-docs.rst Fix broken link in Documentation/process/kernel-docs.rst 2018-02-01 12:08:18 -07:00
kernel-driver-statement.rst documentation: add my name to kernel driver statement 2018-03-07 10:16:41 -07:00
kernel-enforcement-statement.rst Documentation updates for 4.16. New stuff includes refcount_t 2018-01-31 19:25:25 -08:00
license-rules.rst docs: tidy up TOCs and refs to license-rules.rst 2018-08-31 16:50:50 -06:00
magic-number.rst staging: irda: remove remaining remants of irda code removal 2018-04-16 11:26:49 +02:00
maintainer-pgp-guide.rst Documentation/process: updates to the PGP guide 2018-04-16 14:03:50 -06:00
management-style.rst Remove gendered language from management style documentation 2018-08-10 16:06:56 -06:00
programming-language.rst Compiler Attributes: add Doc/process/programming-language.rst 2018-09-30 20:14:04 +02:00
stable-api-nonsense.rst
stable-kernel-rules.rst docs: Update references to netdev-FAQ 2018-07-26 21:27:54 -07:00
submit-checklist.rst docs: fix process/submit-checklist.rst Sphinx warning 2017-12-21 13:39:32 -07:00
submitting-drivers.rst Documentation: fix driver-api doc refs 2017-10-12 11:12:29 -06:00
submitting-patches.rst docs: Add rest label the_canonical_patch_format 2018-07-26 21:27:54 -07:00
volatile-considered-harmful.rst Documentation/atomic_ops.txt: convert to ReST markup 2016-11-30 17:40:52 -07:00