[devel] gcc3.X

Kirill A. Shutemov =?iso-8859-1?q?kirill_=CE=C1_shutemov=2Ename?=
Пн Дек 15 00:19:26 MSK 2008


On Sun, Dec 14, 2008 at 10:15:12PM +0200, Led wrote:
> On Sunday, 14 December 2008 22:04:31 Kirill A. Shutemov wrote:
> > On Sun, Dec 14, 2008 at 09:58:19PM +0200, Led wrote:
> > > On Sunday, 14 December 2008 21:41:35 Kirill A. Shutemov wrote:
> > > > On Mon, Dec 15, 2008 at 12:33:35AM +0500, Andrey Rahmatullin wrote:
> > > > > On Sun, Dec 14, 2008 at 09:30:23PM +0200, Kirill A. Shutemov wrote:
> > > > > > qemu, до недавнего времени требовался gcc < 4. Неделю назад, эта
> > > > > > зависимость, наконец, исчезла.
> > > > >
> > > > > В virtualbox этот код уже попал?
> > > > > По-моему, сизифный vbox либо собран 3.х, либо собран 4.х и глючит.
> > > >
> > > > Я не в курсе как часто vbox синькается с qemu. В qemu зависимость на
> > > > старый gcc убрали где-то неделю назад.
> > >
> > > AFAIR там gcc3.X нужен был только для не-x86/x86_64 эмуляторов.
> >
> > Это не так.
> >
> > > Например, kvm я всегда собирал gcc4.X (там только x86/x86_64 модули
> > > собираются).
> >
> > kvm не эмулятор. По крайней мере не эмулятор процессора.
> 
> kvm от оригинального qemu отличается только тем, что внём отключена поддержка 
> kqemu и заменена на модуль поддержку kvm.ko, с -no-kvm он работает также как 
> qemu с -no-kqemu

Ранее qemu для динамической трансляции, если упростить, использовал следующую
схему: для каждой инструкции целевой архитектуры писалась C-ая функция,
код компилировался. Когда нужно было транслировать кусок кода целевой
архитектуры в код для хостовой архитектуры, для каждой инструкции ставилась в
соответствие C-ная функция, обрезался return и эти куски склеивались. Всё
работало до тех пор пока в функции была только одна точка выхода. В gcc 4
ситуация изменилась -- он может генерировать более одной точки выхода. И
всё _может_ стать плохо.

Сейчас схема генерации кода в qemu изменилась и отпала необходимость в
gcc3.X.

kvm и kqemu исполняют часть инструкций напрямую на процессоре, поэтому их
эта кухня затрагивает в меньшей степени. Но я не уверен, что вообще не
затрагивает. Ведь привилегированные инструкции, они, насколько я понимаю,
всё равно вынуждены эмулировать. Как они это делают, я не знаю. Я бы не
рискнул собирать код базирующийся на старом qemu с помощью gcc4.X.

-- 
Regards,  Kirill A. Shutemov
 + Belarus, Minsk
 + ALT Linux Team, http://www.altlinux.org/
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20081214/f67a2a66/attachment.bin>


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