Spec-Zone.ru › GCC 9

3.18.19 Параметры 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. Для вызовов sibcall порог всегда ограничен 240 000 байтами.

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

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

Тип длинных вызовов зависит от возможностей ассемблера и линковщика, а также от типа генерируемого кода. Влияние на системы, поддерживающие длинные абсолютные вызовы, и длинные вызовы с относительными адресами или разностью символов PIC, должно быть относительно небольшим. Однако в 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-9.5.0/gcc/HPPA-Options.html

Spec-Zone.ru

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