perlfreebsd − Perl version 5 on FreeBSD systems
This document describes various features of FreeBSD that will affect how Perl version 5 (hereafter just Perl) is compiled and/or runs.
FreeBSD core
dumps from readdir_r with ithreads
When perl is configured to use ithreads, it will use
re-entrant library calls in preference to non-re-entrant
versions. There is a bug in FreeBSD’s
"readdir_r" function in versions 4.5 and
earlier that can cause a SEGV when reading
large directories. A patch for FreeBSD libc is available
(see
http://www.freebsd.org/cgi/query−pr.cgi?pr=misc/30631
) which has been integrated into FreeBSD 4.6.
$^X
doesn’t always contain a full path in FreeBSD
perl sets $^X where possible to a full path by
asking the operating system. On FreeBSD the full path of the
perl interpreter is found by using
"sysctl" with
"KERN_PROC_PATHNAME" if that is
supported, else by reading the symlink
/proc/curproc/file. FreeBSD 7 and earlier has a bug
where either approach sometimes returns an incorrect value
(see http://www.freebsd.org/cgi/query−pr.cgi?pr=35703
). In these cases perl will fall back to the old behaviour
of using C’s argv[0] value for $^X.
Nicholas Clark <nick@ccl4.org>, collating wisdom supplied by Slaven Rezic and Tim Bunce.
Please report any errors, updates, or suggestions to perlbug@perl.org.