forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.LINUX

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 09.08.2020, 18:56
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Откуда и где они в 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
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:51. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot