Re: Why is CONFIG_VT forced on?

From: Randy Dunlap
Date: Mon Dec 30 2019 - 21:03:53 EST


On 12/30/19 6:04 PM, Rob Landley wrote:
>
>
> On 12/30/19 7:45 PM, Rob Landley wrote:
>> On 12/30/19 6:59 PM, Randy Dunlap wrote:
>>> #
>>> # Character devices
>>> #
>>> CONFIG_TTY=y
>>> # CONFIG_VT is not set
>>>
>>> But first you must set/enable EXPERT. See the bool prompt.
>>
>> Wait, the if doesn't _disable_ the symbol? It disables _editability_ of the
>> symbol, but the symbol can still be on (and displayed) when the if is false?
>> (Why would...)
>>
>> Ok. Thanks for pointing that out. Any idea why the menuconfig help text has no
>> mention of this?
>
> So if I disable CONFIG_EXPERT, using miniconfig I then need to manually switch on:
>
> ./init/Kconfig: bool "Namespaces support" if EXPERT
> ./init/Kconfig: bool "Multiple users, groups and capabilities support" if EXPERT
> ./init/Kconfig: bool "Sysfs syscall support" if EXPERT
> ./init/Kconfig: bool "open by fhandle syscalls" if EXPERT
> ./init/Kconfig: bool "Posix Clocks & timers" if EXPERT
> ./init/Kconfig: bool "Enable support for printk" if EXPERT
> ./init/Kconfig: bool "BUG() support" if EXPERT
> ./init/Kconfig: bool "Enable ELF core dumps" if EXPERT
> ./init/Kconfig: bool "Enable full-sized data structures for core" if EXPERT
> ./init/Kconfig: bool "Enable futex support" if EXPERT
> ./init/Kconfig: bool "Enable eventpoll support" if EXPERT
> ./init/Kconfig: bool "Enable signalfd() system call" if EXPERT
> ./init/Kconfig: bool "Enable timerfd() system call" if EXPERT
> ./init/Kconfig: bool "Enable eventfd() system call" if EXPERT
> ./init/Kconfig: bool "Use full shmem filesystem" if EXPERT
> ./init/Kconfig: bool "Enable AIO support" if EXPERT
> ./init/Kconfig: bool "Enable IO uring support" if EXPERT
> ./init/Kconfig: bool "Enable madvise/fadvise syscalls" if EXPERT
> ./init/Kconfig: bool "Enable membarrier() system call" if EXPERT
> ./init/Kconfig: bool "Load all symbols for debugging/ksymoops" if EXPERT
> ./init/Kconfig: bool "Enable rseq() system call" if EXPERT
> ./init/Kconfig: bool "Enabled debugging of rseq() system call" if EXPERT
> ./init/Kconfig: bool "PC/104 support" if EXPERT
> ./init/Kconfig: bool "Enable VM event counters for /proc/vmstat" if EXPERT
>
> plus of course
>
> ./arch/x86/Kconfig.cpu: bool "Supported processor vendors" if EXPERT
> ./arch/x86/Kconfig: bool "DMA memory allocation support" if EXPERT
> ./arch/x86/Kconfig: bool "Enable DMI scanning" if EXPERT
> ./arch/x86/Kconfig: bool "Enable support for 16-bit segments" if EXPERT
> ./arch/x86/Kconfig: bool "Enable vsyscall emulation" if EXPERT
> ./arch/x86/Kconfig: bool "Enable the LDT (local descriptor table)" if EXPERT
> ./arch/x86/Kconfig: bool "Read CNB20LE Host Bridge Windows" if EXPERT
> ./arch/x86/Kconfig: bool "ISA bus support on modern systems" if EXPERT
> ./arch/x86/Kconfig: bool "ISA-style DMA support" if (X86_64 && EXPERT)
>
> So nobody noticed you have a structural "this config option actually switches
> this thing _off_" implemented via magic symbol then?

I guess nobody had a problem with it for the last 10 or 15 or 20 years.

> I think the right fix here involves running sed after kconfig does its thing...

I doubt that would work, but if it does, go for it.

--
~Randy