perlcygwin
СОДЕРЖАНИЕ
- НАЗВАНИЕ
- СИНОПСИС
- ПРЕДПОСЫЛКИ ДЛЯ КОМПИЛЯЦИИ PERL НА CYGWIN
- НАСТРОЙКА PERL НА CYGWIN
- MAKE НА CYGWIN
- ТЕСТИРОВАНИЕ НА CYGWIN
- Особенности порта Cygwin
- УСТАНОВКА PERL НА CYGWIN
- МАНИФЕСТ НА CYGWIN
- ОШИБКИ НА CYGWIN
- АВТОРЫ
- ИСТОРИЯ
НАЗВАНИЕ
perlcygwin - Perl для Cygwin
СИНОПСИС
Этот документ поможет вам настроить, скомпилировать, протестировать и установить Perl на Cygwin. В документе также описаны особенности Cygwin, которые повлияют на поведение Perl во время выполнения.
ПРИМЕЧАНИЕ: Существуют готовые пакеты Perl для Cygwin, а также версия Perl, предоставляемая в стандартной установке Cygwin. Если вам не нужно настраивать конфигурацию, воспользуйтесь одним из этих пакетов.
ПРЕДПОСЫЛКИ ДЛЯ КОМПИЛЯЦИИ PERL НА CYGWIN
Cygwin = GNU+Cygnus+Windows (Не оставляйте UNIX без него)
Инструменты Cygwin — это портированные популярные инструменты разработки GNU для платформ Win32. Они работают благодаря библиотеке Cygwin, которая обеспечивает системные вызовы UNIX и среду, ожидаемые этими программами. Дополнительную информацию об этом проекте можно найти по адресу:
Требуется недавняя версия Cygwin.
На момент последнего обновления этого документа актуальной была версия Cygwin 1.7.16.
Настройка Cygwin
При компиляции Perl могут потребоваться некоторые изменения в вашей настройке Cygwin, чтобы Perl успешно скомпилировался. Эти изменения не требуются для нормального использования Perl.
ПРИМЕЧАНИЕ: Скомпилированные двоичные файлы будут работать на всех версиях Win32. Они не зависят от вашей хост-системы (WinXP/Win2K/Win7) или вашей конфигурации Cygwin (монтирование каталогов, cvgserver). Единственные зависимости возникают из жёстко закодированных путей, таких как /usr/local. Однако ваша хост-система и конфигурация Cygwin повлияют на поведение Perl во время выполнения (см. "ТЕСТИРОВАНИЕ").
-
PATHУстановите переменную среды
PATH, чтобы Configure нашёл версии программ Cygwin. Все ненужные каталоги Windows следует удалить или перенести в конец вашегоPATH. -
nroff
Если у вас нет nroff (который входит в пакет groff), Configure не предложит установить страницы справки man.
НАСТРОЙКА PERL НА CYGWIN
По умолчанию, собранные Configure опции с помощью hints/cygwin.sh, позволят создать Perl, который поддерживает динамическую загрузку (что требует общего cygperl5_16.dll).
Это запустит Configure и сохранит записи:
./Configure 2>&1 | tee log.configure Если вы готовы принять все значения по умолчанию, запустите Configure с -de. Однако доступны несколько полезных пользовательских настроек.
Удаление ненужных данных из бинарников Perl на Cygwin
Можно удалить ненужные данные из EXEs и DLLs, созданных в процессе сборки. Результирующие бинарные файлы будут значительно меньше. Если вы хотите удалить ненужные данные из бинарных файлов, вы можете добавить опцию -s, когда Configure попросит её,
Any additional ld flags (NOT including libraries)? [none] -s
Any special flags to pass to g++ to create a dynamically loaded
library?
[none] -s
Any special flags to pass to gcc to use dynamic linking? [none] -s или вы можете отредактировать hints/cygwin.sh и раскомментировать соответствующие переменные в конце файла.
Дополнительные библиотеки для Perl на Cygwin
Некоторые функции и модули Perl зависят от наличия дополнительных библиотек. Configure найдёт их, если они установлены в одном из каталогов, указанных для поиска библиотек. Готовые пакеты для большинства из них доступны в установщике Cygwin.
-
-lcryptПакет crypt, поставляемый с Cygwin, — это Linux-совместимый порт 56-битного DES crypt от Corinna Vinschen.
В качестве альтернативы, библиотеки crypt в GNU libc были портированы в Cygwin.
По состоянию на libcrypt 1.3 (март 2016), вам потребуется установить пакет libcrypt-devel для того, чтобы Configure обнаружил crypt().
-
-lgdbm_compat(use GDBM_File)GDBM доступен для Cygwin.
ПРИМЕЧАНИЕ: Библиотека GDBM работает только на разделах NTFS.
-
-ldb(use DB_File)BerkeleyDB доступен для Cygwin.
ПРИМЕЧАНИЕ: Библиотека BerkeleyDB полностью работает только на разделах NTFS.
-
cygserver(use IPC::SysV)Порт SysV IPC доступен для Cygwin.
ПРИМЕЧАНИЕ: Это не было подробно протестировано. В частности,
d_semctl_semunне определён, потому что он не прошёл тест Configure, а в Win9x функции shm*(), похоже, зависают. Также это создаёт зависимость во время компиляции, так как perl.h включает <sys/ipc.h> и <sys/sem.h> (которые потребуются в будущем при компиляции CPAN-модулей). В НАСТОЯЩЕЕ ВРЕМЯ НЕ ПОДДЕРЖИВАЕТСЯ! -
-lutilВ стандартной версии Cygwin netrelease входит пакет inetutils, который включает libutil.a.
Параметры настройки для Perl на Cygwin
Документ INSTALL описывает несколько параметров настройки во время выполнения Configure. Некоторые из них будут работать с Cygwin, другие пока невозможны. Также некоторые из них являются экспериментальными. Вы можете выбрать опцию, когда Configure запросит её, или вы можете определить (или не определять) символы в командной строке.
-
-UusedlОтключение этого символа принудительно компилирует Perl статически.
-
-DusemymallocПо умолчанию Perl не использует
malloc()включённый с исходным кодом Perl, потому что он был медленнее и не полностью потокобезопасен. Если вы хотите принудительно скомпилировать Perl со старым определением -Dusemymalloc, сделайте это. -
-UuseperlioОтключение этого символа отключает абстракцию PerlIO. PerlIO теперь является значением по умолчанию; отключение PerlIO не рекомендуется.
-
-DusemultiplicityМножественность требуется при встраивании Perl в программу C и использовании более чем одного экземпляра интерпретатора. Это требуется только когда вы собираете не-потоковый perl с
-Uuseithreads. -
-Uuse64bitintПо умолчанию Perl использует 64-битные целые числа. Если вы хотите использовать 32-битные целые числа, определите этот символ.
-
-Duselongdoublegcc поддерживает длинные двойные числа (12 байт). Однако для их использования в Perl необходимы дополнительные функции математики с длинными двойными числами ({atan2, cos, exp, floor, fmod, frexp, isnan, log, modf, pow, sin, sqrt}l, strtold). Они не ещё доступны с newlib, библиотекой Cygwin libc.
-
-UuseithreadsОпределите этот символ, если вы хотите не-потоковый более быстрый perl.
-
-DuselargefilesCygwin использует 64-битные целые числа для внутренних расчётов размера и позиций, это будет правильно обнаружено и определено Configure.
-
-DmksymlinksИспользуйте это для сборки perl вне исходного дерева. Подробности можно найти в документе INSTALL. Это рекомендуемый способ сборки perl из исходного кода.
Подозрительные предупреждения на Cygwin
Во время выполнения Configure вы можете увидеть некоторые сообщения, которые кажутся подозрительными.
-
Win9x и
d_eofnblkWin9x не правильно сообщает
EOFпри неблокирующем чтении в закрытой трубе. Вы увидите следующие сообщения:But it also returns -1 to signal EOF, so be careful! WARNING: you can't distinguish between EOF and no data! *** WHOA THERE!!! *** The recommended value for $d_eofnblk on this machine was "define"! Keep the recommended value? [y]По крайней мере для согласованности с WinNT, вы должны сохранить рекомендованное значение.
-
Определения компилятора/препроцессора
Следующая ошибка возникает из-за Cygwin
#define_LONG_DOUBLE:Guessing which symbols your C compiler and preprocessor define... try.c:<line#>: missing binary operatorЭта ошибка не должна вызывать каких-либо проблем. В более ранних версиях gcc вместо "parse error" выдавалось "missing binary operator".
MAKE НА CYGWIN
Просто запустите make и дождитесь завершения:
make 2>&1 | tee log.make ТЕСТИРОВАНИЕ НА CYGWIN
Для запуска набора тестов необходимо выполнить два шага:
make test 2>&1 | tee log.make-test
cd t; ./perl harness 2>&1 | tee ../log.harness Одинаковые тесты выполняются оба раза, но больше информации предоставляется при запуске как ./perl harness.
Результаты тестов зависят от вашей хост-системы и вашей конфигурации Cygwin. Если тест может пройти в какой-то настройке Cygwin, он всегда пытается пройти, и описаны все неудачи тестов. Возможно, Perl пройдёт все тесты, но более вероятно, что некоторые тесты не пройдут по одной из причин, перечисленных ниже.
Права доступа к файлам на Cygwin
Права доступа к файлам в UNIX основаны на наборах битов режима для {чтения, записи, выполнения} для каждого {пользователя, группы, других}. По умолчанию Cygwin отслеживает только атрибут только для чтения Win32, представленный в виде бита записи пользователя UNIX (файлы всегда читаемы, файлы исполняемы, если у них есть расширение .{com,bat,exe} или они начинаются с #!, каталоги всегда читаемы и исполняемы). В WinNT с настройкой ntea CYGWIN дополнительные биты режима хранятся как расширенные атрибуты файла. В WinNT с настройкой по умолчанию ntsec CYGWIN права доступа используют стандартные дескрипторы безопасности WinNT и списки управления доступом. Без одного из этих параметров эти тесты завершатся ошибкой (список еще не обновлен):
Failed Test List of failed
------------------------------------
io/fs.t 5, 7, 9-10
lib/anydbm.t 2
lib/db-btree.t 20
lib/db-hash.t 16
lib/db-recno.t 18
lib/gdbm.t 2
lib/ndbm.t 2
lib/odbm.t 2
lib/sdbm.t 2
op/stat.t 9, 20 (.tmp not an executable extension) Файлы NDBM и ODBM не работают на файловых системах FAT
Не используйте NDBM_File или ODBM_File на файловой системе FAT. Они могут быть построены на файловой системе FAT, но многие тесты завершатся ошибкой:
../ext/NDBM_File/ndbm.t 13 3328 71 59 83.10% 1-2 4 16-71
../ext/ODBM_File/odbm.t 255 65280 ?? ?? % ??
../lib/AnyDBM_File.t 2 512 12 2 16.67% 1 4
../lib/Memoize/t/errors.t 0 139 11 5 45.45% 7-11
../lib/Memoize/t/tie_ndbm.t 13 3328 4 4 100.00% 1-4
run/fresh_perl.t 97 1 1.03% 91 Если вы планируете работать только с FAT (или если используете AnyDBM_File на FAT), запустите Configure с параметрами -Ui_ndbm и -Ui_dbm, чтобы предотвратить создание файлов NDBM и ODBM.
В NTFS (и без CYGWIN=nontsec) проблем не должно быть, даже если Perl был построен на FAT.
fork() ошибки в тестах io_*
Ошибка fork() может привести к сбою следующих тестов:
ext/IO/lib/IO/t/io_multihomed.t
ext/IO/lib/IO/t/io_sock.t
ext/IO/lib/IO/t/io_unix.t См. комментарий к fork в "Разное" ниже.
Особенности порта Cygwin
Переносимость скриптов в Cygwin
Cygwin отлично справляется с обеспечением семантики UNIX поверх систем Win32. Однако помимо перечисленных выше пунктов существуют некоторые отличия, о которых вам следует знать. Это очень краткое руководство по переносимости, более подробную информацию можно найти в документации Cygwin.
-
Имена путей
Имена путей Cygwin разделяются косыми чертами (/), также поддерживаются универсальные имена ресурсов (//UNC). С версии cygwin-1.7 имена путей, не соответствующие POSIX, не рекомендуются. Имена могут содержать все печатные символы.
Имена файлов не чувствительны к регистру, но сохраняют регистр. Имя пути, содержащее обратную косую черту или букву диска, является именем пути Win32 и не подвергается преобразованиям, применяемым к именам путей в стиле POSIX, но cygwin предупредит вас, поэтому лучше преобразовать их в POSIX.
Для преобразования у нас есть
Cygwin::win_to_posix_path()иCygwin::posix_to_win_path().С версии cygwin-1.7 имена путей закодированы в UTF-8.
-
Текст/Двоичные данные
С версии cygwin-1.7 текстовые монтирования устарели и настоятельно не рекомендуются.
При открытии файла он находится в текстовом или двоичном режиме. В текстовом режиме файл подвергается преобразованиям CR/LF/Ctrl-Z. В Cygwin режим по умолчанию для
open()определяется режимом монтирования, на котором основан файл. См. "Cygwin::is_binmount"(). Perl предоставляет функциюbinmode()для установки двоичного режима для файлов, которые в противном случае обрабатывались бы как текстовые.sysopen()с флагомO_TEXTустанавливает текстовый режим для файлов, которые в противном случае обрабатывались бы как двоичные:sysopen(FOO, "bar", O_WRONLY|O_CREAT|O_TEXT)lseek(),tell()иsysseek()работают только с файлами, открытыми в двоичном режиме.Проблема с текстовым и двоичным режимом подробно рассмотрена в документации Cygwin.
-
PerlIO
PerlIO переопределяет стандартное поведение Cygwin Текст/Двоичные данные. Файл всегда будет обрабатываться как двоичный, независимо от режима монтирования, на котором он находится, точно так же, как это происходит в UNIX. Поэтому преобразование CR/LF необходимо запросить в вызове
open()следующим образом:open(FH, ">:crlf", "out.txt");что выполнит преобразование из LF в CR/LF на выходе, или в настройках среды (добавьте это в свой .bashrc):
export PERLIO=crlfчто подключает слой crlf PerlIO, который выполняет преобразование LF в CRLF для каждого вывода, создаваемого perl.
-
.exe
Функции Cygwin
stat(),lstat()иreadlink()делают расширение .exe прозрачным, ищут foo.exe, когда вы запрашиваете foo (если не существует также foo). Cygwin не требует расширения .exe, но gcc добавляет его автоматически при построении программы. Однако при доступе к исполняемому файлу как к обычному файлу (например, cp в файле make) .exe не является прозрачным. Программа install, входящая в состав Cygwin, автоматически добавляет .exe при необходимости. -
Идентификаторы процессов Cygwin против Windows
У процессов Cygwin есть свой собственный pid, который отличается от базового pid Windows. Большинство функций POSIX-совместимого Proc ожидают pid cygwin, но несколько функций Win32::Process ожидают winpid. Например,
$$- это pid cygwin для /usr/bin/perl, который не является winpid. ИспользуйтеCygwin::pid_to_winpid()иCygwin::winpid_to_pid()для преобразования между ними. -
Ошибки Cygwin против Windows
В Cygwin $^E эквивалентен $!. При использовании функций Win32 API используйте
Win32::GetLastError()для получения последней ошибки Windows. -
Ошибки при перезагрузке при fork или system
Использование
fork()илиsystem()для вызова другого perl после загрузки нескольких dll может привести к конфликту адресов DLL. Внутренняя ошибка cygwin выглядит следующим образом:0 [main] perl 8916 child_info_fork::abort: data segment start: parent (0xC1A000) != child(0xA6A000)или:
183 [main] perl 3588 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\bin\cygsvn_subr-1-0.dll to same address as parent(0x6FB30000) != 0x6FE60000 46 [main] perl 3488 fork: child 3588 - died waiting for dll loading, errno11См. http://cygwin.com/faq/faq-nochunks.html#faq.using.fixing-fork-failures Это помогает, если в памяти загружено не слишком много DLL, чтобы адресное пространство было больше, например, остановка MS Internet Explorer может помочь.
Используйте утилиты perlrebase или rebase для решения конфликтов адресов DLL. Пакет rebase включен в установку Cygwin. Используйте setup.exe из http://www.cygwin.com/setup.exe для его установки.
1. Убейте все процессы perl и запустите
perlrebaseили2. Убейте все процессы и службы cygwin, запустите dash из cmd.exe и выполните
rebaseall. -
chown()В WinNT
chown()может изменить идентификаторы пользователя и группы файла. В Win9xchown()является пустой операцией, хотя это уместно, так как модели безопасности нет. -
Разное
Блокировка файлов с использованием команды
F_GETLKвfcntl()является заглушкой, которая возвращаетENOSYS.Win9x не может
rename()открытый файл (хотя WinNT может).Реализация Cygwin
chroot()имеет пробелы (она не может ограничивать доступ к файлам программами Win32).Редактирование файла на месте
perl -iне работает без создания резервной копии редактируемого файлаperl -i.bakиз-за ограничений Windows, поэтому Perl автоматически добавляет суффикс.bakесли вы используетеperl -iбез указания расширения резервной копии.
Предопределённые методы:
-
Cwd::cwd -
Возвращает текущую рабочую директорию.
-
Cygwin::pid_to_winpid -
Преобразует pid cygwin в соответствующий pid Windows (который может или не может быть одинаковым).
-
Cygwin::winpid_to_pid -
Преобразует pid Windows в соответствующий pid cygwin (если таковой имеется).
-
Cygwin::win_to_posix_path -
Преобразует путь Windows в соответствующий путь cygwin, учитывая текущие точки монтирования. С вторым ненулевым аргументом возвращает абсолютный путь. Двухбайтовые символы не будут преобразованы.
-
Cygwin::posix_to_win_path -
Преобразует путь cygwin в соответствующий путь cygwin, учитывая текущие точки монтирования. С вторым ненулевым аргументом возвращает абсолютный путь. Двухбайтовые символы не будут преобразованы.
-
Cygwin::mount_table() -
Возвращает массив [mnt_dir, mnt_fsname, mnt_type, mnt_opts].
perl -e 'for $i (Cygwin::mount_table) {print join(" ",@$i),"\n";}' /bin c:\cygwin\bin system binmode,cygexec /usr/bin c:\cygwin\bin system binmode /usr/lib c:\cygwin\lib system binmode / c:\cygwin system binmode /cygdrive/c c: system binmode,noumount /cygdrive/d d: system binmode,noumount /cygdrive/e e: system binmode,noumount -
Cygwin::mount_flags -
Возвращает тип монтирования и флаги для указанной точки монтирования. Строка, разделенная запятыми, mntent->mnt_type (всегда "system" или "user"), затем mntent->mnt_opts, где первый всегда "binmode" или "textmode".
system|user,binmode|textmode,exec,cygexec,cygdrive,mixed, notexec,managed,nosuid,devfs,proc,noumountЕсли аргумент равен "/cygdrive", возвращаются только параметры монтирования тома и префикс монтирования cygdrive.
Монтирования пользователя переопределяют системные монтирования.
$ perl -e 'print Cygwin::mount_flags "/usr/bin"' system,binmode,cygexec $ perl -e 'print Cygwin::mount_flags "/cygdrive"' binmode,cygdrive,/cygdrive -
Cygwin::is_binmount -
Возвращает true, если указанный путь cygwin смонтирован в двоичном режиме, false, если путь смонтирован в текстовом режиме.
-
Cygwin::sync_winenv -
Cygwin не инициализирует все исходные переменные среды Win32. См. нижнюю часть этой страницы http://cygwin.com/cygwin-ug-net/setup-env.html для "Ограниченной среды Win32".
Некоторые программы Win32, вызываемые из программ cygwin, могут потребовать некоторые переменные среды, например, ADODB требует %COMMONPROGRAMFILES%. Вызовите Cygwin::sync_winenv(), чтобы скопировать все переменные среды Win32 в ваш процесс, и обратите внимание, что cygwin будет предупреждать о каждом встречном пути, не соответствующем POSIX.
УСТАНОВКА PERL В CYGWIN
Это установит Perl, включая страницы man.
make install 2>&1 | tee log.make-install ПРИМЕЧАНИЕ: Если STDERR перенаправлено, make install не попросит вас установить perl в /usr/bin.
Возможно, вам потребуется статус Администратор для запуска make install. Если нет, вам необходимо иметь права записи в соответствующие каталоги.
Информация об установке документации Perl в формате HTML находится в документе INSTALL.
Файл манифеста в Cygwin
Это файлы в релизе Perl, содержащие ссылки на Cygwin. Эти очень краткие заметки пытаются объяснить причину всего условного кода. Надеюсь, что поддержание актуальности позволит поддерживать порт Cygwin в максимально чистоте.
- Документация
-
INSTALL README.cygwin README.win32 MANIFEST pod/perl.pod pod/perlport.pod pod/perlfaq3.pod pod/perldelta.pod pod/perl5004delta.pod pod/perl56delta.pod pod/perl561delta.pod pod/perl570delta.pod pod/perl572delta.pod pod/perl573delta.pod pod/perl58delta.pod pod/perl581delta.pod pod/perl590delta.pod pod/perlhist.pod pod/perlmodlib.pod pod/perltoc.pod Porting/Glossary pod/perlgit.pod Porting/checkAUTHORS.pl dist/Cwd/Changes ext/Compress-Raw-Zlib/Changes dist/Time-HiRes/Changes ext/Compress-Raw-Zlib/README ext/Compress-Zlib/Changes ext/DB_File/Changes ext/Encode/Changes ext/Sys-Syslog/Changes ext/Win32API-File/Changes lib/ExtUtils/CBuilder/Changes lib/ExtUtils/Changes lib/ExtUtils/NOTES lib/ExtUtils/PATCHING lib/ExtUtils/README lib/Net/Ping/Changes lib/Test/Harness/Changes lib/Term/ANSIColor/ChangeLog lib/Term/ANSIColor/README README.symbian symbian/TODO - Этапы сборки, конфигурации, компиляции и установки
-
cygwin/Makefile.SHs ext/IPC/SysV/hints/cygwin.pl ext/NDBM_File/hints/cygwin.pl ext/ODBM_File/hints/cygwin.pl hints/cygwin.sh Configure - help finding hints from uname, shared libperl required for dynamic loading Makefile.SH Cross/Makefile-cross-SH - linklibperl Porting/patchls - cygwin in port list installman - man pages with :: translated to . installperl - install dll, install to 'pods' makedepend.SH - uwinfix regen_lib.pl - file permissions NetWare/Makefile plan9/mkfile symbian/sanity.pl symbian/sisify.pl hints/uwin.sh vms/descrip_mms.template win32/Makefile win32/makefile.mk - Тесты
-
t/io/fs.t - no file mode checks if not ntsec skip rename() check when not check_case:relaxed t/io/tell.t - binmode t/lib/cygwin.t - builtin cygwin function tests t/op/groups.t - basegroup has ID = 0 t/op/magic.t - $^X/symlink WORKAROUND, s/.exe// t/op/stat.t - no /dev, skip Win32 ftCreationTime quirk (cache manager sometimes preserves ctime of file previously created and deleted), no -u (setuid) t/op/taint.t - can't use empty path under Cygwin Perl t/op/time.t - no tzset() - Компилированный исходный код Perl
-
EXTERN.h - __declspec(dllimport) XSUB.h - __declspec(dllexport) cygwin/cygwin.c - os_extras (getcwd, spawn, and several Cygwin:: functions) perl.c - os_extras, -i.bak perl.h - binmode doio.c - win9x can not rename a file when it is open pp_sys.c - do not define h_errno, init _pwent_struct.pw_comment util.c - use setenv util.h - PERL_FILE_IS_ABSOLUTE macro pp.c - Comment about Posix vs IEEE math under Cygwin perlio.c - CR/LF mode perliol.c - Comment about EXTCONST under Cygwin - Компилированный исходный код модулей
-
ext/Compress-Raw-Zlib/Makefile.PL - Can't install via CPAN shell under Cygwin ext/Compress-Raw-Zlib/zlib-src/zutil.h - Cygwin is Unix-like and has vsnprintf ext/Errno/Errno_pm.PL - Special handling for Win32 Perl under Cygwin ext/POSIX/POSIX.xs - tzname defined externally ext/SDBM_File/sdbm/pair.c - EXTCONST needs to be redefined from EXTERN.h ext/SDBM_File/sdbm/sdbm.c - binary open ext/Sys/Syslog/Syslog.xs - Cygwin has syslog.h ext/Sys/Syslog/win32/compile.pl - Convert paths to Windows paths ext/Time-HiRes/HiRes.xs - Various timers not available ext/Time-HiRes/Makefile.PL - Find w32api/windows.h ext/Win32/Makefile.PL - Use various libraries under Cygwin ext/Win32/Win32.xs - Child dir and child env under Cygwin ext/Win32API-File/File.xs - _open_osfhandle not implemented under Cygwin ext/Win32CORE/Win32CORE.c - __declspec(dllexport) - Модули/Скрипты Perl
-
ext/B/t/OptreeCheck.pm - Comment about stderr/stdout order under Cygwin ext/Digest-SHA/bin/shasum - Use binary mode under Cygwin ext/Sys/Syslog/win32/Win32.pm - Convert paths to Windows paths ext/Time-HiRes/HiRes.pm - Comment about various timers not available ext/Win32API-File/File.pm - _open_osfhandle not implemented under Cygwin ext/Win32CORE/Win32CORE.pm - History of Win32CORE under Cygwin lib/Cwd.pm - hook to internal Cwd::cwd lib/ExtUtils/CBuilder/Platform/cygwin.pm - use gcc for ld, and link to libperl.dll.a lib/ExtUtils/CBuilder.pm - Cygwin is Unix-like lib/ExtUtils/Install.pm - Install and rename issues under Cygwin lib/ExtUtils/MM.pm - OS classifications lib/ExtUtils/MM_Any.pm - Example for Cygwin lib/ExtUtils/MakeMaker.pm - require MM_Cygwin.pm lib/ExtUtils/MM_Cygwin.pm - canonpath, cflags, manifypods, perl_archive lib/File/Fetch.pm - Comment about quotes using a Cygwin example lib/File/Find.pm - on remote drives stat() always sets st_nlink to 1 lib/File/Spec/Cygwin.pm - case_tolerant lib/File/Spec/Unix.pm - preserve //unc lib/File/Spec/Win32.pm - References a message on cygwin.com lib/File/Spec.pm - Pulls in lib/File/Spec/Cygwin.pm lib/File/Temp.pm - no directory sticky bit lib/Module/CoreList.pm - List of all module files and versions lib/Net/Domain.pm - No domainname command under Cygwin lib/Net/Netrc.pm - Bypass using stat() under Cygwin lib/Net/Ping.pm - ECONREFUSED is EAGAIN under Cygwin lib/Pod/Find.pm - Set 'pods' dir lib/Pod/Perldoc/ToMan.pm - '-c' switch for pod2man lib/Pod/Perldoc.pm - Use 'less' pager, and use .exe extension lib/Term/ANSIColor.pm - Cygwin terminal info lib/perl5db.pl - use stdin not /dev/tty utils/perlbug.PL - Add CYGWIN environment variable to report - Тесты модулей Perl
-
dist/Cwd/t/cwd.t ext/Compress-Zlib/t/14gzopen.t ext/DB_File/t/db-btree.t ext/DB_File/t/db-hash.t ext/DB_File/t/db-recno.t ext/DynaLoader/t/DynaLoader.t ext/File-Glob/t/basic.t ext/GDBM_File/t/gdbm.t ext/POSIX/t/sysconf.t ext/POSIX/t/time.t ext/SDBM_File/t/sdbm.t ext/Sys/Syslog/t/syslog.t ext/Time-HiRes/t/HiRes.t ext/Win32/t/Unicode.t ext/Win32API-File/t/file.t ext/Win32CORE/t/win32core.t lib/AnyDBM_File.t lib/Archive/Extract/t/01_Archive-Extract.t lib/Archive/Tar/t/02_methods.t lib/ExtUtils/t/Embed.t lib/ExtUtils/t/eu_command.t lib/ExtUtils/t/MM_Cygwin.t lib/ExtUtils/t/MM_Unix.t lib/File/Compare.t lib/File/Copy.t lib/File/Find/t/find.t lib/File/Path.t lib/File/Spec/t/crossplatform.t lib/File/Spec/t/Spec.t lib/Net/hostent.t lib/Net/Ping/t/110_icmp_inst.t lib/Net/Ping/t/500_ping_icmp.t lib/Net/t/netrc.t lib/Pod/Simple/t/perlcyg.pod lib/Pod/Simple/t/perlcygo.txt lib/Pod/Simple/t/perlfaq.pod lib/Pod/Simple/t/perlfaqo.txt lib/User/grent.t lib/User/pwent.t
Ошибки в Cygwin
Поддержка обмена реальными и эффективными идентификаторами пользователей и групп неполная. В WinNT Cygwin предоставляет setuid(), seteuid(), setgid() и setegid(). Однако требуются дополнительные вызовы Cygwin для управления маркерами доступа WinNT и контекстами безопасности.
АВТОРЫ
Чарльз Уилсон <cwilson@ece.gatech.edu>, Эрик Фифер <egf7@columbia.edu>, Александр Смишлаев <als@turnhere.com>, Стивен Морок <newspost@morlock.net>, Себастьен Барр <Sebastien.Barre@utc.fr>, Теун Бергерс <burgers@ecn.nl>, Геррит П. Хазе <gp@familiehaase.de>, Рейни Урбан <rurban@cpan.org>, Ян Дюбуа <jand@activestate.com>, Джерри Д. Хедден <jdhedden@cpan.org>.
История
Последнее обновление: 2012-02-08
© 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/perlcygwin