Spec-Zone.ru › Perl 5.32

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 из-за cc -64.

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

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

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

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

sh Configure -Dcc=gcc -Duse64bitint

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

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

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

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

Если вы получаете сообщения об so_locations, то найдите в файле hints/irix_6.sh строку "lddflags" и выполните предложенные корректировки. (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  List of Failed
-----------------------------------------------------------------------
../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–2020 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.32.0/perlirix

Spec-Zone.ru

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