summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-06-15 00:15:52 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-06-15 00:15:52 +0000
commit5440bc8ef38c925fa824ae72b6c7ad2f21cbda6e (patch)
tree33768a0c14b79a902fd43151b9ff12ca93f62233
parentd31cdfb6c818e318a1eec541457f7fecc9be0d36 (diff)
downloadperl-5440bc8ef38c925fa824ae72b6c7ad2f21cbda6e.tar.gz
The first steps towards cross-compilation.
Abstract execution of compiled test executables with $run, and abstract transfer of files with $to and $from. Under cross-compilation the $run, $to, and $from will point to appropriate wrapper scripts, by default ssh and scp, but also rsh, rcp, and cp are supported. If not cross-compiling, they will be set to '', ':', and ':', respectively. With these patches I was able to get Configure for iPAQ ARM Linux on an Intel Linux about 95% right (only a few tests failed to execute or they produced incorrect results), and I was able to compile a functional miniperl. The symbol crosscompile renamed to be usecrosscompile, the corresponding C symbol from CROSSCOMPILE to USE_CROSS_COMPILE. p4raw-id: //depot/perl@10592
-rwxr-xr-xConfigure495
-rw-r--r--Cross/README4
-rw-r--r--Makefile.SH1
-rw-r--r--Porting/Glossary31
-rw-r--r--Porting/config.sh18
-rw-r--r--Porting/config_H96
-rw-r--r--config_h.SH84
-rw-r--r--configure.com2
-rw-r--r--epoc/config.sh2
-rw-r--r--hints/linux.sh2
-rw-r--r--pod/perltoc.pod90
-rw-r--r--uconfig.h86
-rwxr-xr-xuconfig.sh2
-rw-r--r--vos/config.alpha.def2
-rw-r--r--vos/config.alpha.h10
-rw-r--r--vos/config.ga.def2
-rw-r--r--vos/config.ga.h10
-rw-r--r--win32/config.bc2
-rw-r--r--win32/config.gc2
-rw-r--r--win32/config.vc2
-rw-r--r--win32/config_H.bc10
-rw-r--r--win32/config_H.gc10
-rw-r--r--win32/config_H.vc10
23 files changed, 554 insertions, 419 deletions
diff --git a/Configure b/Configure
index 176b6f73e5..53f539a78b 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Wed Jun 13 21:32:05 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Fri Jun 15 04:00:58 EET DST 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
@@ -165,6 +165,11 @@ ccversion=''
ccsymbols=''
cppccsymbols=''
cppsymbols=''
+from=''
+run=''
+targetarch=''
+to=''
+usecrosscompile=''
perllibs=''
dynamic_ext=''
extensions=''
@@ -308,7 +313,6 @@ cpplast=''
cppminus=''
cpprun=''
cppstdin=''
-crosscompile=''
d__fwalk=''
d_access=''
d_accessx=''
@@ -1122,17 +1126,17 @@ if `$sh -c '#' >/dev/null 2>&1`; then
spitshell=cat
xcat=/bin/cat
test -f $xcat || xcat=/usr/bin/cat
- echo "#!$xcat" >try
- $eunicefix try
- chmod +x try
- ./try > today
+ echo "#!$xcat" >sharp
+ $eunicefix sharp
+ chmod +x sharp
+ ./sharp > today
if test -s today; then
sharpbang='#!'
else
- echo "#! $xcat" > try
- $eunicefix try
- chmod +x try
- ./try > today
+ echo "#! $xcat" > sharp
+ $eunicefix sharp
+ chmod +x sharp
+ ./sharp > today
if test -s today; then
sharpbang='#! '
else
@@ -1152,28 +1156,28 @@ else
echo "I presume that if # doesn't work, #! won't work either!"
sharpbang=': use '
fi
-rm -f try today
+rm -f sharp today
: figure out how to guarantee sh startup
case "$startsh" in
'') startsh=${sharpbang}${sh} ;;
*)
esac
-cat >try <<EOSS
+cat >sharp <<EOSS
$startsh
set abc
test "$?abc" != 1
EOSS
-chmod +x try
-$eunicefix try
-if ./try; then
+chmod +x sharp
+$eunicefix sharp
+if ./sharp; then
: echo "Yup, it does."
else
echo "Hmm... '$startsh' does not guarantee sh startup..."
echo "You may have to fix up the shell scripts to make sure $sh runs them."
fi
-rm -f try
+rm -f sharp
: Save command line options in file UU/cmdline.opt for later use in
@@ -2305,6 +2309,163 @@ $define|true|[yY]*)
;;
esac
+
+case "$usecrosscompile" in
+$define|true|[yY]*)
+ croak=''
+ case "$cc" in
+ *-*-gcc) # A cross-compiling gcc, probably.
+ targetarch=`echo $cc|sed 's/-gcc$//'`
+ ar=$targetarch-ar
+ # leave out ld, choosing it is more complex
+ nm=$targetarch-nm
+ ranlib=$targetarch-ranlib
+ ;;
+ esac
+ case "$targetarch" in
+ '') echo "Cross-compiling: you should define targetarch." >&4; croak=y ;;
+ esac
+ case "$usrinc" in
+ '') echo "Cross-compiling: you should define usrinc." >&4; croak=y ;;
+ esac
+ case "$incpth" in
+ '') echo "Cross-compiling: you should define incpth." >&4; croak=y ;;
+ esac
+ case "$libpth" in
+ '') echo "Cross-compiling: you should define libpth." >&4; croak=y ;;
+ esac
+ case "$targethost" in
+ '') echo "Cross-compiling: targethost not defined." >&4; croak=y ;;
+ esac
+ case "$targetdir" in
+ '') echo "Cross compiling: targetdir not defined." >&4; croak=y ;;
+ esac
+ locincpth=''
+ loclibpth=''
+ case "$croak" in
+ y) exit 1 ;;
+ esac
+ case "$src" in
+ /*) run=$src/Cross/run
+ to=$src/Cross/to
+ from=$src/Cross/from
+ ;;
+ *) pwd=`test -f ../Configure & cd ..; pwd`
+ run=$pwd/Cross/run
+ to=$pwd/Cross/to
+ from=$pwd/Cross/from
+ ;;
+ esac
+ case "$targetrun" in
+ '') targetrun=ssh ;;
+ esac
+ case "$targetto" in
+ '') targetto=scp ;;
+ esac
+ case "$targetfrom" in
+ '') targetfrom=scp ;;
+ esac
+ run=$run-$targetrun
+ to=$to-$targetto
+ from=$from-$targetfrom
+ case "$targetuser" in
+ '') targetuser=root ;;
+ esac
+ case "$targetfrom" in
+ scp) q=-q ;;
+ *) q='' ;;
+ esac
+ case "$targetrun" in
+ ssh|rsh)
+ cat >$run <<EOF
+#!/bin/sh
+exe=\$1
+shift
+$to \$exe
+$targetrun -l $targetuser $targethost "cd $targetdir && ./\$exe \$@"
+EOF
+ ;;
+ *) echo "Cross-compiling: unknown targetrun '$targetrun'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetto" in
+ scp|rcp)
+ cat >$to <<EOF
+#!/bin/sh
+for f in \$@
+do
+ $targetto $q \$f $targetuser@$targethost:$targetdir/. || exit 1
+done
+exit 0
+EOF
+ ;;
+ cp) cat >$to <<EOF
+#!/bin/sh
+cp \$@ $targetdir/.
+EOF
+ ;;
+ *) echo "Cross-compiling: unknown targetto '$targetto'" >&4
+ exit 1
+ ;;
+ esac
+ case "$targetfrom" in
+ scp|rcp)
+ cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+ $targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+ ;;
+ cp) cat >$from <<EOF
+#!/bin/sh
+for f in \$@
+do
+ cp $targetdir/\$f . || exit 1
+done
+exit 0
+EOF
+ ;;
+ *) echo "Cross-compiling: unknown targetfrom '$targetfrom'" >&4
+ exit 1
+ ;;
+ esac
+ if test ! -f $run; then
+ echo "Cross-compiling: target 'run' script '$run' not found." >&4
+ else
+ chmod a+rx $run
+ fi
+ if test ! -f $to; then
+ echo "Cross-compiling: target 'to' script '$to' not found." >&4
+ else
+ chmod a+rx $to
+ fi
+ if test ! -f $from; then
+ echo "Cross-compiling: target 'from' script '$from' not found." >&4
+ else
+ chmod a+rx $from
+ fi
+ if test ! -f $run -o ! -f $to -o ! -f $from; then
+ exit 1
+ fi
+ cat >&4 <<EOF
+Cross-compiling: Using
+ $run-ssh
+ $to-ssh
+ $from-ssh
+EOF
+ ;;
+*) run=''
+ to=:
+ from=:
+ usecrosscompile='undef'
+ targetarch=''
+ ;;
+esac
+
: see whether [:lower:] and [:upper:] are supported character classes
echo " "
case "`echo AbyZ | $tr '[:lower:]' '[:upper:]' 2>/dev/null`" in
@@ -2699,6 +2860,14 @@ EOM
fi
fi
+ case "$targetarch" in
+ '') ;;
+ *) hostarch=$osname
+ osname=`echo $targetarch|sed 's,^[^-]*-,,'`
+ osvers=''
+ ;;
+ esac
+
: Now look for a hint file osname_osvers, unless one has been
: specified already.
case "$hintfile" in
@@ -2773,7 +2942,7 @@ EOM
elif $test -f $src/hints/$file.sh; then
. $src/hints/$file.sh
$cat $src/hints/$file.sh >> UU/config.sh
- elif $test X$tans = X -o X$tans = Xnone ; then
+ elif $test X"$tans" = X -o X"$tans" = Xnone ; then
: nothing
else
: Give one chance to correct a possible typo.
@@ -3162,7 +3331,7 @@ fi
echo " "
echo "Checking for GNU cc in disguise and/or its version number..." >&4
-$cat >gccvers.c <<EOM
+$cat >try.c <<EOM
#include <stdio.h>
int main() {
#ifdef __GNUC__
@@ -3175,8 +3344,8 @@ int main() {
exit(0);
}
EOM
-if $cc -o gccvers $ccflags $ldflags gccvers.c; then
- gccversion=`./gccvers`
+if $cc -o try $ccflags $ldflags try.c; then
+ gccversion=`$run ./try`
case "$gccversion" in
'') echo "You are not using GNU cc." ;;
*) echo "You are using GNU cc $gccversion."
@@ -3194,7 +3363,7 @@ else
;;
esac
fi
-$rm -f gccvers*
+$rm -f try try.*
case "$gccversion" in
1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
esac
@@ -4213,15 +4382,15 @@ $cat >> try.msg <<EOM
I used the command:
$*
- ./try
+ $run ./try
and I got the following output:
EOM
dflt=y
if $sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then
- if $sh -c './try' >>try.msg 2>&1; then
- xxx=`./try`
+ if $sh -c "$run ./try" >>try.msg 2>&1; then
+ xxx=`$run ./try`
case "$xxx" in
"Ok") dflt=n ;;
*) echo 'The program compiled OK, but produced no output.' >> try.msg
@@ -4343,7 +4512,7 @@ echo " "
case "$intsize" in
'')
echo "Checking to see how big your integers are..." >&4
- $cat >intsize.c <<'EOCP'
+ $cat >try.c <<'EOCP'
#include <stdio.h>
int main()
{
@@ -4353,9 +4522,9 @@ int main()
exit(0);
}
EOCP
- set intsize
- if eval $compile_ok && ./intsize > /dev/null; then
- eval `./intsize`
+ set try
+ if eval $compile_ok && $run ./try > /dev/null; then
+ eval `$run ./try`
echo "Your integers are $intsize bytes long."
echo "Your long integers are $longsize bytes long."
echo "Your short integers are $shortsize bytes long."
@@ -4382,7 +4551,7 @@ EOM
fi
;;
esac
-$rm -f intsize intsize.*
+$rm -f try try.*
: see what type lseek is declared as in the kernel
rp="What is the type used for lseek's offset on this system?"
@@ -4402,7 +4571,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- lseeksize=`./try`
+ lseeksize=`$run ./try`
echo "Your file offsets are $lseeksize bytes long."
else
dflt=$longsize
@@ -4435,7 +4604,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') fpossize=4
echo "(I can't execute the test program--guessing $fpossize.)" >&4
@@ -4514,7 +4683,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- lseeksize=`./try`
+ lseeksize=`$run ./try`
$echo "Your file offsets are now $lseeksize bytes long."
else
dflt="$lseeksize"
@@ -4539,7 +4708,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
dflt="$lseeksize"
case "$yyy" in
'') echo " "
@@ -4685,7 +4854,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- ptrsize=`./try`
+ ptrsize=`$run ./try`
echo "Your pointers are $ptrsize bytes long."
else
dflt='4'
@@ -4729,7 +4898,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- longlongsize=`./try$exe_ext`
+ longlongsize=`$run ./try`
echo "Your long longs are $longlongsize bytes long."
else
dflt='8'
@@ -5152,7 +5321,7 @@ esac
echo " "
echo "Checking for GNU C Library..." >&4
-cat >gnulibc.c <<EOM
+cat >try.c <<EOM
#include <stdio.h>
int main()
{
@@ -5163,15 +5332,15 @@ int main()
#endif
}
EOM
-set gnulibc
-if eval $compile_ok && ./gnulibc; then
+set try
+if eval $compile_ok && $run ./try; then
val="$define"
echo "You are using the GNU C Library"
else
val="$undef"
echo "You are not using the GNU C Library"
fi
-$rm -f gnulibc*
+$rm -f try try.*
set d_gnulibc
eval $setvar
@@ -5684,7 +5853,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- doublesize=`./try`
+ doublesize=`$run ./try`
echo "Your double is $doublesize bytes long."
else
dflt='8'
@@ -5728,7 +5897,7 @@ EOCP
set try
set try
if eval $compile; then
- longdblsize=`./try$exe_ext`
+ longdblsize=`$run ./try`
echo "Your long doubles are $longdblsize bytes long."
else
dflt='8'
@@ -5812,6 +5981,10 @@ case "$myarchname" in
archname=''
;;
esac
+case "$targetarch" in
+'') ;;
+*) archname=`echo $targetarch|sed 's,^[^-]*-,,'` ;;
+esac
myarchname="$tarch"
case "$archname" in
'') dflt="$tarch";;
@@ -6986,7 +7159,7 @@ int main() {
exit(1); /* fail */
}
EOM
- if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && ./a.out; then
+ if $cc $ccflags $ldflags try.c >/dev/null 2>&1 && $run ./a.out; then
cat <<EOM
You appear to have ELF support. I'll use $cc to build dynamic libraries.
EOM
@@ -8031,7 +8204,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"';
@@ -8053,7 +8226,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"';
@@ -8075,7 +8248,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"';
@@ -8097,7 +8270,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
123.456)
sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"';
@@ -8267,7 +8440,7 @@ for xxx_convert in $xxx_list; do
set try -DTRY_$xxx_convert
if eval $compile; then
echo "$xxx_convert() found." >&4
- if ./try; then
+ if $run ./try; then
echo "I'll use $xxx_convert to convert floats into a string." >&4
break;
else
@@ -8401,7 +8574,7 @@ case "$d_getpgrp" in
"$define")
echo " "
echo "Checking to see which flavor of getpgrp is in use..."
- $cat >set.c <<EOP
+ $cat >try.c <<EOP
#$i_unistd I_UNISTD
#include <sys/types.h>
#ifdef I_UNISTD
@@ -8423,10 +8596,10 @@ int main()
exit(1);
}
EOP
- if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo "You have to use getpgrp(pid) instead of getpgrp()." >&4
val="$define"
- elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo "You have to use getpgrp() instead of getpgrp(pid)." >&4
val="$undef"
else
@@ -8453,7 +8626,7 @@ EOP
esac
set d_bsdgetpgrp
eval $setvar
-$rm -f set set.c
+$rm -f try try.*
: see if setpgrp exists
set setpgrp d_setpgrp
@@ -8463,7 +8636,7 @@ case "$d_setpgrp" in
"$define")
echo " "
echo "Checking to see which flavor of setpgrp is in use..."
- $cat >set.c <<EOP
+ $cat >try.c <<EOP
#$i_unistd I_UNISTD
#include <sys/types.h>
#ifdef I_UNISTD
@@ -8485,10 +8658,10 @@ int main()
exit(1);
}
EOP
- if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ if $cc -o try -DTRY_BSD_PGRP $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4
val="$define"
- elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then
+ elif $cc -o try $ccflags $ldflags try.c $libs >/dev/null 2>&1 && $run ./try; then
echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4
val="$undef"
else
@@ -8515,7 +8688,7 @@ EOP
esac
set d_bsdsetpgrp
eval $setvar
-$rm -f set set.c
+$rm -f try try.*
: see if bzero exists
set bzero d_bzero
eval $inlibc
@@ -8605,7 +8778,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- ./try
+ $run ./try
yyy=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
@@ -8701,7 +8874,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- ./try
+ $run ./try
castflags=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
@@ -8724,7 +8897,7 @@ echo " "
if set vprintf val -f d_vprintf; eval $csym; $val; then
echo 'vprintf() found.' >&4
val="$define"
- $cat >vprintf.c <<'EOF'
+ $cat >try.c <<'EOF'
#include <varargs.h>
int main() { xxx("foo"); }
@@ -8739,8 +8912,8 @@ va_dcl
exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
}
EOF
- set vprintf
- if eval $compile && ./vprintf; then
+ set try
+ if eval $compile && $run ./try; then
echo "Your vsprintf() returns (int)." >&4
val2="$undef"
else
@@ -8752,6 +8925,7 @@ else
val="$undef"
val2="$undef"
fi
+$rm -f try try.*
set d_vprintf
eval $setvar
val=$val2
@@ -9188,7 +9362,7 @@ $cat >fred.c<<EOM
#include <stdio.h>
#$i_dlfcn I_DLFCN
#ifdef I_DLFCN
-#include <dlfcn.h> /* the dynamic linker include file for Sunos/Solaris */
+#include <dlfcn.h> /* the dynamic linker include file for SunOS/Solaris */
#else
#include <sys/types.h>
#include <nlist.h>
@@ -9233,8 +9407,8 @@ EOM
if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 &&
$ld -o dyna.$dlext $ldflags $lddlflags tmp-dyna${_o} > /dev/null 2>&1 &&
- $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then
- xxx=`./fred`
+ $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1 && $to dyna.$dlext; then
+ xxx=`$run ./fred`
case $xxx in
1) echo "Test program failed using dlopen." >&4
echo "Perhaps you should not use dynamic loading." >&4;;
@@ -9295,7 +9469,7 @@ eval $inlibc
: Locate the flags for 'open()'
echo " "
-$cat >open3.c <<'EOCP'
+$cat >try.c <<'EOCP'
#include <sys/types.h>
#ifdef I_FCNTL
#include <fcntl.h>
@@ -9314,10 +9488,10 @@ int main() {
EOCP
: check sys/file.h first to get FREAD on Sun
if $test `./findhdr sys/file.h` && \
- set open3 -DI_SYS_FILE && eval $compile; then
+ set try -DI_SYS_FILE && eval $compile; then
h_sysfile=true;
echo "<sys/file.h> defines the O_* constants..." >&4
- if ./open3; then
+ if $run ./try; then
echo "and you have the 3 argument form of open()." >&4
val="$define"
else
@@ -9325,10 +9499,10 @@ if $test `./findhdr sys/file.h` && \
val="$undef"
fi
elif $test `./findhdr fcntl.h` && \
- set open3 -DI_FCNTL && eval $compile; then
+ set try -DI_FCNTL && eval $compile; then
h_fcntl=true;
echo "<fcntl.h> defines the O_* constants..." >&4
- if ./open3; then
+ if $run ./try; then
echo "and you have the 3 argument form of open()." >&4
val="$define"
else
@@ -9341,7 +9515,7 @@ else
fi
set d_open3
eval $setvar
-$rm -f open3*
+$rm -f try try.*
: see which of string.h or strings.h is needed
echo " "
@@ -9400,7 +9574,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- o_nonblock=`./try`
+ o_nonblock=`$run ./try`
case "$o_nonblock" in
'') echo "I can't figure it out, assuming O_NONBLOCK will do.";;
*) echo "Seems like we can use $o_nonblock.";;
@@ -9497,7 +9671,7 @@ EOCP
set try
if eval $compile_ok; then
echo "$startsh" >mtry
- echo "./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
+ echo "$run ./try >try.out 2>try.ret 3>try.err || exit 4" >>mtry
chmod +x mtry
./mtry >/dev/null 2>&1
case $? in
@@ -9598,7 +9772,7 @@ case "$d_fcntl" in
"$define")
set try
if eval $compile_ok; then
- if ./try; then
+ if $run ./try; then
echo "Yes, it seems to work."
val="$define"
else
@@ -9712,7 +9886,7 @@ $cat <<EOM
Checking to see how well your C compiler handles fd_set and friends ...
EOM
-$cat >fd_set.c <<EOCP
+$cat >try.c <<EOCP
#$i_systime I_SYS_TIME
#$i_sysselct I_SYS_SELECT
#$d_socket HAS_SOCKET
@@ -9740,12 +9914,12 @@ int main() {
#endif
}
EOCP
-set fd_set -DTRYBITS
+set try -DTRYBITS
if eval $compile; then
d_fds_bits="$define"
d_fd_set="$define"
echo "Well, your system knows about the normal fd_set typedef..." >&4
- if ./fd_set; then
+ if $run ./try; then
echo "and you have the normal fd_set macros (just as I'd expect)." >&4
d_fd_macros="$define"
else
@@ -9758,12 +9932,12 @@ else
$cat <<'EOM'
Hmm, your compiler has some difficulty with fd_set. Checking further...
EOM
- set fd_set
+ set try
if eval $compile; then
d_fds_bits="$undef"
d_fd_set="$define"
echo "Well, your system has some sort of fd_set available..." >&4
- if ./fd_set; then
+ if $run ./try; then
echo "and you have the normal fd_set macros." >&4
d_fd_macros="$define"
else
@@ -9779,7 +9953,7 @@ EOM
d_fd_macros="$undef"
fi
fi
-$rm -f fd_set*
+$rm -f try try.*
: see if fgetpos exists
set fgetpos d_fgetpos
@@ -10506,7 +10680,7 @@ EOCP
esac
set try
if eval $compile; then
- foo=`./try`
+ foo=`$run ./try`
case "$foo" in
*" 4294967303.150000 1.150000 4294967302.000000")
echo >&4 "Your modfl() is broken for large values."
@@ -10628,7 +10802,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- dflt=`./try`
+ dflt=`$run ./try`
else
dflt='1'
echo "(I can't seem to compile the test program. Guessing...)"
@@ -10744,7 +10918,7 @@ esac
case "$i8type" in
'') set try -DINT8
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int8_t) i8type=int8_t
u8type=uint8_t
i8size=1
@@ -10777,7 +10951,7 @@ esac
case "$i16type" in
'') set try -DINT16
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int16_t)
i16type=int16_t
u16type=uint16_t
@@ -10819,7 +10993,7 @@ esac
case "$i32type" in
'') set try -DINT32
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
int32_t)
i32type=int32_t
u32type=uint32_t
@@ -10898,7 +11072,7 @@ set try
d_nv_preserves_uv="$undef"
if eval $compile; then
- d_nv_preserves_uv_bits="`./try$exe_ext`"
+ d_nv_preserves_uv_bits="`$run ./try`"
fi
case "$d_nv_preserves_uv_bits" in
\-[1-9]*)
@@ -11286,7 +11460,7 @@ exit(0);
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
@@ -11364,7 +11538,7 @@ exit(0);
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
@@ -11424,7 +11598,7 @@ exit(0);
EOCP
set try
if eval $compile_ok; then
- if ./try 2>/dev/null; then
+ if $run ./try 2>/dev/null; then
echo "Yes, it can."
val="$define"
else
@@ -11593,7 +11767,7 @@ END
val="$undef"
set try
if eval $compile; then
- xxx=`./try`
+ xxx=`$run ./try`
case "$xxx" in
semun) val="$define" ;;
esac
@@ -11651,7 +11825,7 @@ END
val="$undef"
set try
if eval $compile; then
- xxx=`./try`
+ xxx=`$run ./try`
case "$xxx" in
semid_ds) val="$define" ;;
esac
@@ -11976,7 +12150,7 @@ int main()
EOP
set try
if eval $compile; then
- if ./try >/dev/null 2>&1; then
+ if $run ./try >/dev/null 2>&1; then
echo "POSIX sigsetjmp found." >&4
val="$define"
else
@@ -12159,8 +12333,8 @@ int main() {
EOP
val="$undef"
set try
-if eval $compile; then
- if ./try; then
+if eval $compile && $to try.c; then
+ if $run ./try; then
echo "Your stdio acts pretty std."
val="$define"
else
@@ -12256,8 +12430,8 @@ int main() {
}
EOP
set try
- if eval $compile; then
- case `./try$exe_ext` in
+ if eval $compile && $to try.c; then
+ case `$run ./try` in
Pass_changed)
echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4
d_stdio_ptr_lval_sets_cnt="$define" ;;
@@ -12296,8 +12470,8 @@ int main() {
}
EOP
set try
- if eval $compile; then
- if ./try; then
+ if eval $compile && $to try.c; then
+ if $run ./try; then
echo "And its _base field acts std."
val="$define"
else
@@ -12327,7 +12501,7 @@ EOCP
do
set try -DSTDIO_STREAM_ARRAY=$s
if eval $compile; then
- case "`./try$exe_ext`" in
+ case "`$run ./try`" in
yes) stdio_stream_array=$s; break ;;
esac
fi
@@ -12473,7 +12647,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
ok) echo "Your strtoll() seems to be working okay." ;;
*) cat <<EOM >&4
@@ -12558,7 +12732,7 @@ EOCP
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtoul() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtoul() doesn't seem to be working okay.
@@ -12612,7 +12786,7 @@ int main() {
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtoull() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtoull() doesn't seem to be working okay.
@@ -12664,7 +12838,7 @@ int main() {
EOCP
set try
if eval $compile; then
- case "`./try`" in
+ case "`$run ./try`" in
ok) echo "Your strtouq() seems to be working okay." ;;
*) cat <<EOM >&4
Your strtouq() doesn't seem to be working okay.
@@ -12752,10 +12926,6 @@ fi
set d_tzname
eval $setvar
-case "$crosscompile" in
-''|[nN]*) crosscompile="$undef" ;;
-esac
-
case "$osname" in
next|rhapsody|darwin) multiarch="$define" ;;
esac
@@ -12765,14 +12935,14 @@ esac
: check for ordering of bytes in a long
echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
*$define*)
$cat <<EOM
You seem to be either cross-compiling or doing a multiarchitecture build,
skipping the byteorder check.
EOM
- byteorder='0xffff'
+ byteorder='ffff'
;;
*)
case "$byteorder" in
@@ -12809,7 +12979,7 @@ EOCP
xxx_prompt=y
set try
if eval $compile && ./try > /dev/null; then
- dflt=`./try`
+ dflt=`$run ./try`
case "$dflt" in
[1-4][1-4][1-4][1-4]|12345678|87654321)
echo "(The test program ran ok.)"
@@ -12894,8 +13064,8 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- echo "(Testign for character data alignment may dump core.)" >&4
- ./try 2>&1 >/dev/null
+ echo "(Testing for character data alignment may dump core.)" >&4
+ $run ./try 2>&1 >/dev/null
case "$?" in
0) cat >&4 <<EOM
You can access character data pretty unalignedly.
@@ -13002,7 +13172,7 @@ case "$d_closedir" in
"$define")
echo " "
echo "Checking whether closedir() returns a status..." >&4
- cat > closedir.c <<EOM
+ cat > try.c <<EOM
#$i_dirent I_DIRENT /**/
#$i_sysdir I_SYS_DIR /**/
#$i_sysndir I_SYS_NDIR /**/
@@ -13031,9 +13201,9 @@ case "$d_closedir" in
#endif
int main() { return closedir(opendir(".")); }
EOM
- set closedir
+ set try
if eval $compile_ok; then
- if ./closedir > /dev/null 2>&1 ; then
+ if $run ./try > /dev/null 2>&1 ; then
echo "Yes, it does."
val="$undef"
else
@@ -13051,7 +13221,7 @@ EOM
esac
set d_void_closedir
eval $setvar
-$rm -f closedir*
+$rm -f try try.*
: see if there is a wait4
set wait4 d_wait4
eval $inlibc
@@ -13081,7 +13251,7 @@ Revision='$Revision'
: check for alignment requirements
echo " "
-case "$crosscompile$multiarch" in
+case "$usecrosscompile$multiarch" in
*$define*)
$cat <<EOM
You seem to be either cross-compiling or doing a multiarchitecture build,
@@ -13118,7 +13288,7 @@ int main()
EOCP
set try
if eval $compile_ok; then
- dflt=`./try`
+ dflt=`$run ./try`
else
dflt='8'
echo "(I can't seem to compile the test program...)"
@@ -13236,9 +13406,9 @@ int main(int argc, char *argv[])
}
EOCP
set try
- if eval $compile_ok && ./try; then
+ if eval $compile_ok && $run ./try; then
echo 'Looks OK.' >&4
- set `./try 1`
+ set `$run ./try 1`
db_version_major=$1
db_version_minor=$2
db_version_patch=$3
@@ -13484,7 +13654,7 @@ done
echo " "
echo "Determining whether or not we are on an EBCDIC system..." >&4
-$cat >tebcdic.c <<'EOM'
+$cat >try.c <<'EOM'
int main()
{
if ('M'==0xd4) return 0;
@@ -13493,19 +13663,19 @@ int main()
EOM
val=$undef
-set tebcdic
+set try
if eval $compile_ok; then
- if ./tebcdic; then
+ if $run ./try; then
echo "You seem to speak EBCDIC." >&4
val="$define"
else
- echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4
+ echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8." >&4
fi
else
echo "I'm unable to compile the test program." >&4
echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4
fi
-$rm -f tebcdic.c tebcdic
+$rm -f try try.*
set ebcdic
eval $setvar
@@ -13530,7 +13700,9 @@ $cat >>try.c <<EOCP
# define STDIO_STREAM_ARRAY $stdio_stream_array
#endif
int main() {
- FILE* p = fopen("try.out", "w");
+ FILE* p;
+ unlink("try.out");
+ p = fopen("try.out", "w");
#ifdef TRY_FPUTC
fputc('x', p);
#else
@@ -13579,12 +13751,14 @@ int main() {
}
EOCP
: first we have to find out how _not_ to flush
+$to try.c
if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
output=''
set try -DTRY_FPUTC
if eval $compile; then
+ $run ./try 2>/dev/null
$rm -f try.out
- ./try$exe_ext 2>/dev/null
+ $from try.out
if $test ! -s try.out -a "X$?" = X42; then
output=-DTRY_FPUTC
fi
@@ -13592,10 +13766,10 @@ if $test "X$fflushNULL" = X -o "X$fflushall" = X; then
case "$output" in
'')
set try -DTRY_FPRINTF
- $rm -f try.out
if eval $compile; then
+ $run ./try 2>/dev/null
$rm -f try.out
- ./try$exe_ext 2>/dev/null
+ $from try.out
if $test ! -s try.out -a "X$?" = X42; then
output=-DTRY_FPRINTF
fi
@@ -13607,9 +13781,10 @@ fi
case "$fflushNULL" in
'') set try -DTRY_FFLUSH_NULL $output
if eval $compile; then
- $rm -f try.out
- ./try$exe_ext 2>/dev/null
+ $run ./try 2>/dev/null
code="$?"
+ $rm -f try.out
+ $from try.out
if $test -s try.out -a "X$code" = X42; then
fflushNULL="`$cat try.out`"
else
@@ -13655,7 +13830,7 @@ EOCP
set tryp
if eval $compile; then
$rm -f tryp.out
- $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+ $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
if cmp tryp.c tryp.out >/dev/null 2>&1; then
$cat >&4 <<EOM
fflush(NULL) seems to behave okay with input streams.
@@ -13719,7 +13894,7 @@ EOCP
set tryp
if eval $compile; then
$rm -f tryp.out
- $cat tryp.c | ./tryp$exe_ext 2>/dev/null > tryp.out
+ $cat tryp.c | $run ./tryp 2>/dev/null > tryp.out
if cmp tryp.c tryp.out >/dev/null 2>&1; then
$cat >&4 <<EOM
Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
@@ -13732,7 +13907,7 @@ EOM
(Now testing the other method--but note that this also may fail.)
EOM
$rm -f try.out
- ./try$exe_ext 2>/dev/null
+ $run ./try 2>/dev/null
if $test -s try.out -a "X$?" = X42; then
fflushall="`$cat try.out`"
fi
@@ -13838,7 +14013,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') gidsize=4
echo "(I can't execute the test program--guessing $gidsize.)" >&4
@@ -13872,7 +14047,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') gidsign=1
echo "(I can't execute the test program--guessing unsigned.)" >&4
@@ -13907,7 +14082,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"';
@@ -13929,7 +14104,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"';
@@ -13952,7 +14127,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64;
@@ -13974,7 +14149,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"';
@@ -13996,7 +14171,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"';
@@ -14018,7 +14193,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try$exe_ext`
+ yyy=`$run ./try`
case "$yyy" in
12345678901)
sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"';
@@ -14339,8 +14514,8 @@ main(int ac, char **av)
}
EOCP
set try
- if eval $compile && ./try 2>&1 >/dev/null; then
- case "`./try`" in
+ if eval $compile && $run ./try 2>&1 >/dev/null; then
+ case "`$run ./try`" in
"that's all right, then")
okay=yes
;;
@@ -14588,13 +14763,13 @@ $cc $ccflags -c bar2.c >/dev/null 2>&1
$cc $ccflags -c foo.c >/dev/null 2>&1
$ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1
if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- ./foobar >/dev/null 2>&1; then
+ $run ./foobar >/dev/null 2>&1; then
echo "$ar appears to generate random libraries itself."
orderlib=false
ranlib=":"
elif $ar ts bar$_a >/dev/null 2>&1 &&
$cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 &&
- ./foobar >/dev/null 2>&1; then
+ $run ./foobar >/dev/null 2>&1; then
echo "a table of contents needs to be added with '$ar ts'."
orderlib=false
ranlib="$ar ts"
@@ -14734,7 +14909,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- selectminbits=`./try`
+ selectminbits=`$run ./try`
case "$selectminbits" in
'') cat >&4 <<EOM
Cannot figure out on how many bits at a time your select() operates.
@@ -14926,13 +15101,13 @@ $cat >>signal_cmd <<'EOS'
set signal
if eval $compile_ok; then
- ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
+ $run ./signal$_exe | $sort -n +1 | $uniq | $awk -f signal.awk >signal.lst
else
echo "(I can't seem be able to compile the whole test program)" >&4
echo "(I'll try it in little pieces.)" >&4
set signal -DJUST_NSIG
if eval $compile_ok; then
- ./signal$_exe > signal.nsg
+ $run ./signal$_exe > signal.nsg
$cat signal.nsg
else
echo "I can't seem to figure out how many signals you have." >&4
@@ -14953,7 +15128,7 @@ EOCP
set signal
if eval $compile; then
echo "SIG${xx} found."
- ./signal$_exe >> signal.ls1
+ $run ./signal$_exe >> signal.ls1
else
echo "SIG${xx} NOT found."
fi
@@ -15044,7 +15219,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') sizesize=4
echo "(I can't execute the test program--guessing $sizesize.)" >&4
@@ -15138,7 +15313,7 @@ esac
set ssize_t ssizetype int stdio.h sys/types.h
eval $typedef
dflt="$ssizetype"
-$cat > ssize.c <<EOM
+$cat > try.c <<EOM
#include <stdio.h>
#include <sys/types.h>
#define Size_t $sizetype
@@ -15155,9 +15330,9 @@ int main()
}
EOM
echo " "
-set ssize
-if eval $compile_ok && ./ssize > /dev/null; then
- ssizetype=`./ssize`
+set try
+if eval $compile_ok && $run ./try > /dev/null; then
+ ssizetype=`$run ./try`
echo "I'll be using $ssizetype for functions returning a byte count." >&4
else
$cat >&4 <<EOM
@@ -15173,7 +15348,7 @@ EOM
. ./myread
ssizetype="$ans"
fi
-$rm -f ssize ssize.*
+$rm -f try try.*
: see what type of char stdio uses.
echo " "
@@ -15247,7 +15422,7 @@ int main() {
EOCP
set try
if eval $compile_ok; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') uidsize=4
echo "(I can't execute the test program--guessing $uidsize.)" >&4
@@ -15280,7 +15455,7 @@ int main() {
EOCP
set try
if eval $compile; then
- yyy=`./try`
+ yyy=`$run ./try`
case "$yyy" in
'') uidsign=1
echo "(I can't execute the test program--guessing unsigned.)" >&4
@@ -15604,7 +15779,7 @@ case "$osname-$gccversion" in
irix-) ccflags="\$ccflags -woff 1178" ;;
os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;;
esac
-$cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext
+$cc -o try $optimize \$ccflags $ldflags try.c $libs && $run ./try
EOSH
chmod +x Cppsym.try
$eunicefix Cppsym.try
@@ -16292,7 +16467,6 @@ cppminus='$cppminus'
cpprun='$cpprun'
cppstdin='$cppstdin'
cppsymbols='$cppsymbols'
-crosscompile='$crosscompile'
cryptlib='$cryptlib'
csh='$csh'
d_Gconvert='$d_Gconvert'
@@ -16656,6 +16830,7 @@ flex='$flex'
fpossize='$fpossize'
fpostype='$fpostype'
freetype='$freetype'
+from='$from'
full_ar='$full_ar'
full_csh='$full_csh'
full_sed='$full_sed'
@@ -16906,6 +17081,7 @@ rd_nodata='$rd_nodata'
revision='$revision'
rm='$rm'
rmail='$rmail'
+run='$run'
runnm='$runnm'
sPRIEUldbl='$sPRIEUldbl'
sPRIFUldbl='$sPRIFUldbl'
@@ -16980,11 +17156,13 @@ subversion='$subversion'
sysman='$sysman'
tail='$tail'
tar='$tar'
+targetarch='$targetarch'
tbl='$tbl'
tee='$tee'
test='$test'
timeincl='$timeincl'
timetype='$timetype'
+to='$to'
touch='$touch'
tr='$tr'
trnl='$trnl'
@@ -17007,6 +17185,7 @@ uquadtype='$uquadtype'
use5005threads='$use5005threads'
use64bitall='$use64bitall'
use64bitint='$use64bitint'
+usecrosscompile='$usecrosscompile'
usedl='$usedl'
useithreads='$useithreads'
uselargefiles='$uselargefiles'
diff --git a/Cross/README b/Cross/README
index 851fead71a..c750030c48 100644
--- a/Cross/README
+++ b/Cross/README
@@ -1 +1,3 @@
-This is for moment just a placeholder.
+If Perl is built using a cross-compilation environment the Cross
+directory will contain temporary helper scripts for the duration
+of the build.
diff --git a/Makefile.SH b/Makefile.SH
index 618f1201f8..5eaef2cd25 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -802,6 +802,7 @@ realclean: _realcleaner _mopup
@echo "Note that make realclean does not delete config.sh or Policy.sh"
_clobber:
+ -@rm -f Cross/run-* Cross/to-* Cross/from-*
rm -f config.sh cppstdin Policy.sh
clobber: _realcleaner _mopup _clobber
diff --git a/Porting/Glossary b/Porting/Glossary
index 7a5e580b73..26e6e4ca92 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -328,11 +328,6 @@ cppsymbols (Cppsym.U):
not in this list, see ccsymbols and cppccsymbols.
The list is a space-separated list of symbol=value tokens.
-crosscompile (crosscompile.U):
- This variable conditionally defines the CROSSCOMPILE symbol
- which signifies that the build process is be a cross-compilation.
- This is normally set by hints files or from Configure command line.
-
cryptlib (d_crypt.U):
This variable holds -lcrypt or the path to a libcrypt.a archive if
the crypt() function is not defined in the standard C library. It is
@@ -1984,6 +1979,12 @@ freetype (mallocsrc.U):
This variable contains the return type of free(). It is usually
void, but occasionally int.
+from (Cross.U):
+ This variable contains the command used by Configure
+ to copy files from the target host. Useful and available
+ only during Perl build.
+ The string ':' if not cross-compiling.
+
full_ar (Loc_ar.U):
This variable contains the full pathname to 'ar', whether or
not the user has specified 'portability'. This is only used
@@ -3197,6 +3198,12 @@ rmail (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+run (Cross.U):
+ This variable contains the command used by Configure
+ to copy and execute a cross-compiled executable in the
+ target host. Useful and available only during Perl build.
+ Empty string '' if not cross-compiling.
+
runnm (usenm.U):
This variable contains 'true' or 'false' depending whether the
nm extraction should be performed or not, according to the value
@@ -3582,6 +3589,10 @@ tar (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
+targetarch (Cross.U):
+ If cross-compiling, this variable contains the target architecture.
+ If not, this will be empty.
+
tbl (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
@@ -3603,6 +3614,12 @@ timetype (d_time.U):
or time_t on BSD sites (in which case <sys/types.h> should be
included). Anyway, the type Time_t should be used.
+to (Cross.U):
+ This variable contains the command used by Configure
+ to copy to from the target host. Useful and available
+ only during Perl build.
+ The string ':' if not cross-compiling.
+
touch (Loc.U):
This variable is used internally by Configure to determine the
full pathname (if any) of the touch program. After Configure runs,
@@ -3699,6 +3716,10 @@ use64bitint (use64bits.U):
This may mean using for example "long longs", while your memory
may still be limited to 2 gigabytes.
+usecrosscompile (Cross.U):
+ This variable conditionally defines the USE_CROSS_COMPILE symbol,
+ and indicates that Perl has been cross-compiled.
+
usedl (dlsrc.U):
This variable indicates if the system supports dynamic
loading of some sort. See also dlsrc and dlobj.
diff --git a/Porting/config.sh b/Porting/config.sh
index a7c490c582..b804e9526b 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Wed Jun 13 21:04:31 EET DST 2001
+# Configuration time: Fri Jun 15 02:15:37 EET DST 2001
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
@@ -63,7 +63,7 @@ ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_
ccversion='V5.6-082'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Wed Jun 13 21:04:31 EET DST 2001'
+cf_time='Fri Jun 15 02:15:37 EET DST 2001'
charsize='1'
chgrp=''
chmod=''
@@ -83,7 +83,6 @@ cppminus=''
cpprun='/usr/bin/cpp'
cppstdin='cppstdin'
cppsymbols='_AES_SOURCE=1 __alpha=1 __ALPHA=1 _ANSI_C_SOURCE=1 __LANGUAGE_C__=1 _LONGLONG=1 __osf__=1 _OSF_SOURCE=1 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 _SYSTYPE_BSD=1 __unix__=1 _XOPEN_SOURCE=1'
-crosscompile='undef'
cryptlib=''
csh='csh'
d_Gconvert='gcvt((x),(n),(b))'
@@ -439,7 +438,7 @@ eunicefix=':'
exe_ext=''
expr='expr'
extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/Scalar PerlIO/Via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Time/Piece XS/Typemap attrs re Errno'
-fflushNULL='define'
+fflushNULL='undef'
fflushall='undef'
find=''
firstmakefile='makefile'
@@ -447,6 +446,7 @@ flex=''
fpossize='8'
fpostype='fpos_t'
freetype='void'
+from=':'
full_ar='/usr/bin/ar'
full_csh='/usr/bin/csh'
full_sed='/usr/bin/sed'
@@ -670,7 +670,7 @@ patchlevel='7'
path_sep=':'
perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
perl=''
-perl_patchlevel='10537'
+perl_patchlevel='10575'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lm -liconv -lutil -lpthread -lexc'
perlpath='/opt/perl/bin/perl'
@@ -697,6 +697,7 @@ rd_nodata='-1'
revision='5'
rm='rm'
rmail=''
+run=''
runnm='true'
sPRIEUldbl='"E"'
sPRIFUldbl='"F"'
@@ -771,11 +772,13 @@ subversion='1'
sysman='/usr/man/man1'
tail=''
tar=''
+targetarch=''
tbl=''
tee=''
test='test'
timeincl='/usr/include/sys/time.h '
timetype='time_t'
+to=':'
touch='touch'
tr='tr'
trnl='\n'
@@ -798,6 +801,7 @@ uquadtype='unsigned long'
use5005threads='define'
use64bitall='define'
use64bitint='define'
+usecrosscompile='undef'
usedl='define'
useithreads='undef'
uselargefiles='define'
@@ -809,7 +813,7 @@ usenm='true'
useopcode='true'
useperlio='define'
useposix='true'
-usereentrant=''
+usereentrant='undef'
usesfio='false'
useshrplib='true'
usesocks='undef'
@@ -866,7 +870,7 @@ PERL_SUBVERSION=1
PERL_API_REVISION=5
PERL_API_VERSION=5
PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=10537
+PERL_PATCHLEVEL=10575
PERL_CONFIG_SH=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
diff --git a/Porting/config_H b/Porting/config_H
index 3e85c17e2e..9aea69c251 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -17,7 +17,7 @@
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Wed Jun 13 21:04:31 EET DST 2001
+ * Configuration time: Fri Jun 15 02:15:37 EET DST 2001
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
@@ -125,26 +125,6 @@
*/
#define HAS_DLERROR /**/
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
-/*#define DOSUID / **/
-
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is
* available to duplicate file descriptors.
@@ -922,17 +902,6 @@
*/
#define I_VALUES /**/
-/* I_STDARG:
- * This symbol, if defined, indicates that <stdarg.h> exists and should
- * be included.
- */
-/* I_VARARGS:
- * This symbol, if defined, indicates to the C program that it should
- * include <varargs.h>.
- */
-#define I_STDARG /**/
-/*#define I_VARARGS / **/
-
/* I_VFORK:
* This symbol, if defined, indicates to the C program that it should
* include vfork.h.
@@ -966,12 +935,6 @@
*/
#define SH_PATH "/bin/sh" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE / **/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1055,8 +1018,8 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+#define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
#endif
@@ -1132,7 +1095,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
@@ -2361,7 +2324,7 @@
* Note that if fflushNULL is defined, fflushall will not
* even be probed for and will be left undefined.
*/
-#define FFLUSH_NULL /**/
+/*#define FFLUSH_NULL / **/
/*#define FFLUSH_ALL / **/
/* Fpos_t:
@@ -3247,12 +3210,18 @@
* This symbol, if defined, indicates that Perl should
* be built to use the old draft POSIX threads API.
*/
+/* USE_REENTRANT_API:
+ * This symbol, if defined, indicates that Perl should
+ * try to use the various _r versions of library functions.
+ * This is extremely experimental.
+ */
#define USE_5005THREADS /**/
/*#define USE_ITHREADS / **/
#if defined(USE_5005THREADS) && !defined(USE_ITHREADS)
#define USE_THREADS /* until src is revised*/
#endif
/*#define OLD_PTHREADS_API / **/
+/*#define USE_REENTRANT_API / **/
/* PERL_VENDORARCH:
* If defined, this symbol contains the name of a private library.
@@ -3344,6 +3313,49 @@
#define PERL_XS_APIVERSION "5.7.1"
#define PERL_PM_APIVERSION "5.005"
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
+/*#define DOSUID / **/
+
+/* I_STDARG:
+ * This symbol, if defined, indicates that <stdarg.h> exists and should
+ * be included.
+ */
+/* I_VARARGS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <varargs.h>.
+ */
+#define I_STDARG /**/
+/*#define I_VARARGS / **/
+
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+/*#define USE_CROSS_COMPILE / **/
+#define PERL_TARGETARCH "" /**/
+#endif
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/config_h.SH b/config_h.SH
index 8ba725d916..35bfb1b1b7 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -145,26 +145,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_dlerror HAS_DLERROR /**/
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/
-#$d_dosuid DOSUID /**/
-
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is
* available to duplicate file descriptors.
@@ -942,17 +922,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$i_values I_VALUES /**/
-/* I_STDARG:
- * This symbol, if defined, indicates that <stdarg.h> exists and should
- * be included.
- */
-/* I_VARARGS:
- * This symbol, if defined, indicates to the C program that it should
- * include <varargs.h>.
- */
-#$i_stdarg I_STDARG /**/
-#$i_varargs I_VARARGS /**/
-
/* I_VFORK:
* This symbol, if defined, indicates to the C program that it should
* include vfork.h.
@@ -986,12 +955,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#define SH_PATH "$sh" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-#$crosscompile CROSSCOMPILE /**/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1075,7 +1038,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES $alignbytes
@@ -1152,7 +1115,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
@@ -3370,6 +3333,49 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
#define PERL_XS_APIVERSION "$xs_apiversion"
#define PERL_PM_APIVERSION "$pm_apiversion"
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+#$d_suidsafe SETUID_SCRIPTS_ARE_SECURE_NOW /**/
+#$d_dosuid DOSUID /**/
+
+/* I_STDARG:
+ * This symbol, if defined, indicates that <stdarg.h> exists and should
+ * be included.
+ */
+/* I_VARARGS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <varargs.h>.
+ */
+#$i_stdarg I_STDARG /**/
+#$i_varargs I_VARARGS /**/
+
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+#$usecrosscompile USE_CROSS_COMPILE /**/
+#define PERL_TARGETARCH "$targetarch" /**/
+#endif
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/configure.com b/configure.com
index 1d09675b8c..447a98133e 100644
--- a/configure.com
+++ b/configure.com
@@ -4969,7 +4969,6 @@ $ WC "cpplast='" + cpplast + "'"
$ WC "cppminus='" + cppminus + "'"
$ WC "cpprun='" + cpprun + "'"
$ WC "cppstdin='" + cppstdin + "'"
-$ WC "crosscompile='undef'"
$ WC "d_Gconvert='my_gconvert(x,n,t,b)'"
$ WC "d_PRIEldbl='" + d_PRIEUldbl + "'"
$ WC "d_PRIFldbl='" + d_PRIFUldbl + "'"
@@ -5564,6 +5563,7 @@ $ WC "use5005threads='" + use5005threads + "'"
$ WC "use64bitall='" + use64bitall + "'"
$ WC "use64bitint='" + use64bitint + "'"
$ WC "usedebugging_perl='" + use_debugging_perl + "'"
+$ WC "usecrosscompile='undef'"
$ WC "usedl='" + usedl + "'"
$ WC "useithreads='" + useithreads + "'"
$ WC "uselargefiles='" + uselargefiles + "'"
diff --git a/epoc/config.sh b/epoc/config.sh
index 0e5549e3c9..4e80423403 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -76,7 +76,6 @@ cppminus='-'
cpprun='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/'
cppstdin='arm-pe-gcc -E -B/usr/local/lib/gcc-lib/arm-pe/cygnus-2.7.2-960323/'
cppsymbols=''
-crosscompile='define'
cryptlib=''
csh='csh'
d_Gconvert='epoc_gcvt((x),(n),(b))'
@@ -725,6 +724,7 @@ uname='uname'
uniq='uniq'
use64bitall='undef'
use64bitint='undef'
+usecrosscompile='define'
usedl='undef'
uselargefiles='undef'
uselongdouble='undef'
diff --git a/hints/linux.sh b/hints/linux.sh
index a6b2bd985a..3234aeaa18 100644
--- a/hints/linux.sh
+++ b/hints/linux.sh
@@ -119,7 +119,7 @@ main() {
exit(0); /* succeed (yes, it's ELF) */
}
EOM
-if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then
+if ${cc:-gcc} try.c >/dev/null 2>&1 && $run ./a.out; then
cat <<'EOM' >&4
You appear to have ELF support. I'll try to use it for dynamic loading.
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 35e834e1a1..ba9a0fe245 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -6775,18 +6775,6 @@ FETCH_I<type>_ATTRIBUTES, MODIFY_I<type>_ATTRIBUTES
=back
-=head2 attrs - set/get attributes of a subroutine (deprecated)
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-method, locked
-
-=back
-
=head2 autouse - postpone load of modules until a function is used
=over 4
@@ -8577,7 +8565,7 @@ C<ccflags_uselargefiles>, C<ccname>, C<ccsymbols>, C<ccversion>, C<cf_by>,
C<cf_email>, C<cf_time>, C<charsize>, C<chgrp>, C<chmod>, C<chown>,
C<clocktype>, C<comm>, C<compress>, C<contains>, C<cp>, C<cpio>, C<cpp>,
C<cpp_stuff>, C<cppccsymbols>, C<cppflags>, C<cpplast>, C<cppminus>,
-C<cpprun>, C<cppstdin>, C<cppsymbols>, C<crosscompile>, C<cryptlib>, C<csh>
+C<cpprun>, C<cppstdin>, C<cppsymbols>, C<cryptlib>, C<csh>
=item d
@@ -8665,7 +8653,8 @@ C<exe_ext>, C<expr>, C<extensions>
=item f
C<fflushall>, C<fflushNULL>, C<find>, C<firstmakefile>, C<flex>,
-C<fpossize>, C<fpostype>, C<freetype>, C<full_ar>, C<full_csh>, C<full_sed>
+C<fpossize>, C<fpostype>, C<freetype>, C<from>, C<full_ar>, C<full_csh>,
+C<full_sed>
=item g
@@ -8758,7 +8747,7 @@ C<quadkind>, C<quadtype>
=item r
C<randbits>, C<randfunc>, C<randseedtype>, C<ranlib>, C<rd_nodata>,
-C<revision>, C<rm>, C<rmail>, C<runnm>
+C<revision>, C<rm>, C<rmail>, C<run>, C<runnm>
=item s
@@ -8779,20 +8768,20 @@ C<stdio_stream_array>, C<strings>, C<submit>, C<subversion>, C<sysman>
=item t
-C<tail>, C<tar>, C<tbl>, C<tee>, C<test>, C<timeincl>, C<timetype>,
-C<touch>, C<tr>, C<trnl>, C<troff>
+C<tail>, C<tar>, C<targetarch>, C<tbl>, C<tee>, C<test>, C<timeincl>,
+C<timetype>, C<to>, C<touch>, C<tr>, C<trnl>, C<troff>
=item u
C<u16size>, C<u16type>, C<u32size>, C<u32type>, C<u64size>, C<u64type>,
C<u8size>, C<u8type>, C<uidformat>, C<uidsign>, C<uidsize>, C<uidtype>,
C<uname>, C<uniq>, C<uquadtype>, C<use5005threads>, C<use64bitall>,
-C<use64bitint>, C<usedl>, C<useithreads>, C<uselargefiles>,
-C<uselongdouble>, C<usemorebits>, C<usemultiplicity>, C<usemymalloc>,
-C<usenm>, C<useopcode>, C<useperlio>, C<useposix>, C<usesfio>,
-C<useshrplib>, C<usesocks>, C<usethreads>, C<usevendorprefix>, C<usevfork>,
-C<usrinc>, C<uuname>, C<uvoformat>, C<uvsize>, C<uvtype>, C<uvuformat>,
-C<uvxformat>, C<uvXUformat>
+C<use64bitint>, C<usecrosscompile>, C<usedl>, C<useithreads>,
+C<uselargefiles>, C<uselongdouble>, C<usemorebits>, C<usemultiplicity>,
+C<usemymalloc>, C<usenm>, C<useopcode>, C<useperlio>, C<useposix>,
+C<usereentrant>, C<usesfio>, C<useshrplib>, C<usesocks>, C<usethreads>,
+C<usevendorprefix>, C<usevfork>, C<usrinc>, C<uuname>, C<uvoformat>,
+C<uvsize>, C<uvtype>, C<uvuformat>, C<uvxformat>, C<uvXUformat>
=item v
@@ -9401,22 +9390,6 @@ arrays
=back
-=head2 Errno - System errno constants
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item CAVEATS
-
-=item AUTHOR
-
-=item COPYRIGHT
-
-=back
-
=head2 Exporter - Implements default import method for modules
=over 4
@@ -14105,27 +14078,6 @@ C<Storable::is_retrieving>
=back
-=head2 Syslog, Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl
-interface to the UNIX syslog(3) calls
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-openlog $ident, $logopt, $facility, syslog $priority, $format, @args,
-setlogmask $mask_priority, setlogsock $sock_type (added in 5.004_02),
-closelog
-
-=item EXAMPLES
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=back
-
=head2 Syslog::Syslog, Sys::Syslog, openlog, closelog, setlogmask, syslog -
Perl interface to the UNIX syslog(3) calls
@@ -14758,24 +14710,6 @@ seconds to other date values
=back
-=head2 Time::Seconds - a simple API to convert seconds to other date values
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item METHODS
-
-=item AUTHOR
-
-=item LICENSE
-
-=item Bugs
-
-=back
-
=head2 Time::gmtime - by-name interface to Perl's built-in gmtime()
function
diff --git a/uconfig.h b/uconfig.h
index 08799f2540..67578fae84 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -121,26 +121,6 @@
*/
/*#define HAS_DLERROR / **/
-/* SETUID_SCRIPTS_ARE_SECURE_NOW:
- * This symbol, if defined, indicates that the bug that prevents
- * setuid scripts from being secure is not present in this kernel.
- */
-/* DOSUID:
- * This symbol, if defined, indicates that the C program should
- * check the script that it is executing for setuid/setgid bits, and
- * attempt to emulate setuid/setgid on systems that have disabled
- * setuid #! scripts because the kernel can't do it securely.
- * It is up to the package designer to make sure that this emulation
- * is done securely. Among other things, it should do an fstat on
- * the script it just opened to make sure it really is a setuid/setgid
- * script, it should make sure the arguments passed correspond exactly
- * to the argument on the #! line, and it should not trust any
- * subprocesses to which it must pass the filename rather than the
- * file descriptor of the script to be executed.
- */
-/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
-/*#define DOSUID / **/
-
/* HAS_DUP2:
* This symbol, if defined, indicates that the dup2 routine is
* available to duplicate file descriptors.
@@ -918,17 +898,6 @@
*/
/*#define I_VALUES / **/
-/* I_STDARG:
- * This symbol, if defined, indicates that <stdarg.h> exists and should
- * be included.
- */
-/* I_VARARGS:
- * This symbol, if defined, indicates to the C program that it should
- * include <varargs.h>.
- */
-#define I_STDARG /**/
-/*#define I_VARARGS / **/
-
/* I_VFORK:
* This symbol, if defined, indicates to the C program that it should
* include vfork.h.
@@ -962,12 +931,6 @@
*/
#define SH_PATH "" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE / **/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1051,8 +1014,8 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
-# define MEM_ALIGNBYTES 8
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
+#define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 4
#endif
@@ -1128,7 +1091,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
@@ -3346,6 +3309,49 @@
#define PERL_XS_APIVERSION "5.005"
#define PERL_PM_APIVERSION "5.005"
+/* SETUID_SCRIPTS_ARE_SECURE_NOW:
+ * This symbol, if defined, indicates that the bug that prevents
+ * setuid scripts from being secure is not present in this kernel.
+ */
+/* DOSUID:
+ * This symbol, if defined, indicates that the C program should
+ * check the script that it is executing for setuid/setgid bits, and
+ * attempt to emulate setuid/setgid on systems that have disabled
+ * setuid #! scripts because the kernel can't do it securely.
+ * It is up to the package designer to make sure that this emulation
+ * is done securely. Among other things, it should do an fstat on
+ * the script it just opened to make sure it really is a setuid/setgid
+ * script, it should make sure the arguments passed correspond exactly
+ * to the argument on the #! line, and it should not trust any
+ * subprocesses to which it must pass the filename rather than the
+ * file descriptor of the script to be executed.
+ */
+/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/
+/*#define DOSUID / **/
+
+/* I_STDARG:
+ * This symbol, if defined, indicates that <stdarg.h> exists and should
+ * be included.
+ */
+/* I_VARARGS:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <varargs.h>.
+ */
+#define I_STDARG /**/
+/*#define I_VARARGS / **/
+
+/* USE_CROSS_COMPILE:
+ * This symbol, if defined, indicates that Perl is being cross-compiled.
+ */
+/* PERL_TARGETARCH:
+ * This symbol, if defined, indicates the target architecture
+ * Perl has been cross-compiled to. Undefined if not a cross-compile.
+ */
+#ifndef USE_CROSS_COMPILE
+/*#define USE_CROSS_COMPILE / **/
+#define PERL_TARGETARCH "" /**/
+#endif
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/uconfig.sh b/uconfig.sh
index 5ffccae3fc..52e34b7b75 100755
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -15,7 +15,6 @@ castflags='0'
charsize='1'
clocktype='clock_t'
cpp_stuff='42'
-crosscompile='undef'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_PRIEUldbl='undef'
d_PRIFUldbl='undef'
@@ -560,6 +559,7 @@ uquadtype='uint64_t'
use5005threads='undef'
use64bitall='undef'
use64bitint='undef'
+usecrosscompile='undef'
usedl='undef'
useithreads='undef'
uselargefiles='undef'
diff --git a/vos/config.alpha.def b/vos/config.alpha.def
index 0fb92e3e91..5d437d85a6 100644
--- a/vos/config.alpha.def
+++ b/vos/config.alpha.def
@@ -15,7 +15,6 @@ $cpplast='-'
$cppminus='-'
$cpprun='cc -E -'
$cppstdin='cc -E'
-$crosscompile='undef'
$d_Gconvert='sprintf((b),"%.*g",(n),(x))'
$d_PRIeldbl='define'
$d_PRIfldbl='define'
@@ -503,6 +502,7 @@ $uquadtype='_error_'
$use5005threads='undef'
$use64bitall='undef'
$use64bitint='undef'
+$usecrosscompile='undef'
$usedl='undef'
$useithreads='undef'
$uselargefiles='undef'
diff --git a/vos/config.alpha.h b/vos/config.alpha.h
index 1b560b40bd..f610d327eb 100644
--- a/vos/config.alpha.h
+++ b/vos/config.alpha.h
@@ -962,12 +962,6 @@
*/
#define SH_PATH "/bin/sh" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE /**/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1051,7 +1045,7 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
@@ -1128,7 +1122,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
diff --git a/vos/config.ga.def b/vos/config.ga.def
index ffcd3cf814..7ad9bd0a8e 100644
--- a/vos/config.ga.def
+++ b/vos/config.ga.def
@@ -15,7 +15,6 @@ $cpplast='-'
$cppminus='-'
$cpprun='cc -E -'
$cppstdin='cc -E'
-$crosscompile='undef'
$d_Gconvert='sprintf((b),"%.*g",(n),(x))'
$d_PRIeldbl='define'
$d_PRIfldbl='define'
@@ -503,6 +502,7 @@ $uquadtype='_error_'
$use5005threads='undef'
$use64bitall='undef'
$use64bitint='undef'
+$usecrosscompile='undef'
$usedl='undef'
$useithreads='undef'
$uselargefiles='undef'
diff --git a/vos/config.ga.h b/vos/config.ga.h
index 7afd9a30f9..791d9374ee 100644
--- a/vos/config.ga.h
+++ b/vos/config.ga.h
@@ -962,12 +962,6 @@
*/
#define SH_PATH "/system/gnu_library/bin/bash.pm" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE /**/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1051,7 +1045,7 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
@@ -1128,7 +1122,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
diff --git a/win32/config.bc b/win32/config.bc
index e1eeca8971..a47e40534f 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -68,7 +68,6 @@ cppminus=''
cpprun='cpp32 -oCON'
cppstdin='cpp32 -oCON'
cppsymbols=''
-crosscompile='undef'
cryptlib=''
csh='undef'
d_Gconvert='gcvt((x),(n),(b))'
@@ -783,6 +782,7 @@ uquadtype='unsigned __int64'
use5005threads='undef'
use64bitall='undef'
use64bitint='undef'
+usecrosscompile='undef'
usedl='define'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config.gc b/win32/config.gc
index 7085cd20d3..38c7a15f6b 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -68,7 +68,6 @@ cppminus='-'
cpprun='gcc -E'
cppstdin='gcc -E'
cppsymbols=''
-crosscompile='undef'
cryptlib=''
csh='undef'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
@@ -783,6 +782,7 @@ uquadtype='unsigned long long'
use5005threads='undef'
use64bitall='undef'
use64bitint='undef'
+usecrosscompile='undef'
usedl='define'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config.vc b/win32/config.vc
index c01ce0c8ae..2e0bae22e0 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -68,7 +68,6 @@ cppminus=''
cpprun='cl -nologo -E'
cppstdin='cl -nologo -E'
cppsymbols=''
-crosscompile='undef'
cryptlib=''
csh='undef'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
@@ -783,6 +782,7 @@ uquadtype='unsigned __int64'
use5005threads='undef'
use64bitall='undef'
use64bitint='undef'
+usecrosscompile='undef'
usedl='define'
useithreads='undef'
uselargefiles='undef'
diff --git a/win32/config_H.bc b/win32/config_H.bc
index b1de84b871..c85c2e2343 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -962,12 +962,6 @@
*/
#define SH_PATH "cmd /x /c" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE /**/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1051,7 +1045,7 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
@@ -1128,7 +1122,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 8025e52fe4..945fa8adbd 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -962,12 +962,6 @@
*/
#define SH_PATH "cmd /x /c" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE /**/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1051,7 +1045,7 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
@@ -1128,7 +1122,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234
diff --git a/win32/config_H.vc b/win32/config_H.vc
index ca07d2bc72..ab4927d35f 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -962,12 +962,6 @@
*/
#define SH_PATH "cmd /x /c" /**/
-/* CROSSCOMPILE:
- * This symbol, if defined, signifies that we our
- * build process is a cross-compilation.
- */
-/*#define CROSSCOMPILE /**/
-
/* INTSIZE:
* This symbol contains the value of sizeof(int) so that the C
* preprocessor can make decisions based on it.
@@ -1051,7 +1045,7 @@
* double, or a long double when applicable. Usual values are 2,
* 4 and 8. The default is eight, for safety.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#else
#define MEM_ALIGNBYTES 8
@@ -1128,7 +1122,7 @@
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH)
# ifdef __LITTLE_ENDIAN__
# if LONGSIZE == 4
# define BYTEORDER 0x1234