[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