Spec-Zone.ru › GCC 7

3.18.17 Опции HPPA

Эти опции ‘-m’ определены для семейства компьютеров HPPA:

-march=architecture-type

Генерировать код для указанной архитектуры. Выбор для architecture-type — ‘1.0’ для процессоров PA 1.0, ‘1.1’ для PA 1.1 и ‘2.0’ для PA 2.0. Обратитесь к /usr/lib/sched.models на системе HP-UX, чтобы определить подходящую опцию архитектуры для вашей машины. Код, скомпилированный для архитектур с меньшими номерами, работает на архитектурах с большими номерами, но не наоборот.

-mpa-risc-1-0
-mpa-risc-1-1
-mpa-risc-2-0

Синонимы для -march=1.0, -march=1.1 и -march=2.0 соответственно.

-mcaller-copies

Вызывающая функция копирует аргументы функций, передаваемые по скрытой ссылке. Эту опцию следует использовать с осторожностью, так как она несовместима с 32-битным исполняемым окружением по умолчанию. Однако, только агрегаты размером более восьми байт передаются по скрытой ссылке, и эта опция обеспечивает лучшую совместимость с OpenMP.

-mjump-in-delay

Эта опция игнорируется и предоставляется только для совместимости.

-mdisable-fpregs

Запретить использование регистров с плавающей запятой любым способом. Это необходимо для компиляции ядер, которые выполняют леничное переключение контекста регистров с плавающей запятой. Если вы используете эту опцию и пытаетесь выполнить операции с плавающей запятой, компилятор прервётся.

-mdisable-indexing

Запретить компилятору использовать режимы адресации индексирования. Это позволяет избежать некоторых довольно необычных проблем при компиляции кода, сгенерированного MIG, под MACH.

-mno-space-regs

Сгенерировать код, предполагая, что целевая система не имеет регистров пространства. Это позволяет GCC генерировать более быстрые косвенные вызовы и использовать режимы адресации индексирования без масштабирования.

Такой код подходит для систем и ядер PA уровня 0.

-mfast-indirect-calls

Генерировать код, предполагая, что вызовы никогда не пересекают границы пространства. Это позволяет GCC генерировать код, который выполняет более быстрые косвенные вызовы.

Эта опция не работает в присутствии общих библиотек или вложенных функций.

-mfixed-range=register-range

Генерировать код, рассматривая заданный диапазон регистров как фиксированные регистры. Фиксированный регистр — это регистр, который менеджер регистров не может использовать. Это полезно при компиляции ядра. Диапазон регистров задаётся как два регистра, разделённых дефисом. Можно указать несколько диапазонов регистров, разделенных запятыми.

-mlong-load-store

Генерировать последовательности загрузки и сохранения из 3 инструкций, как иногда требуется линковщику HP-UX 10. Это эквивалентно опции ‘+k’ для компиляторов HP.

-mportable-runtime

Использовать переносимые соглашения о вызовах, предложенные HP для систем ELF.

-mgas

Включить использование директив ассемблера, понятных только GAS.

-mschedule=cpu-type

Планировать код в соответствии с ограничениями для типа машины cpu-type. Выбор для cpu-type — ‘700’, ‘7100’, ‘7100LC’, ‘7200’, ‘7300’ и ‘8000’. Обратитесь к /usr/lib/sched.models на системе HP-UX, чтобы определить правильную опцию планирования для вашей машины. Планирование по умолчанию — ‘8000’.

-mlinker-opt

Включить оптимизацию в линковщике HP-UX. Обратите внимание, что это делает символическую отладку невозможной. Также это может вызвать ошибку в линковщиках HP-UX 8 и HP-UX 9, в которой они выдают ложные сообщения об ошибках при линковке некоторых программ.

-msoft-float

Генерировать вывод, содержащий вызовы библиотеки для чисел с плавающей запятой. Предупреждение: необходимые библиотеки не доступны для всех целевых систем HPPA. Обычно используются средства обычного компилятора C для машины, но это нельзя сделать напрямую при кросс-компиляции. Вам нужно самостоятельно организовать предоставление подходящих функций библиотеки для кросс-компиляции.

-msoft-float изменяет соглашение о вызовах в выходном файле; поэтому он полезен только в том случае, если вы компилируете все части программы с этой опцией. В частности, вам нужно скомпилировать libgcc.a, библиотеку, поставляемую с GCC, с -msoft-float, чтобы это работало.

-msio

Генерировать предопределённые значения _SIO, для серверных ввода-вывода. Значение по умолчанию — -mwsio. Это генерирует предопределённые значения __hp9000s700, __hp9000s700__ и _WSIO, для ввода-вывода рабочих станций. Эти опции доступны в HP-UX и HI-UX.

-mgnu-ld

Использовать опции, специфичные для GNU ld. При создании общей библиотеки передаётся -shared линковщику ld. По умолчанию, когда GCC сконфигурирован, явно или неявно, с линковщиком GNU. Эта опция не влияет на то, какой ld вызывается; она только изменяет параметры, передаваемые этому ld. ld, который вызывается, определяется опцией конфигурации --with-ld, путём поиска программ GCC и, наконец, пользовательскими PATH. Линковщик, используемый GCC, можно вывести с помощью ‘which `gcc -print-prog-name=ld`’. Эта опция доступна только в 64-битной версии GCC HP-UX, т.е. сконфигурированной с ‘hppa*64*-*-hpux*’.

-mhp-ld

Использовать опции, специфичные для HP ld. При создании общей библиотеки передаётся -b линковщику ld, а +Accept TypeMismatch — линковщику ld при всех линковках. По умолчанию, когда GCC сконфигурирован, явно или неявно, с линковщиком HP. Эта опция не влияет на то, какой ld вызывается; она только изменяет параметры, передаваемые этому ld. ld, который вызывается, определяется опцией конфигурации --with-ld, путём поиска программ GCC и, наконец, пользовательскими PATH. Линковщик, используемый GCC, можно вывести с помощью ‘which `gcc -print-prog-name=ld`’. Эта опция доступна только в 64-битной версии GCC HP-UX, т.е. сконфигурированной с ‘hppa*64*-*-hpux*’.

-mlong-calls

Генерировать код, использующий длинные последовательности вызовов. Это гарантирует, что вызов всегда сможет достичь генерированных линковщиком «стэбов». По умолчанию длинные вызовы генерируются только тогда, когда расстояние от места вызова до начала функции или трансляционной единицы, в зависимости от случая, превышает предварительно заданный предел, установленный используемым типом ветвления. Пределы для обычных вызовов составляют 7 600 000 и 240 000 байт соответственно для архитектур PA 2.0 и PA 1.X. Вызовы «сынков» (sibcalls) всегда ограничены 240 000 байтами.

Расстояния измеряются от начала функций при использовании опции -ffunction-sections или при одновременном использовании опций -mgas и -mno-portable-runtime под HP-UX с линковщиком SOM.

Обычно нежелательно использовать эту опцию, так как она снижает производительность. Однако она может быть полезна в больших приложениях, особенно при частичной линковке для сборки приложения.

Типы используемых длинных вызовов зависят от возможностей ассемблера и линковщика, а также от типа генерируемого кода. Влияние на системы, поддерживающие длинные абсолютные вызовы и длинные вызовы с разностью символов PIC или относительными к pc, должно быть относительно небольшим. Однако косвенный вызов используется в 32-битных системах ELF в коде PIC и является довольно длинным.

-munix=unix-std

Генерировать предопределения компилятора и выбирать начальный файл для указанного UNIX-стандарта. Выбор для unix-std — ‘93’, ‘95’ и ‘98’. ‘93’ поддерживается во всех версиях HP-UX. ‘95’ доступна в HP-UX 10.10 и более поздних версиях. ‘98’ доступна в HP-UX 11.11 и более поздних версиях. Значения по умолчанию — ‘93’ для HP-UX 10.00, ‘95’ для HP-UX 10.10 до 11.00 и ‘98’ для HP-UX 11.11 и более поздних версий.

-munix=93 предоставляет те же предопределения, что и GCC 3.3 и 3.4. -munix=95 предоставляет дополнительные предопределения для XOPEN_UNIX и _XOPEN_SOURCE_EXTENDED, а также начальный файл unix95.o. -munix=98 предоставляет дополнительные предопределения для _XOPEN_UNIX, _XOPEN_SOURCE_EXTENDED, _INCLUDE__STDC_A1_SOURCE и _INCLUDE_XOPEN_SOURCE_500, а также начальный файл unix98.o.

Важно отметить, что эта опция изменяет интерфейсы различных процедур библиотеки. Она также влияет на рабочее поведение библиотеки C. Поэтому при использовании этой опции необходима чрезвычайная осторожность.

Код библиотеки, предназначенный для работы с более чем одним UNIX-стандартом, должен проверять, устанавливать и восстанавливать переменную __xpg4_extended_mask соответствующим образом. Большинство программного обеспечения GNU не предоставляет эту возможность.

-nolibdld

Запретить генерацию опций линковки для поиска libdld.sl, когда опция -static указана в HP-UX 10 и более поздних версиях.

-static

Реализация setlocale в libc HP-UX зависит от libdld.sl. Нет архивной версии libdld.sl. Поэтому, когда указана опция -static, требуются специальные опции линковки для разрешения этой зависимости.

В HP-UX 10 и более поздних версиях драйвер GCC добавляет необходимые опции для линковки с libdld.sl, когда указана опция -static. Это приводит к тому, что результирующий двоичный файл становится динамическим. В 64-битной версии линковщики генерируют динамические двоичные файлы по умолчанию в любом случае. Опция -nolibdld может использоваться для предотвращения добавления драйвером GCC этих опций линковки.

-threads

Добавить поддержку многопоточности с библиотекой dce thread под HP-UX. Эта опция устанавливает флаги как для препроцессора, так и для линковщика.

Далее: Опции IA-64, Предыдущий: Опции H8/300, Вверх: Опции подмоделей [Содержание][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.5.0/gcc/HPPA-Options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API