[mdk-re] gcc & -march
Yura Zotov
=?iso-8859-1?q?yznews_=CE=C1_hotbox=2Eru?=
Вс Май 20 14:45:01 MSD 2001
On Sun, May 20, 2001 at 01:23:46PM +0300, Alexander Bokovoy wrote:
> On Sun, May 20, 2001 at 01:54:07AM +0400, Баталов Григорий wrote:
> > On Sun, 20 May 2001 01:17:18 +0400
> > Yura Zotov <yznews на hotbox.ru> wrote:
> >
> > > Скажите, пожалуйста, а как gcc узнает, под какую архитектуру делать
> > > объектники, если не задан явно параметр -march? Под какой процессор он при
> > > этом генерит код?
> >
> > Неужели под ту, которая в $HOSTTYPE? :)
> Нет. Если не указана явно архитектура, то на ia32 генерируется код,
> который гарантированно будет работать с i386. Даже если Вы укажете
> -mcpu=i686, но не укажете -march=i686, то все равно код сгенерируется
> только такой, который можно выполнить на i386, хотя вызовы и распределение
> переменных по регистрам будут оптимизированы под i686.
>
> Аналогично и для других архитектур -- по умолчанию код генерируется так,
> чтобы работать на самой слабой машине в серии.
Я тут взял и попробовал скомпилировать ОЧЕНЬ простую программу для разных
-march=i386|i486|i586|i686|athlon и без явного указания -march. Получилось
6 *.o по ~1.3K, причем 5 из них были по размеру одинаковы и при беглом взгляде
внутрь тоже. Отличался от всех только полученный с -march=i386.
В чем прикол?
> --
> Sincerely yours, Alexander Bokovoy
> The Midgard Project | ALT Linux Team | Minsk Linux Users Group
> www.midgard-project.org | www.altlinux.ru | www.minsk-lug.net
> -- You won't skid if you stay in a rut.
> -- Frank Hubbard
--
Юрий А. Зотов
Подробная информация о списке рассылки community