Кирилл, спасибо за консультацию. Надо будет почитать, как qemu устроен.<br><br><div><span class="gmail_quote">10.04.08, <b class="gmail_sendername">Kirill A. Shutemov</b> <<a href="mailto:kirill@shutemov.name">kirill@shutemov.name</a>> написал(а):</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thu, Apr 10, 2008 at 01:55:42AM +0400, Dmitry V. Levin wrote:<br> > Hi,<br> ><br> > On Thu, Apr 10, 2008 at 01:29:44AM +0400, Yury A.Romanov wrote:<br> > > Вчера обнаружил набор софта, позволяющий эмулировать сеть на базе<br>
> > оборудования CISCO. Одной из компонент является утилита pemu - захаченный до<br> > > безобразия qemu, который позволяет запускать образы PIX и ASA до 8й версии.<br> > > Попытка сборки с помощью gcc4.1 к успеху не привела, сборка валится где-то<br>
> > на "ошибке" в ассемблерном коде. Желания разбираться нету, в апстриме на<br> > > поддержку gcc4.X пока машут рукой. Соответственно вопрос - насколько<br> > > правомерна сборка устаревшим компилятором пакетов для сизифа?<br>
><br> > Сборка правомерна (т.е. легальна), но не приветствуется.<br> > Обычно такая сборка является признаком пакета, заброшенного<br> > мантейнером или апстримом.<br> <br> <br>В случае qemu это не так. Там сейчас транслятор завязан на особенности<br>
генерации кода gcc.<br> <br> В qemu для каждой инструкции эмулируемой архитектуры написана реализация<br> на C в виде функции. Во время трансляции qemu для каждой инструции<br> подстовляет тело функции, обрезая код входа и код возврата. Таким образом<br>
получается цепочка, которая и выполняется.<br> <br> Таким образом обязательным условием является одна точка входа и одна точка<br> выхода в скомпилированной функции. Для gcc < 4.x оно выполняется, для более<br> новых - нет.<br>
<br> Транслятор сейчас активно переписывается, но это процесс долгий.<br> <br> P.S. описание процесса трансляции сильно упрощено.<br> <br><br> --<br> Regards, Kirill A. Shutemov<br> + Belarus, Minsk<br> + ALT Linux Team, <a href="http://www.altlinux.com/">http://www.altlinux.com/</a><br>
<br>-----BEGIN PGP SIGNATURE-----<br> Version: GnuPG v1.4.9 (GNU/Linux)<br> <br> iEYEARECAAYFAkf926QACgkQbWYnhzC5v6o3wQCfa79R8s9sFc0IJ/avBqaIPi3V<br> IvMAoJNM5z9HsNUsE1EJOQCafHcHhfSO<br> =wBK7<br> -----END PGP SIGNATURE-----<br>
<br>_______________________________________________<br> Devel mailing list<br> <a href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a><br> <a href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a><br>
</blockquote></div><br>