Re: [PATCH 00/23] kconfig: move compiler capability tests to Kconfig
Arnd Bergmann <[email protected]> Wed, 21 Feb 2018 17:03:25 +0100
| Newsgroups | gmane.linux.kernel.hardened.devel,gmane.linux.ports.sparc,gmane.linux.ports.sh.devel,gmane.linux.uml.devel,gmane.linux.kbuild.devel,gmane.linux.ports.ppc64.devel,gmane.linux.uml.user,gmane.linux.documentation,gmane.linux.kernel |
|---|---|
| Message-ID | <CAK8P3a3-eufj=HM4Mi+KaSLxuoPwtw0P4EfmtYfVcbnR0mVwAw@mail.gmail.com> |
On Wed, Feb 21, 2018 at 1:57 PM, Masahiro Yamada <[email protected]> wrote: > 2018-02-21 19:52 GMT+09:00 Arnd Bergmann <[email protected]>: >> On Wed, Feb 21, 2018 at 11:20 AM, Masahiro Yamada >> <[email protected]> wrote: >>> 2018-02-21 18:56 GMT+09:00 Arnd Bergmann <[email protected]>: >>>> On Wed, Feb 21, 2018 at 8:38 AM, Masahiro Yamada >>>> <[email protected]> wrote: >>>>> 2018-02-20 0:18 GMT+09:00 Ulf Magnusson <[email protected]>: > > Hmm, I think I can implement those somehow. > But, I hope we do not have many instances like this... > > > If you know more naive cases, please share your knowledge. > One case that comes to mind would be architecture level selection on 32-bit ARM, which is roughly this (I probably have some details wrong, but you get the idea): - older compilers don't support the latest architecture setting (-march=armv8 or -march=armv7ve) - newer compilers no longer support really old architectures (-march=armv4) - setting -mthumb requires setting one of -march=armv7-a, armv7ve, armv7-m or armv8 if the compiler doesn't default to those - on a compiler that defaults to -marm, setting -march=armv7-m requires setting -mthumb (IIRC) - really old compilers only support OABI, but not EABI - newer compilers no longer support OABI - mthumb requires EABI - armv6 and higher are subtly broken with OABI, but only when using certain inline assembly with 64-bit arguments in register pairs. I think we just shouldn't try to capture all of the above correctly in Kconfig conditionals. Arnd