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 Это требует 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 Конфигуратор автоматически определит правильные 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>
Пожалуйста, сообщайте об ошибках, обновлениях или предложениях на perlbug@perl.org.
© 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.28.3/perlirix