On Thu, Apr 10, 2008 at 01:55:42AM +0400, Dmitry V. Levin wrote: > Hi, > > On Thu, Apr 10, 2008 at 01:29:44AM +0400, Yury A.Romanov wrote: > > Вчера обнаружил набор софта, позволяющий эмулировать сеть на базе > > оборудования CISCO. Одной из компонент является утилита pemu - захаченный до > > безобразия qemu, который позволяет запускать образы PIX и ASA до 8й версии. > > Попытка сборки с помощью gcc4.1 к успеху не привела, сборка валится где-то > > на "ошибке" в ассемблерном коде. Желания разбираться нету, в апстриме на > > поддержку gcc4.X пока машут рукой. Соответственно вопрос - насколько > > правомерна сборка устаревшим компилятором пакетов для сизифа? > > Сборка правомерна (т.е. легальна), но не приветствуется. > Обычно такая сборка является признаком пакета, заброшенного > мантейнером или апстримом. В случае qemu это не так. Там сейчас транслятор завязан на особенности генерации кода gcc. В qemu для каждой инструкции эмулируемой архитектуры написана реализация на C в виде функции. Во время трансляции qemu для каждой инструции подстовляет тело функции, обрезая код входа и код возврата. Таким образом получается цепочка, которая и выполняется. Таким образом обязательным условием является одна точка входа и одна точка выхода в скомпилированной функции. Для gcc < 4.x оно выполняется, для более новых - нет. Транслятор сейчас активно переписывается, но это процесс долгий. P.S. описание процесса трансляции сильно упрощено. -- Regards, Kirill A. Shutemov + Belarus, Minsk + ALT Linux Team, http://www.altlinux.com/