Spec-Zone.ru › Perl 5.38

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

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

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

sh Configure -Dcc=gcc -Duse64bitint

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

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

Некоторые версии компилятора Irix cc, например, 7.3.1.1m (попробуйте cc -version), известны проблемами (coredump) при компиляции 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|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–2023 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.38.0/perlirix

Spec-Zone.ru

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