diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2014-06-03 08:39:56 -0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2014-06-07 21:26:59 -0400 |
commit | 470dd224e4b587137a482c6db3d765860bcba19c (patch) | |
tree | a54e1dc2948089c51d297db55fa14fc575c02517 /Configure | |
parent | 26c014b2af00ac88008218a92a598f8644e0d236 (diff) | |
download | perl-470dd224e4b587137a482c6db3d765860bcba19c.tar.gz |
Add C backtrace API.
Useful for at least debugging.
Supported in Linux and OS X (possibly to some extent in *BSD).
See perlhacktips for details.
Diffstat (limited to 'Configure')
-rwxr-xr-x | Configure | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -422,9 +422,11 @@ d_dbminitproto='' d_difftime='' d_dir_dd_fd='' d_dirfd='' +d_dladdr='' d_dlerror='' d_dlopen='' d_dlsymun='' +d_backtrace='' d_dosuid='' d_suidsafe='' d_drand48_r='' @@ -883,6 +885,7 @@ html3direxp='' installhtml3dir='' i_arpainet='' i_assert='' +i_bfd='' i_crypt='' db_hashtype='' db_prefixtype='' @@ -896,6 +899,7 @@ d_dirnamlen='' direntrytype='' i_dirent='' i_dlfcn='' +i_execinfo='' i_fcntl='' i_float='' i_fp='' @@ -1233,6 +1237,7 @@ uidtype='' archname64='' use64bitall='' use64bitint='' +usecbacktrace='' dtrace='' usedtrace='' usefaststdio='' @@ -5152,6 +5157,9 @@ esac case "$usesocks" in "$define") libswanted="$libswanted socks5 socks5_sh" ;; esac +case "$usecbacktrace" in +"$define") libswanted="$libswanted bfd" ;; +esac libsfound='' libsfiles='' libsdirs='' @@ -12209,6 +12217,10 @@ set d_dirfd eval $setvar $rm -f dirfd* +: see if dladdr exists +set dladdr d_dladdr +eval $inlibc + : see if dlerror exists xxx_runnm="$runnm" runnm=false @@ -12331,6 +12343,21 @@ $rm -f fred fred.* dyna.$dlext dyna.* tmp-dyna.* set d_dlsymun eval $setvar +: see if backtrace exists +set backtrace d_backtrace +eval $inlibc + +: add flags if using c backtrace +case "$usecbacktrace" in +[yY]*|true|$define) + case " $ccflags " in + *" -DUSE_C_BACKTRACE "*) ;; # Already there. + *) ccflags="$ccflags -DUSE_C_BACKTRACE -g" + ;; + esac + ;; +esac + : see if drand48_r exists set drand48_r d_drand48_r eval $inlibc @@ -12796,6 +12823,10 @@ case "$d_endservent_r" in ;; esac +: see if this is an execinfo.h system +set execinfo.h i_execinfo +eval $inhdr + : Locate the flags for 'open()' echo " " $cat >try.c <<EOCP @@ -21924,6 +21955,10 @@ esac set assert.h i_assert eval $inhdr +: see if this is a bfd.h system +set bfd.h i_bfd +eval $inhdr + : see if this is a fp.h system set fp.h i_fp eval $inhdr @@ -23084,9 +23119,11 @@ d_difftime='$d_difftime' d_dir_dd_fd='$d_dir_dd_fd' d_dirfd='$d_dirfd' d_dirnamlen='$d_dirnamlen' +d_dladdr='$d_dladdr' d_dlerror='$d_dlerror' d_dlopen='$d_dlopen' d_dlsymun='$d_dlsymun' +d_backtrace='$d_backtrace' d_dosuid='$d_dosuid' d_drand48_r='$d_drand48_r' d_drand48proto='$d_drand48proto' @@ -23573,12 +23610,14 @@ i8size='$i8size' i8type='$i8type' i_arpainet='$i_arpainet' i_assert='$i_assert' +i_bfd='$i_assert' i_bsdioctl='$i_bsdioctl' i_crypt='$i_crypt' i_db='$i_db' i_dbm='$i_dbm' i_dirent='$i_dirent' i_dlfcn='$i_dlfcn' +i_execinfo='$i_execinfo' i_fcntl='$i_fcntl' i_float='$i_float' i_fp='$i_fp' @@ -23969,6 +24008,7 @@ uquadtype='$uquadtype' use5005threads='$use5005threads' use64bitall='$use64bitall' use64bitint='$use64bitint' +usecbacktrace='$usecbacktrace' usecrosscompile='$usecrosscompile' usedevel='$usedevel' usedl='$usedl' |