perlaix
СОДЕРЖАНИЕ
- НАЗВАНИЕ
- ОПИСАНИЕ
- Компиляция Perl 5 на AIX
- Поддерживаемые компиляторы
- Несовместимость с AIX Toolbox lib gdbm
- Perl 5 успешно скомпилирован и протестирован на:
- Создание динамических расширений на AIX
- Использование больших файлов с Perl
- Потоковый Perl
- 64-битный Perl
- Длинные вещественные числа
- Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (потоковый/32-битный)
- Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (32-битный)
- Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (потоковый/64-битный)
- Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (64-битный)
- Компиляция Perl 5 на AIX 7.1.0
- Компиляция Perl 5 на более старых версиях AIX до 4.3.3
- Уровень ОС
- Создание динамических расширений на AIX < 5L
- Компилятор IBM ANSI C
- Параметр usenm
- Использование gcc GNU для компиляции Perl
- Использование больших файлов с Perl < 5L
- Потоковый Perl < 5L
- 64-битный Perl < 5L
- AIX 4.2 и расширения, использующие C++ со статическими переменными
- АВТОРЫ
НАЗВАНИЕ
perlaix - Perl версия 5 на системах IBM AIX (UNIX)
ОПИСАНИЕ
В этом документе описываются различные особенности операционной системы IBM UNIX AIX, которые повлияют на компиляцию и/или работу Perl версии 5 (в дальнейшем просто Perl).
Компиляция Perl 5 на AIX
Для получения информации о компиляторах на более старых версиях AIX, см. "Компиляция Perl 5 на более старых версиях AIX до 4.3.3".
При компиляции Perl необходимо использовать компилятор ANSI C. AIX по умолчанию не поставляется с ANSI-совместимым компилятором C, но двоичные сборки gcc для AIX широко доступны. Версия gcc также включена в AIX Toolbox, который поставляется с AIX.
Поддерживаемые компиляторы
В настоящее время все версии компилятора ANSI/C IBM "xlc", "xlc_r", "cc", "cc_r" или "vac" будут работать для сборки Perl, если этот компилятор работает на вашей системе.
Если вы планируете связать Perl с любым модулем, которому требуется поддержка потоков, например DBD::Oracle, лучше использовать версию компилятора _r. Это не создаст потоковый Perl, но обеспечит возможность работы с потоками в Perl. См. также "Потоковый Perl" ниже.
На момент написания (2010-09) только компилятор IBM XL C for AIX или IBM XL C/C++ for AIX поддерживается IBM на AIX 5L/6.1/7.1.
Следующие версии компиляторов в настоящее время поддерживаются IBM:
IBM XL C and IBM XL C/C++ V8, V9, V10, V11 Компилятор XL C for AIX интегрирован в компилятор XL C/C++ for AIX и поэтому также поддерживается.
Если вы выберете XL C/C++ V9, вам потребуется установленная APAR IZ35785, иначе интегрированный SDBM_File не будет компилироваться должным образом из-за ошибки оптимизации. Вы можете обойти эту проблему, добавив -qipa к флагам оптимизации (-Doptimize='-O -qipa'). Исправление для APAR IZ35785, решающее эту проблему, доступно от IBM (патч-запрос от апреля 2009 года для XL C/C++ Enterprise Edition для AIX, V9.0).
Если вы выберете XL C/C++ V11, вам потребуется установленный патч (или более поздняя версия) от апреля 2010 года, иначе у вас не будет работающей версии Perl.
Perl можно скомпилировать с помощью компилятора ANSI C от IBM или с помощью gcc. Рекомендуется использовать первый вариант, так как он не только без проблем может скомпилировать Perl, но и может использовать функции, перечисленные ниже, которые требуют использования командных флагов, специфичных для компилятора IBM.
Если вы решите использовать gcc, убедитесь, что ваша установка актуальна и полна, и обязательно прочитайте файл INSTALL Perl для получения более подробной информации о gcc. Пожалуйста, сообщите команде разработчиков обо всех препятствиях, с которыми вам пришлось столкнуться.
Несовместимость с AIX Toolbox lib gdbm
Если на вашей системе установлена версия lib gdbm из AIX Toolbox < 1.8.3-5, то Perl не будет работать. Эта библиотека содержит заголовочные файлы /opt/freeware/include/gdbm/dbm.h|ndbm.h, которые конфликтуют с версиями систем AIX. Библиотека lib gdbm будет автоматически удалена из нужных библиотек, если будет обнаружено присутствие одного из этих двух заголовочных файлов. Если вы хотите скомпилировать Perl с поддержкой GDBM, установите, пожалуйста, по крайней мере gdbm-devel-1.8.3-5 (или выше).
Perl 5 успешно скомпилирован и протестирован на:
Perl | AIX Level | Compiler Level | w th | w/o th
-------+---------------------+-------------------------+------+-------
5.12.2 |5.1 TL9 32 bit | XL C/C++ V7 | OK | OK
5.12.2 |5.1 TL9 64 bit | XL C/C++ V7 | OK | OK
5.12.2 |5.2 TL10 SP8 32 bit | XL C/C++ V8 | OK | OK
5.12.2 |5.2 TL10 SP8 32 bit | gcc 3.2.2 | OK | OK
5.12.2 |5.2 TL10 SP8 64 bit | XL C/C++ V8 | OK | OK
5.12.2 |5.3 TL8 SP8 32 bit | XL C/C++ V9 + IZ35785 | OK | OK
5.12.2 |5.3 TL8 SP8 32 bit | gcc 4.2.4 | OK | OK
5.12.2 |5.3 TL8 SP8 64 bit | XL C/C++ V9 + IZ35785 | OK | OK
5.12.2 |5.3 TL10 SP3 32 bit | XL C/C++ V11 + Apr 2010 | OK | OK
5.12.2 |5.3 TL10 SP3 64 bit | XL C/C++ V11 + Apr 2010 | OK | OK
5.12.2 |6.1 TL1 SP7 32 bit | XL C/C++ V10 | OK | OK
5.12.2 |6.1 TL1 SP7 64 bit | XL C/C++ V10 | OK | OK
5.13 |7.1 TL0 SP1 32 bit | XL C/C++ V11 + Jul 2010 | OK | OK
5.13 |7.1 TL0 SP1 64 bit | XL C/C++ V11 + Jul 2010 | OK | OK
w th = with thread support
w/o th = without thread support
OK = tested Успешное тестирование означает, что все запуски "make test" завершаются результатом 100% OK. Все тесты проводились с установленным -Duseshrplib.
Все тесты были проведены на самой старой поддерживаемой технологии AIX с применением последнего пакета поддержки. Если протестированная версия AIX не поддерживается (AIX 4.3.3, 5.1, 5.2), то использовался последний доступный уровень поддержки.
Создание динамических расширений на AIX
Начиная с Perl 5.7.2 (и, следовательно, 5.8.x / 5.10.x / 5.12.x) и AIX 4.3 или более поздних версий, Perl использует собственный интерфейс динамической загрузки AIX в так называемом режиме динамической компоновки, вместо эмулированного интерфейса, который использовался в выпусках Perl 5.6.1 и более ранних версиях или, для релизов AIX 4.2 и более ранних версий. Это изменение нарушает обратную совместимость с скомпилированными модулями из более ранних релизов Perl. Изменение было внесено для повышения совместимости Perl с другими приложениями, такими как Apache/mod_perl, которые используют собственный интерфейс AIX. Это изменение также позволяет использовать код C++ со статическими конструкторами и деструкторами в расширениях Perl, что было невозможно с использованием эмулированного интерфейса.
Настоятельно рекомендуется использовать новый интерфейс.
Использование больших файлов с Perl
Не должно вызвать проблем.
Потоковый Perl
Не должно вызвать проблем с AIX 5.1 / 5.2 / 5.3 / 6.1 / 7.1.
IBM использует системный Perl AIX (V5.6.0 на AIX 5.1 и V5.8.2 на AIX 5.2 / 5.3 и 6.1; V5.8.8 на AIX 5.3 TL11 и AIX 6.1 TL4; V5.10.1 на AIX 7.1) для некоторых скриптов систем AIX. Если вы измените ссылки в /usr/bin с системного Perl AIX (/usr/opt/perl5) на недавно скомпилированный Perl, то вы получите те же функции, что и с системным Perl IBM AIX, если используются потоковые параметры.
Скомпилированный с поддержкой потоков Perl работает также на AIX 5.1, но системный сборка IBM Perl (Perl v5.6.0) не потоковая на AIX 5.1.
Perl 5.12 и более новые версии несовместимы с системным файлом perl.libext.
64-битный Perl
Если ваша система AIX установлена с поддержкой 64-битности, вы можете ожидать, что 64-битные конфигурации будут работать. Если вы хотите использовать 64-битный Perl на AIX 6.1, вам потребуется APAR для исправления ошибки в libc.a, которая влияет на функции (n)dbm_XXX. Номер APAR для этой проблемы — IZ39077.
Если вам нужно больше памяти (больший сегмент данных) для ваших программ Perl, вы можете установить:
/etc/security/limits
default: (or your user)
data = -1 (default is 262144 * 512 byte) По умолчанию размер ограничен 128 МБ. -1 удаляет это ограничение. Если "make test" завершится ошибкой, измените /etc/security/limits, как указано выше.
Длинные вещественные числа
IBM называет свою реализацию длинных вещественных чисел 128-битными, но это не IEEE 128-битные ("четверная точность"), которые давали бы 116 бит мантиссы (и не реализованы в оборудовании), а специальная программная реализация под названием "double-double", которая дает 106 бит мантиссы.
Похоже, есть различные проблемы в этой реализации длинных вещественных чисел. Если Configure обнаруживает эту неисправность, он отключит поддержку длинных вещественных чисел. Это можно переопределить с помощью явного -Duselongdouble (или -Dusemorebits, что включает как длинные вещественные числа, так и 64-битные целые числа). Если вы решите включить длинные вещественные числа, для большинства проблем Perl реализованы обходные пути, но обработка особых значений бесконечности и NaN остается плохо реализованной: например, бесконечность плюс ноль приводит к NaN.
Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (потоковый/32-битный)
С помощью следующих параметров вы получите потоковую версию Perl, которая проходит все тесты make в потоковом 32-битном режиме, что является стандартной конфигурацией для сборок Perl, поставляемых с AIX.
rm config.sh
./Configure \
-d \
-Dcc=cc_r \
-Duseshrplib \
-Dusethreads \
-Dprefix=/usr/opt/perl5_32 Параметр -Dprefix установит Perl в каталог, параллельно установленному системному Perl IBM AIX.
Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (32-битный)
С помощью следующих параметров вы получите версию Perl, которая проходит все тесты make в 32-битном режиме.
rm config.sh
./Configure \
-d \
-Dcc=cc_r \
-Duseshrplib \
-Dprefix=/usr/opt/perl5_32 Параметр -Dprefix установит Perl в каталог, параллельно установленному системному Perl IBM AIX.
Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (потоковый/64-битный)
С помощью следующих параметров вы получите потоковую версию Perl, которая проходит все тесты make в 64-битном режиме.
export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
rm config.sh
./Configure \
-d \
-Dcc=cc_r \
-Duseshrplib \
-Dusethreads \
-Duse64bitall \
-Dprefix=/usr/opt/perl5_64 Рекомендованные параметры AIX 5.1/5.2/5.3/6.1 и 7.1 (64-битный)
С помощью следующих параметров вы получите версию Perl, которая проходит все тесты make в 64-битном режиме.
export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
rm config.sh
./Configure \
-d \
-Dcc=cc_r \
-Duseshrplib \
-Duse64bitall \
-Dprefix=/usr/opt/perl5_64 Параметр -Dprefix установит Perl в каталог, параллельно установленному системному Perl IBM AIX.
Если вы выберете gcc для компиляции 64-битного Perl, вам необходимо добавить следующий параметр:
-Dcc='gcc -maix64' Компиляция Perl 5 на AIX 7.1.0
Регрессия в AIX 7 вызывает сбой в make test в Time::Piece во время летнего времени. Исправление предоставляется в APAR IV16514. Быстрый тест, чтобы проверить, требуется ли оно, предполагая, что в настоящее время в Восточном времени действует летнее время, заключался бы в выполнении TZ=EST5 date +%Z . Это вернёт EST обычно, но ничего, если у вас есть проблема.
Компиляция Perl 5 на более старых версиях AIX до 4.3.3
Ввиду того, что AIX 4.3.3 достиг конца жизненного цикла 31 декабря 2003 года, эта информация предоставляется как есть. Версии Perl до Perl 5.8.9 можно было скомпилировать на AIX до 4.3.3 с помощью следующих настроек (результаты могут отличаться):
При компиляции Perl необходимо использовать компилятор ANSI C. AIX по умолчанию не поставляет совместимый с ANSI компилятор C, но двоичные сборки gcc для AIX широко доступны.
На момент написания AIX поддерживает два разных родных компилятора C, за которые нужно платить: xlC и vac. Если вы решите использовать любой из этих двух (что значительно проще, чем использовать gcc), обязательно обновите до последней доступной версии патча. В настоящее время:
xlC.C 3.1.4.10 or 3.6.6.0 or 4.0.2.2 or 5.0.2.9 or 6.0.0.3
vac.C 4.4.0.3 or 5.0.2.6 or 6.0.0.1 Обратите внимание, что xlC имеет версию ОС в имени начиная с версии 4.0.2.0, поэтому вы найдете xlC.C для AIX-5.0 в качестве пакета
xlC.aix50.rte 5.0.2.0 or 6.0.0.3 подверсии не являются одинаковыми «последними» для всех версий ОС. Например, последняя версия xlC-5 на aix41 — 5.0.2.9, а на aix43 — 5.0.2.7.
Perl можно скомпилировать с помощью ANSI-компилятора IBM или с помощью gcc. Первый вариант рекомендуется, так как он не только без проблем компилирует Perl, но и может использовать возможности, перечисленные ниже, которые требуют использования флагов командной строки, специфичных для компилятора IBM.
Уровни патчей компилятора IBM 5.0.0.0 и 5.0.1.0 содержат ошибки оптимизации компилятора, которые влияют на компиляцию perl.c и regcomp.c соответственно. Если конфигурация Perl обнаруживает эти уровни патчей компилятора, оптимизация отключается для указанных файлов исходного кода. Рекомендуется обновить до версии не ниже 5.0.2.0.
Если вы решите использовать gcc, убедитесь, что ваша установка актуальна и полная, и обязательно ознакомьтесь с файлом INSTALL для Perl, содержащим дополнительные сведения, специфичные для gcc. Пожалуйста, сообщите команде разработчиков о любых сложностях, с которыми вы столкнулись.
Уровень ОС
Перед установкой патчей для компилятора IBM C необходимо знать уровень патчей операционной системы. Команда IBM «oslevel» отобразит базовый уровень, но не всегда является полной (в этом примере oslevel показывает 4.3.NULL, в то время как система может работать в основном с 4.3.THREE):
# oslevel
4.3.0.0
# lslpp -l | grep 'bos.rte '
bos.rte 4.3.3.75 COMMITTED Base Operating System Runtime
bos.rte 4.3.2.0 COMMITTED Base Operating System Runtime
# То же самое может произойти с AIX 5.1 или другими уровнями ОС. Кроме того, Perl не может быть построен без bos.adt.syscalls и bos.adt.libm.
# lslpp -l | egrep "syscalls|libm"
bos.adt.libm 5.1.0.25 COMMITTED Base Application Development
bos.adt.syscalls 5.1.0.36 COMMITTED System Calls Application
# Создание динамических расширений на AIX < 5L
AIX поддерживает динамически загружаемые объекты, а также общие библиотеки. Общие библиотеки по умолчанию оканчиваются суффиксом .a, что немного вводит в заблуждение, так как архив может содержать статические и динамические элементы. Для динамически загружаемых объектов Perl мы используем суффикс .so, также используемый во многих других платформах.
Обратите внимание, что начиная с Perl 5.7.2 (и, следовательно, 5.8.0) и AIX 4.3 или более поздних версий Perl использует родной динамический интерфейс загрузки AIX в так называемом режиме связывания во время выполнения вместо эмулированного интерфейса, который использовался в выпусках Perl 5.6.1 и более ранних версиях, или в выпусках AIX 4.2 и более ранних. Это изменение нарушает обратную совместимость с скомпилированными модулями из более ранних выпусков Perl. Изменение было внесено для повышения совместимости Perl с другими приложениями, такими как Apache/mod_perl, использующими родной интерфейс AIX. Это изменение также позволяет использовать код C++ со статическими конструкторами и деструкторами в расширениях Perl, что не было возможно с использованием эмулированного интерфейса.
Компилятор ANSI C от IBM
Можно использовать все значения по умолчанию для Configure.
Если вы выбрали использование vac 4, обязательно выполните 4.4.0.3. Более старые версии могут привести к проблемам в дальнейшем. Для vac 5 обязательно выполните не менее 5.0.1.0, но настоятельно рекомендуется использовать vac 5.0.2.6 или более поздние версии. Обратите внимание, что с момента удаления IBM vac 5.0.2.1–5.0.2.5 из хранилища программного обеспечения эти версии следует считать устаревшими.
Вот краткое руководство по обновлению компилятора до последней версии. Конечно, это может меняться. Вы можете обновлять только версии, доступные по ftp-обновлениям, если первые три группы цифр совпадают (где вы можете пропустить промежуточные версии в отличие от патчей в снимках разработчиков Perl), или на одну версию выше, если «основная» версия доступна. Другими словами, патчи компилятора AIX являются накопительными.
vac.C.4.4.0.1 => vac.C.4.4.0.3 is OK (vac.C.4.4.0.2 not needed)
xlC.C.3.1.3.3 => xlC.C.3.1.4.10 is NOT OK (xlC.C.3.1.4.0 is not
available)
# ftp ftp.software.ibm.com
Connected to service.boulder.ibm.com.
: welcome message ...
Name (ftp.software.ibm.com:merijn): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
... accepted login stuff
ftp> cd /aix/fixes/v4/
ftp> dir other other.ll
output to local-file: other.ll? y
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ftp> dir xlc xlc.ll
output to local-file: xlc.ll? y
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ftp> bye
... goodbye messages
# ls -l *.ll
-rw-rw-rw- 1 merijn system 1169432 Nov 2 17:29 other.ll
-rw-rw-rw- 1 merijn system 29170 Nov 2 17:29 xlc.ll На AIX 4.2 с использованием xlC, мы продолжаем:
# lslpp -l | fgrep 'xlC.C '
xlC.C 3.1.4.9 COMMITTED C for AIX Compiler
xlC.C 3.1.4.0 COMMITTED C for AIX Compiler
# grep 'xlC.C.3.1.4.*.bff' xlc.ll
-rw-r--r-- 1 45776101 1 6286336 Jul 22 1996 xlC.C.3.1.4.1.bff
-rw-rw-r-- 1 45776101 1 6173696 Aug 24 1998 xlC.C.3.1.4.10.bff
-rw-r--r-- 1 45776101 1 6319104 Aug 14 1996 xlC.C.3.1.4.2.bff
-rw-r--r-- 1 45776101 1 6316032 Oct 21 1996 xlC.C.3.1.4.3.bff
-rw-r--r-- 1 45776101 1 6315008 Dec 20 1996 xlC.C.3.1.4.4.bff
-rw-rw-r-- 1 45776101 1 6178816 Mar 28 1997 xlC.C.3.1.4.5.bff
-rw-rw-r-- 1 45776101 1 6188032 May 22 1997 xlC.C.3.1.4.6.bff
-rw-rw-r-- 1 45776101 1 6191104 Sep 5 1997 xlC.C.3.1.4.7.bff
-rw-rw-r-- 1 45776101 1 6185984 Jan 13 1998 xlC.C.3.1.4.8.bff
-rw-rw-r-- 1 45776101 1 6169600 May 27 1998 xlC.C.3.1.4.9.bff
# wget ftp://ftp.software.ibm.com/aix/fixes/v4/xlc/xlC.C.3.1.4.10.bff
# На AIX 4.3 с использованием vac, мы продолжаем:
# lslpp -l | grep 'vac.C '
vac.C 5.0.2.2 COMMITTED C for AIX Compiler
vac.C 5.0.2.0 COMMITTED C for AIX Compiler
# grep 'vac.C.5.0.2.*.bff' other.ll
-rw-rw-r-- 1 45776101 1 13592576 Apr 16 2001 vac.C.5.0.2.0.bff
-rw-rw-r-- 1 45776101 1 14133248 Apr 9 2002 vac.C.5.0.2.3.bff
-rw-rw-r-- 1 45776101 1 14173184 May 20 2002 vac.C.5.0.2.4.bff
-rw-rw-r-- 1 45776101 1 14192640 Nov 22 2002 vac.C.5.0.2.6.bff
# wget ftp://ftp.software.ibm.com/aix/fixes/v4/other/vac.C.5.0.2.6.bff
# Аналогично для всех других уровней ОС. Затем выполните следующую команду и заполните её параметры
# smit install_update
-> Install and Update from LATEST Available Software
* INPUT device / directory for software [ vac.C.5.0.2.6.bff ]
[ OK ]
[ OK ] Следуйте инструкциям… и всё готово.
Для более удобного веб-подхода хорошей отправной точкой может служить http://www14.software.ibm.com/webapp/download/downloadaz.jsp и щелкните «C for AIX», следуя инструкциям.
Параметр usenm
Если связываете miniperl
cc -o miniperl ... miniperlmain.o opmini.o perl.o ... -lm -lc ... вызывает ошибку такого типа
ld: 0711-317 ERROR: Undefined symbol: .aintl
ld: 0711-317 ERROR: Undefined symbol: .copysignl
ld: 0711-317 ERROR: Undefined symbol: .syscall
ld: 0711-317 ERROR: Undefined symbol: .eaccess
ld: 0711-317 ERROR: Undefined symbol: .setresuid
ld: 0711-317 ERROR: Undefined symbol: .setresgid
ld: 0711-317 ERROR: Undefined symbol: .setproctitle
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information. можно повторить попытку с
make realclean
rm config.sh
./Configure -Dusenm ... что заставляет Configure использовать инструмент nm, когда сканируются символы библиотек, что обычно не делается в AIX.
В связи с этим, вероятно, не следует использовать параметр -r Configure в AIX, потому что это влияет на то, как используется инструмент nm.
Использование GNU gcc для сборки Perl
Использование gcc-3.x (тестировано с 3.0.4, 3.1 и 3.2) работает прямо из коробки, как и последние сборки gcc-2.9, доступные напрямую от IBM в рамках их пакетов совместимости с Linux, доступных здесь:
http://www.ibm.com/servers/aix/products/aixos/linux/ Использование больших файлов с Perl < 5L
Не должно вызывать проблем.
Потоковый Perl < 5L
Потоки, похоже, работают нормально, хотя в данный момент не все тесты проходят, когда потоки используются в сочетании с 64-разрядными конфигурациями.
При выполнении потоковой сборки вы можете получить предупреждение:
"pp_sys.c", line 4640.39: 1506-280 (W) Function argument assignment
between types "unsigned char*" and "const void*" is not allowed. Точное число строки может меняться, но если предупреждение (W) исходит из строки вида
hent = PerlSock_gethostbyaddr(addr, (Netdb_hlen_t) addrlen, addrtype); в функции «pp_ghostent», вы можете его безопасно проигнорировать. Предупреждение вызвано тем, что у реентерабельного варианта gethostbyaddr() немного отличается прототип от его нереентерабельного варианта, но различие здесь не так существенно.
64-битный Perl < 5L
Если ваша установка AIX поддерживает 64-битные возможности, ожидается, что 64-битные конфигурации будут работать. В сочетании с потоками некоторые тесты могут всё ещё завершаться неудачей.
AIX 4.2 и расширения, использующие C++ со статическими переменными
В AIX 4.2 расширения Perl, использующие функции C++, которые используют статические переменные, могут столкнуться с проблемами, поскольку статические переменные не инициализируются. В более новых выпусках AIX эта проблема решена путём связывания Perl с библиотекой libC_r, но, к сожалению, в AIX 4.2 эта библиотека имеет скрытую ошибку, из-за которой различные функции, связанные со временем (такие как time() и gettimeofday()), возвращают некорректные значения, и поэтому в AIX 4.2 Perl не связан с libC_r.
АВТОРЫ
Rainer Tammer <tammer@tammer.net>
© 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/perlaix