3.17.16 Варианты 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 соответственно.
-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 или относительных вызовов 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-5.5.0/gcc/HPPA-Options.html