diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-09-21 14:32:58 +0200 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2011-09-27 22:23:10 +0200 |
commit | 2982a345b7a1edb63720282eef0fba5c61d0e6b5 (patch) | |
tree | 8fffd4f1ff976c438b5e9028adba2364cca3b07d /config_h.SH | |
parent | 2480ae1c1b2fa11085b45f96de55cb16c3bcc343 (diff) | |
download | perl-2982a345b7a1edb63720282eef0fba5c61d0e6b5.tar.gz |
Where available, use sysctl() with KERN_PROC_PATHNAME to make $^X absolute.
In Configure, check whether sysctl() and KERN_PROC_PATHNAME can be used
to find the absolute pathname of the executable. If so, set
usekernprocpathname in config.sh and USE_KERN_PROC_PATHNAME in config.h.
If this is set, then use this approach in S_set_caret_X() to canonicalise
$^X as an absolute path. This approach works on (at least) FreeBSD, and
doesn't rely on the /proc filesystem existing, or /proc/curproc/file being
present.
Diffstat (limited to 'config_h.SH')
-rwxr-xr-x | config_h.SH | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/config_h.SH b/config_h.SH index 43743b6858..9281cddff0 100755 --- a/config_h.SH +++ b/config_h.SH @@ -2689,6 +2689,13 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$ebcdic EBCDIC /**/ +/* USE_KERN_PROC_PATHNAME: + * This symbol, if defined, indicates that we can use sysctl with + * KERN_PROC_PATHNAME to get a full path for the executable, and hence + * convert $^X to an absolute path. + */ +#$usekernprocpathname USE_KERN_PROC_PATHNAME /**/ + /* Fpos_t: * This symbol holds the type used to declare file positions in libc. * It can be fpos_t, long, uint, etc... It may be necessary to include |