<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in ld</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>76426e23 - kbuild: add dummy toolchains to enable all cc-option etc. in Kconfig</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/scripts/dummy-tools/ld#76426e23</link>
        <description>kbuild: add dummy toolchains to enable all cc-option etc. in KconfigStaring v4.18, Kconfig evaluates compiler capabilities, and hides CONFIGoptions your compiler does not support. This works well if you configureand build the kernel on the same host machine.It is inconvenient if you prepare the .config that is carried to adifferent build environment (typically this happens when you packagethe kernel for distros) because using a different compiler potentiallyproduces different CONFIG options than the real build environment.So, you probably want to make as many options visible as possible.In other words, you need to create a super-set of CONFIG options thatcover any build environment. If some of the CONFIG options turned outto be unsupported on the build machine, they are automatically disabledby the nature of Kconfig.However, it is not feasible to get a full-featured compiler for everyarch.This issue was discussed here:  https://lkml.org/lkml/2019/12/9/620Other than distros, savedefconfig is also a problem. Some arch sub-systemsperiodically resync defconfig files. If you use a less-capable compilerfor savedefconfig, options that do not meet &apos;depends on $(cc-option,...)&apos;will be forcibly disabled. So, &apos;make defconfig &amp;&amp; make savedefconfig&apos;may silently change the behavior.This commit adds a set of dummy toolchains that pretend to support anyfeature.Most of compiler features are tested by cc-option, which simply checksthe exit code of $(CC). The dummy tools are shell scripts that alwaysexit with 0. So, $(cc-option, ...) is evaluated as &apos;y&apos;.There are more complicated checks such as:  scripts/gcc-x86_{32,64}-has-stack-protector.sh  scripts/gcc-plugin.sh  scripts/tools-support-relr.shscripts/dummy-tools/gcc passes all checks.From the top directory of the source tree, you can do:   $ make CROSS_COMPILE=scripts/dummy-tools/ oldconfigSigned-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Reviewed-by: Philipp Rudo &lt;prudo@linux.ibm.com&gt;Tested-by: Jeremy Cline &lt;jcline@redhat.com&gt;

            List of files:
            /linux-6.15/scripts/dummy-tools/ld</description>
        <pubDate>Tue, 07 Apr 2020 15:53:52 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
</channel>
</rss>
