• Masahiro Yamada's avatar
    doc: gcc-plugins: update gcc-plugins.rst · 9b616434
    Masahiro Yamada authored
    This document was written a long time ago. Update it.
    
    [1] Drop the version information
    
    The range of the supported GCC versions are always changing. The
    current minimal GCC version is 4.9, and commit 1e860048
    ("gcc-plugins: simplify GCC plugin-dev capability test") removed the
    old code accordingly.
    
    We do not need to mention specific version ranges like "all gcc versions
    from 4.5 to 6.0" since we forget to update the documentation when we
    raise the minimal compiler version.
    
    [2] Drop the C compiler statements
    
    Since commit 77342a02 ("gcc-plugins: drop support for GCC <= 4.7")
    the GCC plugin infrastructure only supports g++.
    
    [3] Drop supported architectures
    
    As of v5.11-rc4, the infrastructure supports more architectures;
    arm, arm64, mips, powerpc, riscv, s390, um, and x86. (just grep
    "select HAVE_GCC_PLUGINS") Again, we miss to update this document when a
    new architecture is supported. Let's just say "only some architectures".
    
    [4] Update the apt-get example
    
    We are now discussing to bump the minimal version to GCC 5. The GCC 4.9
    support will be removed sooner or later. Change the package example to
    gcc-10-plugin-dev while we are here.
    
    [5] Update the build target
    
    Since commit ce2fd53a ("kbuild: descend into scripts/gcc-plugins/
    via scripts/Makefile"), "make gcc-plugins" is not supported.
    "make scripts" builds all the enabled plugins, including some other
    tools.
    
    [6] Update the steps for adding a new plugin
    
    At first, all CONFIG options for GCC plugins were located in arch/Kconfig.
    After commit 45332b1b ("gcc-plugins: split out Kconfig entries to
    scripts/gcc-plugins/Kconfig"), scripts/gcc-plugins/Kconfig became the
    central place to collect plugin CONFIG options. In my understanding,
    this requirement no longer exists because commit 9f671e58 ("security:
    Create "kernel hardening" config area") moved some of plugin CONFIG
    options to another file. Find an appropriate place to add the new CONFIG.
    
    The sub-directory support was never used by anyone, and removed by
    commit c17d6179 ("gcc-plugins: remove unused GCC_PLUGIN_SUBDIR").
    
    Remove the useless $(src)/ prefix.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    9b616434
gcc-plugins.rst 2.72 KB