#1
|
|||
|
|||
Откуда и где они в Fedora 32 взяли gcc-10.1.1?
Rinat H. Sadretdinow написал(а) к All в Aug 20 17:20:50 по местному времени:
* Originally in ru.linux.redhat * Crossposted in ru.linux Нello All! Не, они или издеваются, или устроили какой-то "Форт Боярд" по принципу "найди то что надо, но неизвестно где!" Зашёл я на сайт NVIDIA и увидел что появилась новая версия драйвера для моего древнего гефорса 660. В принципе и старая работала, но я люблю чтобы всегда был "свежачок". Скачал. Сделал после этого на всякий случай ещё и `sudo dnf update` чтобы новый драйвер установился на самое новое. Мне скачался новый gcc, 10.ДВА.1, и новое ядро, но почему-то скомпилированное gcc-10.1.1: ~~~ [rhs@sys3175 ~]$ cat /usr/src/kernels/5.7.10-201.fc32.x8664/include/generated/compile.h | grep LINUXCOMPILER #define LINUX_COMPILER "gcc version 10.1.1 20200507 (Red Нat 10.1.1-1) (GCC), GNU ld version 2.34-3.fc32" [rhs@sys3175 ~]$ ~~~ В результате при попытке установить новый свежескаченный драйвер NVIDIA для Geforce 660, версии 450.57 он орёт что: ~~~ Compiler version check failed: The major and minor number of the compiler used to compile the kernel: gcc version 10.1.1 20200507 (Red Нat 10.1.1-1) (GCC), GNU ld version 2.34-4.fc32 does not match the compiler used here: cc (GCC) 10.2.1 20200723 (Red Нat 10.2.1-1) Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCНANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ~~~ и соответственно свой DKMS и не компилирует, и не устанавливается. Попробовал найти gcc-10.ОДИН.1, но компилятора gcc-10.1.1 просто напросто НЕТ* *НИГДЕ!!! В обновлениях Федоры нет, есть только последний gcc-10.2.1, а если сделать `dnf downgrade gcc`, то устанавливается gcc-10.0.1. А вот gcc-10.ОДИН.1 которым они собирали ядро нет ни в обновлениях, ни в даунгрейдах, ни в одном репозитории Федоры где я полазил. Откуда RedНat взяли gcc-10.ОДИН.1 чтобы собрать своё ядро, если текущая версия у них gcc-10.ДВА.1, а даунгрейд через dnf у них только до gcc-10.НОЛЬ.1? И ни в одном их репозитории, которые я посмотрел руками (в их родном репозитории, и во всех зеркалах, включая российские) gcc-10.ОДИН.1 нету? Не, я конечно же умный, я мог бы сдаунгрейдить gcc до 10.НОЛЬ.1 и ядро до той версии, которая собиралась ещё gcc-10.НОЛЬ.один и всё бы собралось. Правда и ядро, и gcc у меня стали бы в результате этого не совсем как говно мамонта, но минимум трёх-четырёх с половиной месячной давности. А я так не люблю, я люблю чтобы было всё самое свежее, а не как в каком-нибудь дебиан стабле, в котором всё пятилетней свежести и давно протухло. И поэтому т.к. я не просто умный, а очень умный, я запустил `NVIDIA-Linux-x86_64-450.57.run` с опцией: ~~~ --no-cc-version-check The NVIDIA kernel module should be compiled with the same compiler that was used to compile the currently running kernel. The layout of some Linux kernel data structures may be dependent on the version of gcc used to compile it. The Linux 2.6 kernel modules are tagged with information about the compiler and the Linux kernel's module loader performs a strict version match check. nvidia-installer checks for mismatches prior to building the NVIDIA kernel module and aborts the installation in case of failures. Use this option to override this check. ~~~ и в результате установил таки последний драйвер NVIDIA, избежав проверки совместимости текущей версии gcc с версией gcc, которой было собрано текущее ядро. В результате версия gcc которой ныне мной собран драйвер и версия gcc которой собрана в RedНat'е текущая версия ядра немного несовместимы, на уровне версий компилятора, но надеюсь что ABI всё же не изменилось, ABI меняется совсем уж в крайних случаях, не в таких. Так что всё работает, вот уже часов шесть полёт нормальный. Но всё равно это неаккуратненько как-то! Я так думаю. "А ви как думаете, товарищ Берия?" (C) Иосиф Виссарионович Сталин. Bye! --- GoldED+/LNX 1.1.5-b20170303 |