[devel] GRUB и сородичи

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Чт Дек 21 15:50:52 MSK 2006


Dmitry V. Levin wrote:
> On Thu, Dec 21, 2006 at 03:10:21PM +0300, Sergey Vlasov wrote:
>> On Thu, Dec 21, 2006 at 02:30:14PM +0300, Dmitry V. Levin wrote:
>>> On Thu, Dec 21, 2006 at 01:13:06PM +0300, Anton Farygin wrote:
>>>> Epiphanov Sergei wrote:
>>>>> В сообщении от Wednesday 20 December 2006 11:09 Anton Farygin написал(a):
>>>>>> Но вот основная задача - сборка его на x86_64 пока не выполнима по
>>>>>> причине сломанного флага -m32 в нашей сборочной среде для x86_64.
>>>>> А можно хотя бы в двух словах, почему сломано? Нагуглить ответа я не смог.
>>>>>
>>>> Это уже обсуждалось. Потому что не собрано до конца:
>>>> 1) glibckernheaders должны включать заголовки для x86 на x86_64
>>>> 2) glibc должен быть собран biarch
>>>> 3) gcc наверное тоже надо как-то этак собрать
>>> Я бы сказал что не сломано а не реализовано:
>>> - Каждый пакет с .h-файлами должен содержать специальную магию (в каждом
>>>   файле) для того чтобы эти заголовки можно было использовать для biarch.
>> Видимо, всё-таки не каждый, а содержащий arch-specific заголовки, каковых
>> существенно меньше
> 
> Их несущественно меньше.  Для такого пакета как grub особенно.

Помимо grub вылезает ещё кусочек пакетов...

по памяти - wine на x86_64 для 32bit, плагин для firefox, позволяющий
запускать 32bit linux плагины... и т.д.

> 
>> (помимо заголовков ядра (которые, кстати, в последних
>> kernel-headers-* уже biarch)
> 
> У нас ещё нет последних kernel-headers по умолчанию (вместо
> glibc-kernheaders и пр.).

лично сам отрывал biarch из linux-libc-headers.. в общем это не так
сложно ;)

> 
>>> - В glibc/gcc нужно специальным образом раскладывать файлы.
>> Как я понял, в gcc это получается почти автоматически при наличии во время
>> его сборки правильной glibc.
> 
> Нет, помимо 32-битного glibc нужны 32-битные куски gcc.
> 
>> Собственно, нашему gcc сейчас не хватает
>> только файлов 32/libgcc.* и соответствующего куска в specs (правда, я не
>> смотрел, что должно происходить в районе всяких libstdc++ и прочих ещё
>> менее нужных частей).
> 
> И crt*; грубо говоря, нужен весь /usr/lib/gcc/i586-alt-linux/4.1.1/
> 
>>> - В rpm нужно бэкпортить код для поддержки установки одноимённых пакетов
>>>   под разные архитектуры.
>> Либо делать отдельные пакеты 32bit-* для нужных библиотек, которые
>> собирать только для x86_64.
> 
> В SuSE так делают, кажется.

Да, и по моему не только в SuSE. Это вообще распространённый подход.

> 
>>> Думаю что проще исправить сборку любого пакета чем реализовывать всё это.
>> Как предполагается исправлять сборку пакета, который активно использует,
>> например, i386 asm (тот же grub)?
> 
> Собирать эти куски нативно на i386 и потом использовать.

В случае с wine32 это точно не прокатит.
Разве что собрать его статически.. но подозреваю что и в этом случае
возникнут проблемы.

Rgds,
Rider



Подробная информация о списке рассылки Devel