Spec-Zone.ru › Perl 5.36

perlirix

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • ОПИСАНИЕ
    • Компиляция 32-битного Perl в Irix
    • Компиляция 64-битного Perl в Irix
    • О версиях компиляторов Irix
    • Проблемы с линковщиком в Irix
    • Malloc в Irix
    • Компиляция с поддержкой потоков в Irix
    • Irix 5.3
  • АВТОР

НАЗВАНИЕ

perlirix - Perl версии 5 на системах Irix

ОПИСАНИЕ

Этот документ описывает различные особенности Irix, которые повлияют на то, как будет скомпилирована и/или работать Perl версии 5 (в дальнейшем просто Perl).

Компиляция 32-битного Perl в Irix

Используйте

sh Configure -Dcc='cc -n32'

для компиляции 32-битного Perl. Не обращайте внимания на -n32, если у вас компилятор версии 7.1 или выше (используйте cc -version для проверки).

(Компиляция 'cc -n32' является стандартной.)

Компиляция 64-битного Perl в Irix

Используйте

sh Configure -Dcc='cc -64' -Duse64bitint

Это требует 64-битного процессора MIPS (R8000, R10000, ...)

Вы также можете использовать

sh Configure -Dcc='cc -64' -Duse64bitall

но это не меняет ничего по сравнению с -Duse64bitint из-за %%%CODE_BLOCK_6%%.

Вы также можете выполнить

sh Configure -Dcc='cc -n32' -Duse64bitint

для использования long longs в качестве 64-битного типа целых чисел, если у вас нет 64-битного процессора.

Если вы используете gcc, то

sh Configure -Dcc=gcc -Duse64bitint

должно быть достаточно, Configure автоматически определит правильные 64-битные настройки.

О версиях компиляторов Irix

Известны проблемы (coredumps) при компиляции perl.c с некоторыми версиями компилятора Irix cc, например, 7.3.1.1m (попробуйте cc -version). Если вы использовали -OPT:fast_io=ON и это произошло, попробуйте убрать его. Если это не помогло, или вы его не использовали, попробуйте настроить другие параметры оптимизации (-LNO, -INLINE, -O3 на -O2 и так далее). Об ошибке компилятора сообщено в SGI. (Allen Smith <easmith@beatrice.rutgers.edu>)

Проблемы с линковщиком в Irix

Если вы получаете сообщения об so_locations, найдите "lddflags" в файле hints/irix_6.sh и внесите предложенные коррективы. (David Billinghurst <David.Billinghurst@riotinto.com.au>)

Malloc в Irix

Не пытайтесь использовать malloc Perl, это приведёт к очень загадочным ошибкам (особенно с -Duse64bitall).

Компиляция с поддержкой потоков в Irix

Запустите Configure с -Duseithreads, чтобы сконфигурировать Perl с интерпретаторными потоками Perl 5.8.0, см. threads.

Для Irix 6.2 с потоками perl необходимо установить следующие исправления:

1404 Irix 6.2 Posix 1003.1b man pages
1645 Irix 6.2 & 6.3 POSIX header file updates
2000 Irix 6.2 Posix 1003.1b support modules
2254 Pthread library fixes
2401 6.2 all platform kernel rollup

ВАЖНО: Без патча 2401 ошибка ядра в Irix 6.2 приведёт к зависанию и сбою вашей машины при запуске многопоточного perl. Irix 6.3 и более поздние версии работают нормально.

Thanks to Hannu Napari <Hannu.Napari@hut.fi> for the IRIX
pthreads patches information.

Irix 5.3

Во время запуска Configure и компиляции вы, скорее всего, получите несколько таких предупреждений:

ld:
The shared object /usr/lib/libm.so did not resolve any symbols.
      You may want to remove it from your link line.

Игнорируйте их: в IRIX 5.3 нет возможности заглушить ld по этому поводу.

Во время компиляции вы увидите это предупреждение из toke.c:

uopt: Warning: Perl_yylex: this procedure not optimized because it
      exceeds size threshold; to optimize this procedure, use -Olimit
      option with value >= 4252.

Игнорируйте предупреждение.

В IRIX 5.3 и с Perl 5.8.1 (Perl 5.8.0 не компилировался в IRIX 5.3) известны следующие ошибки.

Failed Test                  Stat Wstat Total Fail  Failed|Failing List
-----------------------------------------------------------------------
../ext/List/Util/t/shuffle.t    0   139    ??   ??       %  ??
../lib/Math/Trig.t            255 65280    29   12  41.38%  24-29
../lib/sort.t                   0   138   119   72  60.50%  48-119
56 tests and 474 subtests skipped.
Failed 3/811 test scripts, 99.63% okay. 78/75813 subtests failed,
   99.90% okay.

Предполагается, что это ошибки компилятора (по крайней мере, ошибка shuffle.t известна для некоторых систем IRIX 6) и ошибки математической библиотеки (ошибка Trig.t), но так как IRIX 5 давно вышел из поддержки, дальнейшие исправления для IRIX маловероятны. Если вы можете получить gcc для 5.3, вы можете попробовать это тоже, так как gcc в IRIX 6 является известным решением для ошибок shuffle.t и sort.t.

АВТОР

Jarkko Hietaniemi <jhi@iki.fi>

Пожалуйста, сообщайте об ошибках, обновлениях или предложениях по адресу https://github.com/Perl/perl5/issues.

© 1993–2021 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.36.0/perlirix

Spec-Zone.ru

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