[d-kernel] q: 2.6.3 headers trouble? (nvnet)

Sergey Vlasov vsu at altlinux.ru
Sun Mar 14 20:10:19 MSK 2004


On Sun, Mar 14, 2004 at 10:56:04AM +0200, Michael Shigorin wrote:
> PPS: да, и еще:
> 
> .  %_usrsrc/linux-%kversion-%flavour/gcc_version.inc
> 
> -- тоже не отрабатывает, явно не хватает зависимосит на что-то --
> или схема изменилась?

Это новый вариант указания версии компилятора, который, как обычно, не
успели описать в документации :)

Теперь подход следующий:

- Макросы %kgcc и т.п. больше не используются (поскольку 2.4 и 2.6
  сейчас собираются разными компиляторами, единый макрос, определённый
  в kernel-build-tools, не годится).

- В пакете kernel-headers-modules-%flavour добавляется зависимость на
  соответствующую версию компилятора (т.е. gcc2.96 или gcc3.3).  Этот
  пакет становится обязательным для сборки дополнительных модулей к
  ядру (раньше некоторые пакеты kernel-modules-* собирались без него,
  теперь такой вариант не пройдёт).

- В том же пакете kernel-headers-modules-%flavour добавляется файл
  %_usrsrc/linux-%kversion-%flavour/gcc_version.inc, содержащий
  информацию о версии компилятора:

	export GCC_VERSION=%kgcc_version

  (естественно, подставляется реальное значение, использованное при
  сборке ядра).  Кроме того, в Makefile ядра добавляется строка
  include gcc_version.inc - в результате все модули, собираемые через
  Makefile ядра, будут автоматически собираться нужной версией gcc.

- Из пакетов kernel-modules-* убираются все зависимости на версию
  компилятора - при сборке нужная версия вытянется пакетом
  kernel-headers-modules-%flavour (если ранее этого пакета не было в
  BuildRequires, его нужно добавить).  Если сборка выполняется через
  Makefile ядра, ничего для выбора версии делать не надо.  Если же
  модуль использует собственный makefile, необходимо явно вписать в
  spec:

	.  %_usrsrc/linux-%kversion-%flavour/gcc_version.inc

  В простейшем случае этого достаточно.  В некоторых случаях (ltmodem,
  pctel) такой вариант не проходит (сборочные скрипты используют
  GCC_VERSION для своих целей), тогда приходится использовать
  CC="gcc-$GCC_VERSION" и убирать GCC_VERSION из окружения.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : /pipermail/devel-kernel/attachments/20040314/6799db0f/attachment.bin


More information about the devel-kernel mailing list