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
) 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
). In these cases perl will
fall back to the old behaviour of using C's argv value for $^X.
Nicholas Clark <firstname.lastname@example.org>, collating wisdom supplied by Slaven Rezic
and Tim Bunce.
Please report any errors, updates, or suggestions to