# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Mon Nov 5 17:50:04 EET 2001 [metaconfig 3.0 PL70]
+# Generated on Wed Dec 12 17:09:05 EET 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
esac
case "$changesh" in
true)
+ export newsh
echo "(Feeding myself to $newsh $reason.)"
case "$0" in
Configure|*/Configure) exec $newsh $0 "$@";;
d_dbl_dig=''
d_dbminitproto=''
d_difftime=''
+d_dirfd=''
d_dlerror=''
d_dlopen=''
d_dlsymun=''
d_pipe=''
d_poll=''
d_portable=''
+d_procselfexe=''
+procselfexe=''
d_old_pthread_create_joinable=''
old_pthread_create_joinable=''
d_pthread_atfork=''
echo "Checking how to test for symbolic links..." >&4
$lns blurfl sym
if $test "X$issymlink" = X; then
- sh -c "PATH= test -h sym" >/dev/null 2>&1
+ case "$newsh" in
+ '') sh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
+ *) $newsh -c "PATH= test -h sym" >/dev/null 2>&1 ;;
+ esac
if test $? = 0; then
issymlink="test -h"
- fi
- fi
- if $test "X$issymlink" = X; then
- if $test -h >/dev/null 2>&1; then
- issymlink="$test -h"
- echo "Your builtin 'test -h' may be broken, I'm using external '$test -h'." >&4
+ else
+ echo "Your builtin 'test -h' may be broken." >&4
+ case "$test" in
+ /*) ;;
+ *) pth=`echo $PATH | sed -e "s/$p_/ /g"`
+ for p in $pth
+ do
+ if test -f "$p/$test"; then
+ test="$p/$test"
+ break
+ fi
+ done
+ ;;
+ esac
+ case "$test" in
+ /*)
+ echo "Trying external '$test -h'." >&4
+ issymlink="$test -h"
+ if $test ! -h sym >/dev/null 2>&1; then
+ echo "External '$test -h' is broken, too." >& 4
+ issymlink=''
+ fi
+ ;;
+ *) issymlink='' ;;
+ esac
fi
fi
if $test "X$issymlink" = X; then
if $test -L sym 2>/dev/null; then
issymlink="$test -L"
+ echo "The builtin '$test -L' worked." >&4
fi
fi
if $test "X$issymlink" != X; then
which one is better.
If you're a casual user, you probably don't want interpreter-threads
-at this time. There doesn't yet exist a way to create threads from
-within Perl in this model, i.e., "use Thread;" will NOT work.
+at this time. But if you do, the 'threads' module allows their use,
+and the 'Thread' module offers an interface to both 5005threads and
+ithreads (whichever has been configured).
EOM
: Default to ithreads unless overridden on command line or with
: old config.sh
esac
for thisflag in $ldflags; do
case "$thisflag" in
- -L*|-R*)
+ -L*|-R*|-Wl,-R*)
case " $dflt " in
*" $thisflag "*) ;;
*) dflt="$dflt $thisflag" ;;
aix)
# We'll set it in Makefile.SH...
;;
- solaris|netbsd)
+ solaris)
xxx="-R $shrpdir"
;;
- freebsd)
+ freebsd|netbsd)
xxx="-Wl,-R$shrpdir"
;;
linux|irix*|dec_osf)
esac
: see if we have to deal with yellow pages, now NIS.
-if $test -d /usr/etc/yp || $test -d /etc/yp; then
+if $test -d /usr/etc/yp || $test -d /etc/yp || $test -d /usr/lib/yp; then
if $test -f /usr/etc/nibindd; then
echo " "
echo "I'm fairly confident you're on a NeXT."
: figure best path for perl in scripts
case "$perlpath" in
'')
- perlpath="$binexp/perl"
+ case "$versiononly" in
+ "$define") perlpath="$binexp/perl$version";;
+ *) perlpath="$binexp/perl";;
+ esac
case "$startperl" in
*!*) ;;
*)
eval $setvar
$rm -f try.c
+: see if this is an sysdir system
+set sys/dir.h i_sysdir
+eval $inhdr
+
+: see if this is an sysndir system
+set sys/ndir.h i_sysndir
+eval $inhdr
+
+: Look for dirfd
+echo " "
+$cat >dirfd.c <<EOM
+#include <stdio.h>
+#$i_dirent I_DIRENT /**/
+#$i_sysdir I_SYS_DIR /**/
+#$i_sysndir I_SYS_NDIR /**/
+#$i_systypes I_SYS_TYPES /**/
+#if defined(I_SYS_TYPES)
+#include <sys/types.h>
+#endif
+#if defined(I_DIRENT)
+#include <dirent.h>
+#if defined(NeXT) && defined(I_SYS_DIR) /* NeXT needs dirent + sys/dir.h */
+#include <sys/dir.h>
+#endif
+#else
+#ifdef I_SYS_NDIR
+#include <sys/ndir.h>
+#else
+#ifdef I_SYS_DIR
+#ifdef hp9000s500
+#include <ndir.h> /* may be wrong in the future */
+#else
+#include <sys/dir.h>
+#endif
+#endif
+#endif
+#endif
+int main() {
+ DIR *dirp = opendir(".");
+ if (dirfd(dirp) >= 0)
+ exit(0);
+ else
+ exit(1);
+}
+EOM
+set dirfd
+if eval $compile; then
+ val="$define"
+fi
+case "$val" in
+$define) echo "dirfd() found." >&4 ;;
+*) echo "dirfd() NOT found." >&4 ;;
+esac
+set d_dirfd
+eval $setvar
+$rm -f dirfd*
+
: see if dlerror exists
xxx_runnm="$runnm"
runnm=false
set poll d_poll
eval $inlibc
+: see if readlink exists
+set readlink d_readlink
+eval $inlibc
+
+echo " "
+procselfexe=''
+val="$undef"
+case "$d_readlink" in
+"$define")
+ if $issymlink /proc/self/exe ; then
+ $ls -l /proc/self/exe > reflect
+ if $contains /`basename $ls` reflect >/dev/null 2>&1; then
+ echo "You have Linux-like /proc/self/exe."
+ procselfexe='"/proc/self/exe"'
+ val="$define"
+ fi
+ fi
+ if $issymlink /proc/curproc/file ; then
+ $ls -l /proc/curproc/file > reflect
+ if $contains /`basename $ls` reflect >/dev/null 2>&1; then
+ echo "You have BSD-like /proc/curproc/file."
+ procselfexe='"/proc/curproc/file"'
+ val="$define"
+ fi
+ fi
+ ;;
+esac
+$rm -f reflect
+set d_procselfexe
+eval $setvar
+
: see if pthread_atfork exists
set pthread_atfork d_pthread_atfork
eval $inlibc
set rewinddir d_rewinddir
eval $inlibc
-: see if readlink exists
-set readlink d_readlink
-eval $inlibc
-
: see if readv exists
set readv d_readv
eval $inlibc
*) usevfork='false';;
esac
-: see if this is an sysdir system
-set sys/dir.h i_sysdir
-eval $inhdr
-
-: see if this is an sysndir system
-set sys/ndir.h i_sysndir
-eval $inhdr
-
: see if closedir exists
set closedir d_closedir
eval $inlibc
eval $inhdr
: see if this is a ieeefp.h system
-set ieeefp.h i_ieeefp
-eval $inhdr
+case "$i_ieeefp" in
+'' ) set ieeefp.h i_ieeefp
+ eval $inhdr
+ ;;
+esac
: see if this is a libutil.h system
set libutil.h i_libutil
;;
Socket|socket)
case "$d_socket" in
- true|$define|y) avail_ext="$avail_ext $xxx" ;;
+ true|$define|y)
+ case "$osname" in
+ beos) ;; # not unless BONE
+ *) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
esac
;;
Sys/Syslog|sys/syslog)
d_dbl_dig='$d_dbl_dig'
d_dbminitproto='$d_dbminitproto'
d_difftime='$d_difftime'
+d_dirfd='$d_dirfd'
d_dirnamlen='$d_dirnamlen'
d_dlerror='$d_dlerror'
d_dlopen='$d_dlopen'
d_pipe='$d_pipe'
d_poll='$d_poll'
d_portable='$d_portable'
+d_procselfexe='$d_procselfexe'
d_pthread_atfork='$d_pthread_atfork'
d_pthread_yield='$d_pthread_yield'
d_pwage='$d_pwage'
prefixexp='$prefixexp'
privlib='$privlib'
privlibexp='$privlibexp'
+procselfexe='$procselfexe'
prototype='$prototype'
ptrsize='$ptrsize'
quadkind='$quadkind'