Опции для gcc (нестандартный вопрос)

В make.conf у меня прописано march=core2. Но вот вывод команды меня очень сильно смутил:

gcc -c -Q -march=core2 --help=target
Следующие ключи не зависят от целевой архитектуры:
  -m128bit-long-double                  [выключено]
  -m32                                  [выключено]
  -m3dnow                               [выключено]
  -m3dnowa                              [выключено]
  -m64                                  [включено]
  -m80387                               [включено]
  -m96bit-long-double                   [включено]
  -mabm                                 [выключено]
  -maccumulate-outgoing-args            [выключено]
  -malign-double                        [выключено]
  -malign-functions=
  -malign-jumps=
  -malign-loops=
  -malign-stringops                     [включено]
  -march=                               core2
  -masm=
  -mbranch-cost=
  -mcld                                 [выключено]
  -mcmodel=
  -mcx16                                [включено]
  -mfancy-math-387                      [включено]
  -mfp-ret-in-387                       [включено]
  -mfpmath=
  -mfused-madd                          [включено]
  -mglibc                               [включено]
  -mhard-float                          [включено]
  -mieee-fp                             [включено]
  -minline-all-stringops                [выключено]
  -minline-stringops-dynamically        [выключено]
  -mintel-syntax                        [выключено]
  -mlarge-data-threshold=
  -mmmx                                 [выключено]
  -mms-bitfields                        [выключено]
  -mno-align-stringops                  [выключено]
  -mno-fancy-math-387                   [выключено]
  -mno-push-args                        [выключено]
  -mno-red-zone                         [выключено]
  -mno-sse4                             [включено]
  -momit-leaf-frame-pointer             [выключено]
  -mpc
  -mpopcnt                              [выключено]
  -mpreferred-stack-boundary=
  -mpush-args                           [включено]
  -mrecip                               [выключено]
  -mred-zone                            [включено]
  -mregparm=
  -mrtd                                 [выключено]
  -msahf                                [включено]
  -msoft-float                          [выключено]
  -msse                                 [выключено]
  -msse2                                [выключено]
  -msse3                                [выключено]
  -msse4                                [выключено]
  -msse4.1                              [выключено]
  -msse4.2                              [выключено]
  -msse4a                               [выключено]
  -msse5                                [выключено]
  -msseregparm                          [выключено]
  -mssse3                               [выключено]
  -mstack-arg-probe                     [выключено]
  -mstackrealign                        [выключено]
  -mstringop-strategy=
  -mtls-dialect=
  -mtls-direct-seg-refs                 [включено]
  -mtune=                               core2
  -muclibc                              [выключено]
  -mveclibabi=

Так может быть всё таки стоит дописать ключи вида -mmmx ,-msse и так далее???

Не стоит

Не стоит. Вопрос разрешился :)

Alexander Monakov <amonakov@ispras.ru> writes:

> > On Wed, Apr 22, 2009 at 06:30:39AM -0700, Ian Lance Taylor wrote:
>> >> Oleg Kravchenko <oleg@kaa.org.ua> writes:
>> >> 
>>> >> > Why gcc say what mmx, sse, sse2 is disabled?
>>> >> >
>>> >> > $ gcc -march=nocona -mtune=nocona --help=target
>> >> 
>> >> They are disabled because you didn't explicitly request them.
>> >> 
>> >> Ian
> >
> > Sorry, Ian, but is this behaviour really intended?  These extensions are
> > enabled by gcc/config/i386/i386.c:override_options() for -march=nocona, and if
> > one uses -fverbose-asm, they are really listed as enabled there.  IMHO, in
> > this situation behaviour of -Q --help=target and -fverbose-asm seems
> > contradictory and a bit confusing to the user.
> >
> > Perhaps GCC could do better by calling OVERRIDE_OPTIONS (currently in
> > toplev.c:process_options()) before calling decode_options()?  Is it worth a
> > bugzilla entry?

As I see it, --help=target reports the state of the command line
options.  I agree that this behaviour can be confusing, but I also think
it would be difficult to fix in a consistent way across targets.  But,
yes, I think this would be worth an enhancement request in bugzilla to
avoid user confusion.  Thanks.

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Спасибо за участие и

Спасибо за участие и поддержку.

Интересно посмотреть что ответят в багзилле :)

Если не тяжело, переведите на

Если не тяжело, переведите на русский, мне остались непонятны некоторые моменты из переписки.
Ну и второй вопрос: а разве когда запускаем какой-нибудь emerge, он не даёт gcc именно те команды, что записаны в make.conf? Вроде именно они и перечисляются в консоли?

.

Несколько кратколитературный перевод.
- Почем gcc говорит, что mmx, sse, sse2 выключены?
- Потому что ты не упомянул их в $ gcc -march=nocona -mtune=nocona --help=target
- Но разве это нормально? Если указать -fverbose-asm то gcc говорит, что они включены. ИМХО такое поведение "-Q --help=target" путает людей.
- Я считаю, --help=target касается опций в командной строке. Согласен, путает. Но пофиксить будет тяжело, хотя в bugzill-у написать следует.

Это подпись, которую невозможно истолковать неправильно

Спасибо за комментарии.

Спасибо за комментарии. Кстати, я только начинаю вникать в Генту, что скажите по поводу данной статьи и рекомендаций в ней?
http://www.insidepro.com/kk/231/231r.shtml
А что это за команда или опция -fverbose-asm??? Как её проверить?

Запостили в

Запостили в багзиллу:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39851

Слу

andribas написал(а):
Запостили в багзиллу:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39851

Слу andribas благодаря нашему спору мы нашли багу :))

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Сложности перевода ...

Походу очень серьезный баг в локализации

Запустил ту же команду на своей Женьке ( она у меня англоязычная ) и вот что получил

gcc -c -Q -march=core2 --help=target
The following options are target specific:

что по русский будет звучать как

Следующие ключи зависят от целевой архитектуры:

что меняет смысл вывода на противоположный !!!!!!!

два вопроса:
- кто-нибудь из гуру подтвердите мою догадку. А то как-то слабо вериться что переводчики могли настолько протупить
- баги на локализацию постить куда?

Прочитай пост выше, это бага

Прочитай пост выше, это бага не локализации, а опции --help=target

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Извините мож это я туплю . Но

Извините мож это я туплю . Но я так и не понял
Упомянутый баг говорит про то что вывод gcc возвращает не верные значения опции.
Я же веду разговор про перевод предложения с английского на русский.

Каким образом связаны эти две вещи?

А сорри :)

edrozim написал(а):
Извините мож это я туплю . Но я так и не понял
Упомянутый баг говорит про то что вывод gcc возвращает не верные значения опции.
Я же веду разговор про перевод предложения с английского на русский.

Каким образом связаны эти две вещи?

А сорри :) Я думал мы обсуждаем опции :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".