Spec-Zone.ru › GCC 8

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. Для вызовов-сыновей порог всегда составляет 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-8.5.0/gcc/HPPA-Options.html

Spec-Zone.ru

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