perlirix
СОДЕРЖАНИЕ
НАЗВАНИЕ
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 Это требует процессора MIPS 64-бит (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.30.3/perlirix