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