![](https://habrastorage.org/webt/mm/1i/k3/mm1ik3kgs6r32qd7jzqf8aftiym.png)
В рамках подготовки патчей для Linux 6.9-rc4 Линус Торвальдс решил бороться с парсерами конфигурационных файлов Kconfig, которые не могут правильно обрабатывать табуляции.
Из-за того, что на прошлой неделе в очередь на обработку был поставлен патч, заменяющий табуляцию на пробел в файле трассировки ядра Kconfig (kernel tracing Kconfig file), Линус Торвальдс решил взять дело в свои руки для парсеров Kconfig, которые не могут работать с табуляциями.
Торвальдс написал патч, чтобы намеренно добавить несколько собственных табов в Kconfig, чтобы отбросить любые внешние или сторонние парсеры, которые не могут их правильно обработать.
Торвальдс намеренно добавил эти скрытые табы в общий файл Kconfig для обработки размеров страниц ядра. Таким образом, это обязательно приведёт к серьёзным и заметным ошибкам для любых парсеров, не имеющих правильную обработку табов.
«Commit d96c36004e31 («трассировка: исправить запись FTRACE_RECORD_RECURSION_SIZE Kconfig») удаление скрытой табуляции, поскольку она, очевидно, вызывала ошибку в каком-то стороннем инструменте анализа конфигурации ядра.
Непонятно, что это был за инструмент, но давайте позаботимся о том, чтобы его починили. Потому что, если вы не можете анализировать табуляцию как пробелы, вам не следует анализировать файлы ядра Kconfig.
На самом деле, давайте сделаем такой сбой (breakage) более очевидным, чем какой-нибудь эзотерический параметр размера записи ftrace. Если вы не можете анализировать табы, у вас не будет правильных размеров страницы.
Да, путаница между табуляцией и пробелом, к сожалению, является традиционной особенностью Unix, и команда make известна своими ошибками в этом отношении. Но нет, это не значит, что все в порядке.
Я бы добавил больше случайных табов в наши файлы Kconfig, но не хочу делать все уродливее, чем необходимо. Но это может стать необходимостью, если окажется, что мы увидим больше подобных глупых инструментов»,
— пояснил Торвальдс.