1# vim: syntax=pod 2 3If you read this file _as_is_, just ignore the funny characters you 4see. It is written in the POD format (see pod/perlpod.pod) which is 5specifically designed to be readable as is. 6 7=head1 NAME 8 9perlfreebsd - Perl version 5 on FreeBSD systems 10 11=head1 DESCRIPTION 12 13This document describes various features of FreeBSD that will affect how Perl 14version 5 (hereafter just Perl) is compiled and/or runs. 15 16=head2 FreeBSD core dumps from readdir_r with ithreads 17 18When perl is configured to use ithreads, it will use re-entrant library calls 19in preference to non-re-entrant versions. There is a bug in FreeBSD's 20C<readdir_r> function in versions 4.5 and earlier that can cause a SEGV when 21reading large directories. A patch for FreeBSD libc is available 22(see L<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=30631>) 23which has been integrated into FreeBSD 4.6. 24 25=head2 C<$^X> doesn't always contain a full path in FreeBSD 26 27perl sets C<$^X> where possible to a full path by asking the operating 28system. On FreeBSD the full path of the perl interpreter is found by using 29C<sysctl> with C<KERN_PROC_PATHNAME> if that is supported, else by reading 30the symlink F</proc/curproc/file>. FreeBSD 7 and earlier has a bug where 31either approach sometimes returns an incorrect value 32(see L<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=35703>). 33In these cases perl will fall back to the old behaviour of using C's 34C<argv[0]> value for C<$^X>. 35 36=head1 AUTHOR 37 38Nicholas Clark <nick@ccl4.org>, collating wisdom supplied by Slaven Rezic 39and Tim Bunce. 40 41Please report any errors, updates, or suggestions to 42L<https://github.com/Perl/perl5/issues>. 43 44