Компромисс достигнут, поскольку сообщество ядра Linux протестует против лечения

    0
    71


    Отказ сообщества ядра Linux по умолчанию для -Werror (превратить все предупреждения в ошибки) для компиляции привел к компромиссу, когда это значение по умолчанию применяется только к тестовым сборкам.

    Создатель и сопровождающий Linux Линус Торвальдс изменил Makefile, используемый для компиляции ядра, так что -Werror был значением по умолчанию, сказав: «Мы действительно всегда должны иметь чистую сборку». Код был объединен с ядром версии 5.15.

    «Я полагаю, что хорошая новость в том, что некоторые сборки все еще проходят успешно», – сказал другой разработчик, отметив 64 сбоя из 153 сборок для разных платформ. «Это, к сожалению, подтверждает смысл этого патча», – ответил Торвальдс.

    «Наши сборки Clang из-за этого стали довольно сложными», – сказал другой, на что Торвальдс сказал: «Clang явно выполняет * УЖАСНУЮ * работу с использованием стека».

    Инженер-программист Google Ник Десолнирс, который работает над компиляцией ядра Linux с помощью Clang и LLVM, пошел дальше, представив патч для отмены изменений. «Хотя я могу оценить намерение включения -Werror, я не думаю, что это правильный инструмент для устранения основной причины того, что разработчики не тестируют определенные наборы инструментов или конфигурации или не принимают существующие отчеты, которые они получают достаточно серьезно … -Werror – это отлично подходит для предотвращения появления новых ошибок, когда кодовая база не содержит предупреждений для всех конфигураций и всех целей, а инструментальная цепочка никогда не обновляется. К сожалению, в настоящее время все вышеперечисленное не относится к ядру Linux », – сказал он. «Это изменение привело к тому, что почти весь наш CI стал красным».

    Десаулнье добавил, что он решительно выступает за исправление предупреждений. «Я признаю иронию того, кто потратил много времени на очистку предупреждений, чтобы выступить за отключение -Werror».

    «Нет, – сказал Торвальдс. “Он был объединен в ответ [to] годы боли, последняя из которых была последней каплей … Я не собираюсь отменять это изменение. Мне, вероятно, придется ограничить это (сделав эту опцию WERROR зависимой от определенных ожиданий), но в основном любой сопровождающий, у которого есть код, вызывающий предупреждения, должен ожидать, что им придется исправить эти предупреждения … и я определенно не уверен, когда «давайте наконец включим -Werror после многих лет разговоров об этом» люди в конечном итоге уходят », но у меня есть тысячи предупреждений». Это ТОЧКА этого коммита “.

    Споры продолжились, и инженер-программист Google Марко Элвер заявил: «Одно предупреждение в какой-то странной подсистеме, наказывающее за ход тестирования всего ядра, неуместно. Серьезность ошибки использования после освобождения, обнаруженной при тестировании во время выполнения, на порядки серьезнее, чем какое-то предупреждение о “неиспользуемой переменной” “.

    Элвер предложил компромисс. «Подходящим вариантом использования для -Werror являются сборки, ориентированные на тестирование компиляции (часто выполняемые разработчиками или системами CI). Отразите это в параметре Kconfig, установив значение по умолчанию для WERROR, соответствующее COMPILE_TEST».

    COMPILE_TEST используется для компиляции ядра, включая драйверы, которые не будут загружены. «Разработчики по-прежнему, в отличие от дистрибьюторов, могут захотеть создать такие драйверы для их компиляции и тестирования… Если вы разработчик и хотите собрать все доступное, скажите Y здесь», – говорится в комментарии к COMPILE_TEST.

    «Это кажется разумным. Речь идет о тестировании сборки», – сказал Торвальдс. Он наклеил пластырь Элвера вчера.

    Подсказка Майклу Ларабелю за то, что он заметил дискуссию, которая дает представление о том, как Торвальдс управляет кодом ядра и его способность находить компромиссы, несмотря на твердые мнения. ®

    Предыдущая статьяКакие миссии ди-джеев есть в GTA Online? Все, что нужно знать
    Следующая статьяRed Dead Online: Лучшие куриные локации
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.