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.
Поддерживаемые компиляторы
В настоящее время все версии компилятора IBM "xlc", "xlc_r", "cc", "cc_r" или "vac" ANSI/C будут работать для компиляции 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'). Пакет исправления ошибок (PTF) для APAR IZ35785, который решает эту проблему, доступен от IBM (апрель 2009 PTF для XL C/C++ Enterprise Edition for AIX, V9.0).
Если вы выберете XL C/C++ V11, вам потребуется установить апрельский PTF 2010 года (или более поздний), иначе вы не получите работоспособной версии Perl.
Perl можно скомпилировать как с помощью компилятора IBM ANSI C, так и с помощью 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 и более поздние версии несовместимы с файловым набором IBM 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 прекратил поддержку в декабре 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. Пожалуйста, сообщите команде разработчиков о любых сложностях, с которыми вам пришлось столкнуться.
Уровень ОС
Перед установкой патчей для компилятора C IBM необходимо узнать уровень патчей операционной системы. Команда 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, так как это влияет на то, как используется инструмент %%%CODE_BLOCK_44%%.
Использование 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.
AUTHORS
Rainer Tammer <tammer@tammer.net>
© 1993–2021 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.36.0/perlaix