# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Fri Feb 12 13:46:36 EET 1999 [metaconfig 3.0 PL70]
+# Generated on Mon Feb 22 11:28:58 EET 1999 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
vi=''
zcat=''
zip=''
+full_ar=''
full_sed=''
libswanted=''
hint=''
cppminus=''
cpprun=''
cppstdin=''
+crosscompile=''
d_access=''
d_accessx=''
d_alarm=''
d_uname=''
d_gethostprotos=''
d_getlogin=''
+d_getmntent=''
d_getnbyaddr=''
d_getnbyname=''
d_getnent=''
d_getsbyname=''
d_getsbyport=''
d_gnulibc=''
+d_hasmntopt=''
d_htonl=''
d_inetaton=''
d_isascii=''
small=''
split=''
modetype=''
+multiarch=''
mydomain=''
myhostname=''
phostname=''
fi
i_whoami=''
-: change the next line if compiling for Xenix/286 on Xenix/386
-xlibpth='/usr/lib/386 /lib/386'
-
-: Possible local library directories to search.
-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
-
-: general looking path for locating libraries
-glibpth="/shlib /usr/shlib /lib/pa1.1 /usr/lib/large"
-glibpth="$glibpth /lib /usr/lib $xlibpth"
-glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-
-: Private path used by Configure to find libraries. Its value
-: is prepended to libpth. This variable takes care of special
-: machines, like the mips. Usually, it should be empty.
-plibpth=''
-
: Possible local include directories to search.
: Set locincpth to "" in a hint file to defeat local include searches.
locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
: Extra object files, if any, needed on this platform.
archobjs=''
groupstype=''
+: change the next line if compiling for Xenix/286 on Xenix/386
+xlibpth='/usr/lib/386 /lib/386'
+
+: Possible local library directories to search.
+loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
+
+: general looking path for locating libraries
+glibpth="/shlib /usr/shlib /lib/pa1.1 /usr/lib/large"
+glibpth="$glibpth /lib /usr/lib $xlibpth"
+glibpth="$glibpth /lib/large /usr/lib/small /lib/small"
+glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+
+: Private path used by Configure to find libraries. Its value
+: is prepended to libpth. This variable takes care of special
+: machines, like the mips. Usually, it should be empty.
+plibpth=''
+
: default library list
libswanted=''
: some systems want to use only the non-versioned libso:s
[23]100) osname=mips ;;
next*) osname=next ;;
i386*)
- tmp=`/bin/uname -X 2>/dev/null|awk -e '/3\.2v[45]/{ print $(NF) }'`
- if $test "$tmp" != "" -a "$3" = "3.2" -a test -e '/etc/systemid'; then
+ tmp=`/bin/uname -X 2>/dev/null|awk '/3\.2v[45]/{ print $(NF) }'`
+ if $test "$tmp" != "" -a "$3" = "3.2" -a -f '/etc/systemid'; then
osname='sco'
osvers=$tmp
elif $test -f /etc/kconfig; then
. ./usethreads.cbu
fi
case "$osname" in
- aix|dec_osf|dos_djgpp|freebsd|hpux|irix|linux|openbsd|os2|solaris|vmesa)
+ aix|dec_osf|dos_djgpp|freebsd|hpux|irix|linux|next|openbsd|os2|solaris|vmesa)
# Known thread-capable platforms.
;;
*)
esac;
fi'
-if ./osf1; then
- set signal.h __LANGUAGE_C__; eval $inctest
-else
- set signal.h LANGUAGE_C; eval $inctest
-fi
+set signal.h LANGUAGE_C; eval $inctest
case "$hint" in
none|recommended) dflt="$ccflags $dflt" ;;
installbin="$binexp"
fi
+case "$crosscompile" in
+''|[nN]*) crosscompile="$undef" ;;
+esac
+
: determine whether to install perl also as /usr/bin/perl
echo " "
if $test -f /lib/syscalls.exp; then
echo " "
echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
- $sed -n 's/^\([^ ]*\)[ ]*syscall$/\1/p' /lib/syscalls.exp >>libc.list
+ $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list
fi
;;
esac
;;
esac
+case "$osname" in
+next) multiarch="$define" ;;
+esac
+case "$multiarch" in
+''|[nN]*) multiarch="$undef" ;;
+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 -f /usr/etc/nibindd; then
The installation process will also create a directory for
site-specific extensions and modules. Some users find it convenient
-to place all local files in this directory rather than in the main
-distribution directory.
+to place all site-specific files in this directory rather than in the
+main distribution directory.
EOM
fn=d~+
set getlogin d_getlogin
eval $inlibc
+: see if getmntent exists
+set getmntent d_getmntent
+eval $inlibc
+
: see if getnetbyaddr exists
set getnetbyaddr d_getnbyaddr
eval $inlibc
;;
esac
+: see if hasmntopt exists
+set hasmntopt d_hasmntopt
+eval $inlibc
+
: see if this is a netinet/in.h or sys/in.h system
set netinet/in.h i_niin sys/in.h i_sysin
eval $inhdr
EOCP
set try -DJOINABLE=PTHREAD_CREATE_JOINABLE
if eval $compile; then
- echo "You seem to use PTHREAD_CREATE_JOINABLE." >&2
+ echo "You seem to use PTHREAD_CREATE_JOINABLE." >&4
val="$undef" # Yes, undef.
set d_old_pthread_create_joinable
eval $setvar
else
set try -DJOINABLE=PTHREAD_CREATE_UNDETACHED
if eval $compile; then
- echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&2
+ echo "You seem to use PTHREAD_CREATE_UNDETACHED." >&4
val="$define"
set d_old_pthread_create_joinable
eval $setvar
else
set try -DJOINABLE=__UNDETACHED
if eval $compile; then
- echo "You seem to use __UNDETACHED." >&2
+ echo "You seem to use __UNDETACHED." >&4
val="$define"
set d_old_pthread_create_joinable
eval $setvar
set old_pthread_create_joinable
eval $setvar
else
- echo "Egads, nothing obvious found. Guessing that you use 0." >&2
+ echo "Egads, nothing obvious found. Guessing that you use 0." >&4
val="$define"
set d_old_pthread_create_joinable
eval $setvar
: check for alignment requirements
echo " "
-case "$alignbytes" in
-'') echo "Checking alignment constraints..." >&4
- $cat >try.c <<'EOCP'
+case "$crosscompile$multiarch" in
+*$define*)
+You seem to be cross-compiling, skipping the memory alignment check.
+
+EOM
+ case "$alignbytes" in
+ '') alignbytes=8 ;;
+ esac
+ ;;
+*)
+ case "$alignbytes" in
+ '') echo "Checking alignment constraints..." >&4
+ $cat >try.c <<'EOCP'
struct foobar {
char foo;
double bar;
-} try;
+} try_algn;
int main()
{
- printf("%d\n", (char *)&try.bar - (char *)&try.foo);
+ printf("%d\n", (char *)&try_algn.bar - (char *)&try_algn.foo);
}
EOCP
- set try
- if eval $compile_ok; then
- dflt=`./try`
- else
- dflt='8'
- echo "(I can't seem to compile the test program...)"
- fi
- ;;
-*) dflt="$alignbytes"
+ set try
+ if eval $compile_ok; then
+ dflt=`./try`
+ else
+ dflt='8'
+ echo "(I can't seem to compile the test program...)"
+ fi
+ ;;
+ *) dflt="$alignbytes"
+ ;;
+ esac
+ rp="Doubles must be aligned on a how-many-byte boundary?"
+ . ./myread
+ alignbytes="$ans"
+ $rm -f try.c try
;;
esac
-rp="Doubles must be aligned on a how-many-byte boundary?"
-. ./myread
-alignbytes="$ans"
-$rm -f try.c try
+
: check for ordering of bytes in a long
-case "$byteorder" in
-'')
- $cat <<'EOM'
-
+echo " "
+case "$crosscompile$multiarch" in
+*$define*)
+ $cat <<EOM
+You seem to be cross-compiling, I'm skipping the byteorder check.
+
+EOM
+ ;;
+*)
+ case "$byteorder" in
+ '')
+ $cat <<'EOM'
In the following, larger digits indicate more significance. A big-endian
machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A
little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other
the test program works the default is probably right.
I'm now running the test program...
EOM
- $cat >try.c <<'EOCP'
+ $cat >try.c <<'EOCP'
#include <stdio.h>
int main()
{
exit(0);
}
EOCP
- xxx_prompt=y
- set try
- if eval $compile && ./try > /dev/null; then
- dflt=`./try`
- case "$dflt" in
- [1-4][1-4][1-4][1-4]|12345678|87654321)
- echo "(The test program ran ok.)"
- echo "byteorder=$dflt"
- xxx_prompt=n
+ xxx_prompt=y
+ set try
+ if eval $compile && ./try > /dev/null; then
+ dflt=`./try`
+ case "$dflt" in
+ [1-4][1-4][1-4][1-4]|12345678|87654321)
+ echo "(The test program ran ok.)"
+ echo "byteorder=$dflt"
+ xxx_prompt=n
;;
- ????|????????) echo "(The test program ran ok.)" ;;
- *) echo "(The test program didn't run right for some reason.)" ;;
- esac
- else
- dflt='4321'
- cat <<'EOM'
+ ????|????????) echo "(The test program ran ok.)" ;;
+ *) echo "(The test program didn't run right for some reason.)" ;;
+ esac
+ else
+ dflt='4321'
+ cat <<'EOM'
(I can't seem to compile the test program. Guessing big-endian...)
EOM
- fi
- case "$xxx_prompt" in
- y)
- rp="What is the order of bytes in a long?"
- . ./myread
- byteorder="$ans"
- ;;
- *) byteorder=$dflt
+ fi
+ case "$xxx_prompt" in
+ y)
+ rp="What is the order of bytes in a long?"
+ . ./myread
+ byteorder="$ans"
+ ;;
+ *) byteorder=$dflt
+ ;;
+ esac
;;
esac
+ $rm -f try.c try
;;
esac
-$rm -f try.c try
+
: how do we catenate cpp tokens here?
echo " "
set fpos_t fpostype long stdio.h sys/types.h
eval $typedef_ask
+: Store the full pathname to the ar program for use in the C program
+: Respect a hint or command line value for full_ar.
+case "$full_ar" in
+'') full_ar=$ar ;;
+esac
+
: Store the full pathname to the sed program for use in the C program
full_sed=$sed
cpprun='$cpprun'
cppstdin='$cppstdin'
cppsymbols='$cppsymbols'
+crosscompile='$crosscompile'
cryptlib='$cryptlib'
csh='$csh'
d_Gconvert='$d_Gconvert'
d_gethname='$d_gethname'
d_gethostprotos='$d_gethostprotos'
d_getlogin='$d_getlogin'
+d_getmntent='$d_getmntent'
d_getnbyaddr='$d_getnbyaddr'
d_getnbyname='$d_getnbyname'
d_getnent='$d_getnent'
d_gettimeod='$d_gettimeod'
d_gnulibc='$d_gnulibc'
d_grpasswd='$d_grpasswd'
+d_hasmntopt='$d_hasmntopt'
d_htonl='$d_htonl'
d_index='$d_index'
d_inetaton='$d_inetaton'
flex='$flex'
fpostype='$fpostype'
freetype='$freetype'
+full_ar='$full_ar'
full_csh='$full_csh'
full_sed='$full_sed'
gccversion='$gccversion'
models='$models'
modetype='$modetype'
more='$more'
+multiarch='$multiarch'
mv='$mv'
myarchname='$myarchname'
mydomain='$mydomain'
$make_set_make
# These variables may need to be manually set for non-Unix systems.
-AR = $ar
+AR = $full_ar
EXE_EXT = $_exe
LIB_EXT = $_a
OBJ_EXT = $_o
c (n.U):
This variable contains the \c string if that is what causes the echo
command to suppress newline. Otherwise it is null. Correct usage is
- $echo $n "prompt for a question: $c".
+ $echo $n "prompt for a question: $c".
castflags (d_castneg.U):
This variable contains a flag that precise difficulties the
compiler has casting odd floating values to unsigned long:
- 0 = ok
- 1 = couldn't cast < 0
- 2 = couldn't cast >= 0x80000000
- 4 = couldn't cast in argument expression list
+ 0 = ok
+ 1 = couldn't cast < 0
+ 2 = couldn't cast >= 0x80000000
+ 4 = couldn't cast in argument expression list
cat (Loc.U):
This variable is be used internally by Configure to determine the
This variable contains any additional C compiler flags desired by
the user. It is up to the Makefile to use this.
+ccsymbols (Cppsym.U):
+ The variable contains the symbols defined by the C compiler alone.
+ The symbols defined by cpp or by cc when it calls cpp are not in
+ this list, see cppsymbols and cppccsymbols.
+ The list is a space-separated list of symbol=value tokens.
+
cf_by (cf_who.U):
Login name of the person who ran the Configure script and answered the
questions. This is used to tag both config.sh and config_h.SH.
This variable contains an identification of the catenation mechanism
used by the C preprocessor.
+cppccsymbols (Cppsym.U):
+ The variable contains the symbols defined by the C compiler when
+ when it calls cpp. The symbols defined by the cc alone or cpp
+ alone are not in this list, see ccsymbols and cppsymbols.
+ The list is a space-separated list of symbol=value tokens.
+
cppflags (ccflags.U):
This variable holds the flags that will be passed to the C pre-
processor. It is up to the Makefile to use it.
It is primarily used by other Configure units that ask about
preprocessor symbols.
+cppsymbols (Cppsym.U):
+ The variable contains the symbols defined by the C preprocessor
+ alone. The symbols defined by cc or by cc when it calls cpp are
+ not in this list, see ccsymbols and cppccsymbols.
+ The list is a space-separated list of symbol=value tokens.
+
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
This variable conditionally defines the HAS_FSTAT64 symbol, which
indicates to the C program that the fstat64() routine is available.
+d_fstatfs (d_statfs.U):
+ This variable conditionally defines the HAS_FSTATFS symbol, which
+ indicates to the C program that the fstatfs() routine is available.
+
+d_fstatvfs (d_statvfs.U):
+ This variable conditionally defines the HAS_FSTATVFS symbol, which
+ indicates to the C program that the fstatvfs() routine is available.
+
d_ftell64 (stdio64.U):
This variable conditionally defines the HAS_FTELL64 symbol, which
indicates to the C program that the ftell64() routine is available.
floating point numbers into strings. It could be 'gconvert'
or a more complex macro emulating gconvert with gcvt() or sprintf.
Possible values are:
- d_Gconvert='gconvert((x),(n),(t),(b))'
- d_Gconvert='gcvt((x),(n),(b))'
- d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+ d_Gconvert='gconvert((x),(n),(t),(b))'
+ d_Gconvert='gcvt((x),(n),(b))'
+ d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_getgrent (d_getgrent.U):
This variable conditionally defines the HAS_GETGRENT symbol, which
indicates to the C program that the getlogin() routine is available
to get the login name.
+d_getmntent (d_getmntent.U):
+ This variable conditionally defines the HAS_GETMNTENT symbol, which
+ indicates to the C program that the getmntent() routine is available
+ to iterate through mounted files.
+
d_getnbyaddr (d_getnbyad.U):
This variable conditionally defines the HAS_GETNETBYADDR symbol, which
indicates to the C program that the getnetbyaddr() routine is available
This variable conditionally defines GRPASSWD, which indicates
that struct group in <grp.h> contains gr_passwd.
+d_hasmntopt (d_hasmntopt.U):
+ This variable conditionally defines the HAS_HASMNTOPT symbol, which
+ indicates to the C program that the hasmntopt() routine is available
+ to query the mount options of file systems.
+
d_htonl (d_htonl.U):
This variable conditionally defines HAS_HTONL if htonl() and its
friends are available to do network order byte swapping.
This symbol will be defined if the C compiler supports ino64_t.
d_int64t (i_inttypes.U):
- This symbol will be defined if the C compiler supports int64_t.
+ This symbol will be defined if the C compiler supports int64_t.
d_iovec_s (i_sysuio.U):
This variable conditionally defines the HAS_STRUCT_IOVEC symbol,
This variable conditionally defines HAS_LSTAT if lstat() is
available to do file stats on symbolic links.
+d_madvise (d_madvise.U):
+ This variable conditionally defines HAS_MADVISE if madvise() is
+ available to map a file into memory.
+
d_mblen (d_mblen.U):
This variable conditionally defines the HAS_MBLEN symbol, which
indicates to the C program that the mblen() routine is available
This variable conditionally defines the HAS_MKTIME symbol, which
indicates to the C program that the mktime() routine is available.
+d_mmap (d_mmap.U):
+ This variable conditionally defines HAS_MMAP if mmap() is
+ available to map a file into memory.
+
+d_mprotect (d_mprotect.U):
+ This variable conditionally defines HAS_MPROTECT if mprotect() is
+ available to modify the access protection of a memory mapped file.
+
d_msg (d_msg.U):
This variable conditionally defines the HAS_MSG symbol, which
indicates that the entire msg*(2) library is present.
This variable conditionally defines the HAS_MSGSND symbol, which
indicates to the C program that the msgsnd() routine is available.
+d_msync (d_msync.U):
+ This variable conditionally defines HAS_MSYNC if msync() is
+ available to synchronize a mapped file.
+
+d_munmap (d_munmap.U):
+ This variable conditionally defines HAS_MUNMAP if munmap() is
+ available to unmap a region mapped by mmap().
+
d_mymalloc (mallocsrc.U):
This variable conditionally defines MYMALLOC in case other parts
of the source want to take special action if MYMALLOC is used.
if this system has a stat structure declaring
st_blksize and st_blocks.
+d_statfs (d_statfs.U):
+ This variable conditionally defines the HAS_STATFS symbol, which
+ indicates to the C program that the statfs() routine is available.
+
+d_statfsflags (d_statfs.U):
+ This variable conditionally defines the HAS_STRUCT_STATFS_FLAGS
+ symbol, which indicates to struct statfs from has f_flags member.
+ This kind of struct statfs is coming from sys/mount.h (BSD),
+ not from sys/statfs.h (SYSV).
+
+d_statvfs (d_statvfs.U):
+ This variable conditionally defines the HAS_STATVFS symbol, which
+ indicates to the C program that the statvfs() routine is available.
+
d_stdio_cnt_lval (d_stdstdio.U):
This variable conditionally defines STDIO_CNT_LVALUE if the
FILE_cnt macro can be used as an lvalue.
This variable conditionally defines HAS_TELLDIR if telldir() is
available.
+d_telldirproto (d_telldirproto.U):
+ This variable conditionally defines the HAS_TELLDIR_PROTO symbol,
+ which indicates to the C program that the system provides
+ a prototype for the telldir() function. Otherwise, it is
+ up to the program to supply one.
+
d_time (d_time.U):
This variable conditionally defines the HAS_TIME symbol, which indicates
that the time() routine exists. The time() routine is normaly
in the <db.h> header file. In older versions of DB, it was
int, while in newer ones it is size_t.
+defvoidused (voidflags.U):
+ This variable contains the default value of the VOIDUSED symbol (15).
+
direntrytype (i_dirent.U):
This symbol is set to 'struct direct' or 'struct dirent' depending on
whether dirent is available or not. You should use this pseudo type to
This variable contains the return type of free(). It is usually
void, but occasionally int.
+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
+ in the Makefile.SH.
+
full_csh (d_csh.U):
This variable contains the full pathname to 'csh', whether or
not the user has specified 'portability'. This is only used
ushort, or whatever type is used to declare the return type
of getgid(). Typically, it is the type of group ids in the kernel.
+glibpth (libpth.U):
+ This variable holds the general path (space-separated) used to
+ find libraries. It may contain directories that do not exist on
+ this platform, libpth is the cleaned-up version.
+
grep (Loc.U):
This variable is be used internally by Configure to determine the
full pathname (if any) of the grep program. After Configure runs,
whether a C program should include <grp.h>.
i_inttypes (i_inttypes.U):
- This variable conditionally defines the I_INTTYPES symbol,
- and indicates whether a C program should include <inttypes.h>.
+ This variable conditionally defines the I_INTTYPES symbol,
+ and indicates whether a C program should include <inttypes.h>.
i_limits (i_limits.U):
This variable conditionally defines the I_LIMITS symbol, and indicates
and indicates whether a C program should include <locale.h>.
i_machcthr (i_machcthr.U):
- This variable conditionally defines the I_MACH_CTHREADS symbol,
- and indicates whether a C program should include <mach/cthreads.h>.
+ This variable conditionally defines the I_MACH_CTHREADS symbol,
+ and indicates whether a C program should include <mach/cthreads.h>.
i_malloc (i_malloc.U):
This variable conditionally defines the I_MALLOC symbol, and indicates
This variable conditionally defines the I_MEMORY symbol, and indicates
whether a C program should include <memory.h>.
+i_mntent (i_mntent.U):
+ This variable conditionally defines the I_MNTENT symbol, and indicates
+ whether a C program should include <mntent.h>.
+
i_ndbm (i_ndbm.U):
This variable conditionally defines the I_NDBM symbol, which
indicates to the C program that <ndbm.h> exists and should
indicates that <string.h> should be included rather than <strings.h>.
i_sysaccess (i_sysaccess.U):
- This variable conditionally defines the I_SYS_ACCESS symbol,
- and indicates whether a C program should include <sys/access.h>.
+ This variable conditionally defines the I_SYS_ACCESS symbol,
+ and indicates whether a C program should include <sys/access.h>.
i_sysdir (i_sysdir.U):
This variable conditionally defines the I_SYS_DIR symbol, and indicates
indicates to the C program that <sys/ioctl.h> exists and should
be included.
+i_sysmman (i_sysmman.U):
+ This variable conditionally defines the I_SYS_MMAN symbol, and
+ indicates whether a C program should include <sys/mman.h>.
+
+i_sysmount (i_sysmount.U):
+ This variable conditionally defines the I_SYSMOUNT symbol,
+ and indicates whether a C program should include <sys/mount.h>.
+
i_sysndir (i_sysndir.U):
This variable conditionally defines the I_SYS_NDIR symbol, and indicates
whether a C program should include <sys/ndir.h>.
and indicates whether a C program should include <sys/resource.h>.
i_syssecrt (i_syssecrt.U):
- This variable conditionally defines the I_SYS_SECURITY symbol,
- and indicates whether a C program should include <sys/security.h>.
+ This variable conditionally defines the I_SYS_SECURITY symbol,
+ and indicates whether a C program should include <sys/security.h>.
i_sysselct (i_sysselct.U):
This variable conditionally defines I_SYS_SELECT, which indicates
This variable conditionally defines the I_SYS_STAT symbol,
and indicates whether a C program should include <sys/stat.h>.
+i_sysstatvfs (i_sysstatvfs.U):
+ This variable conditionally defines the I_SYSSTATVFS symbol,
+ and indicates whether a C program should include <sys/statvfs.h>.
+
i_systime (i_time.U):
This variable conditionally defines I_SYS_TIME, which indicates
to the C program that it should include <sys/time.h>.
those systems using AFS. For extra portability, only this variable
should be used in makefiles.
+installusrbinperl (instubperl.U):
+ This variable tells whether Perl should be installed also as
+ /usr/bin/perl in addition to
+ $installbin/perl
+
intsize (intsize.U):
This variable contains the value of the INTSIZE symbol, which
indicates to the C program how many bytes there are in an int.
library.
libpth (libpth.U):
- This variable holds the general path used to find libraries. It is
- intended to be used by other units.
+ This variable holds the general path (space-separated) used to find
+ libraries. It is intended to be used by other units.
libs (libs.U):
This variable holds the additional libraries we want to use.
It's not much, but it parallels the loclibpth stuff in libpth.U.
loclibpth (libpth.U):
- This variable holds the paths used to find local libraries. It is
- prepended to libpth, and is intended to be easily set from the
- command line.
+ This variable holds the paths (space-separated) used to find local
+ libraries. It is prepended to libpth, and is intended to be easily
+ set from the command line.
longdblsize (d_longdbl.U):
This variable contains the value of the LONG_DOUBLESIZE symbol, which
make_set_make='#' # If your make program handles this for you,
make_set_make="MAKE=$make" # if it doesn't.
I used a comment character so that we can distinguish a
- 'set' value (from a previous config.sh or Configure '-D' option)
+ 'set' value (from a previous config.sh or Configure -D option)
from an uncomputed value.
mallocobj (mallocsrc.U):
full pathname (if any) of the mkdir program. After Configure runs,
the value is reset to a plain "mkdir" and is not useful.
+mmaptype (d_mmap.U):
+ This symbol contains the type of pointer returned by mmap()
+ (and simultaneously the type of the first argument).
+ It can be 'void *' or 'caddr_t'.
+
models (models.U):
This variable contains the list of memory models supported by this
system. Possible component values are none, split, unsplit, small,
whole thing is then lower-cased.
n (n.U):
- This variable contains the '-n' flag if that is what causes the echo
+ This variable contains the -n flag if that is what causes the echo
command to suppress newline. Otherwise it is null. Correct usage is
- $echo $n "prompt for a question: $c".
+ $echo $n "prompt for a question: $c".
netdb_hlen_type (netdbtype.U):
This variable holds the type used for the 2nd argument to
/bin/sh, though it's possible that some systems will have /bin/ksh,
/bin/pdksh, /bin/ash, /bin/bash, or even something such as
D:/bin/sh.exe.
- This unit comes before Options.U, so you can't set sh with a '-D'
+ This unit comes before Options.U, so you can't set sh with a -D
option, though you can override this (and startsh)
- with '-O -Dsh=/bin/whatever -Dstartsh=whatever'
+ with -O -Dsh=/bin/whatever -Dstartsh=whatever
shar (Loc.U):
This variable is defined but not used by Configure.
One way to do this on some systems is to set the environment variable
LD_RUN_PATH to the directory that will be the final location of the
shared libperl.so. The makefile can use this with something like
- $shrpenv $(CC) -o perl perlmain.o $libperl $libs
+ $shrpenv $(CC) -o perl perlmain.o $libperl $libs
Typical values are
- shrpenv="env LD_RUN_PATH=$archlibexp/CORE"
+ shrpenv="env LD_RUN_PATH=$archlibexp/CORE"
or
- shrpenv=''
+ shrpenv=''
See the main perl Makefile.SH for actual working usage.
Alternatively, we might be able to use a command line option such
as -R $archlibexp/CORE (Solaris, NetBSD) or -Wl,-rpath
spitshell (spitshell.U):
This variable contains the command necessary to spit out a runnable
- shell on this system. It is either cat or a grep '-v' for # comments.
+ shell on this system. It is either cat or a grep -v for # comments.
split (models.U):
This variable contains a flag which will tell the C compiler and loader
script to make sure (hopefully) that it runs with perl and not some
shell. Of course, that leading line must be followed by the classical
perl idiom:
- eval 'exec perl -S $0 ${1+"$@"}'
- if $running_under_some_shell;
+ eval 'exec perl -S $0 ${1+"$@"}'
+ if $running_under_some_shell;
to guarantee perl startup should the shell execute the script. Note
that this magic incatation is not understood by csh.
which indicates how much support of the void type is given by this
compiler. See VOIDFLAGS for more info.
+xlibpth (libpth.U):
+ This variable holds extra path (space-separated) used to find
+ libraries on this platform, for example CPU-specific libraries
+ (on multi-CPU platforms) may be listed here.
+
zcat (Loc.U):
This variable is defined but not used by Configure.
The value is a plain '' and is not useful.
# Package name : perl5
# Source directory : .
-# Configuration time: Fri Feb 12 13:48:44 EET 1999
+# Configuration time: Sat Feb 20 15:45:59 EET 1999
# Configured by : jhi
# Target system : osf1 alpha.hut.fi v4.0 878 alpha
alignbytes='8'
ansi2knr=''
aphostname=''
-apiversion='5.00554'
+apiversion='5.00555'
ar='ar'
-archlib='/opt/perl/lib/5.00554/alpha-dec_osf-thread'
-archlibexp='/opt/perl/lib/5.00554/alpha-dec_osf-thread'
+archlib='/opt/perl/lib/5.00555/alpha-dec_osf-thread'
+archlibexp='/opt/perl/lib/5.00555/alpha-dec_osf-thread'
archname64=''
archname='alpha-dec_osf-thread'
archobjs=''
cc='cc'
cccdlflags=' '
ccdlflags=' '
-ccflags='-pthread -std -D__LANGUAGE_C__'
+ccflags='-pthread -std -DLANGUAGE_C'
ccsymbols='__LANGUAGE_C__=1 _LONGLONG=1 LANGUAGE_C=1 SYSTYPE_BSD=1'
cf_by='jhi'
cf_email='yourname@yourhost.yourplace.com'
-cf_time='Fri Feb 12 13:48:44 EET 1999'
+cf_time='Sat Feb 20 15:45:59 EET 1999'
chgrp=''
chmod=''
chown=''
cpp='cpp'
cpp_stuff='42'
cppccsymbols='__alpha=1 __osf__=1 __unix__=1 _SYSTYPE_BSD=1 unix=1'
-cppflags='-pthread -std -D__LANGUAGE_C__'
+cppflags='-pthread -std -DLANGUAGE_C'
cpplast=''
cppminus=''
cpprun='/usr/bin/cpp'
d_gethname='define'
d_gethostprotos='define'
d_getlogin='define'
+d_getmntent='undef'
d_getnbyaddr='define'
d_getnbyname='define'
d_getnent='define'
d_gettimeod='define'
d_gnulibc='undef'
d_grpasswd='define'
+d_hasmntopt='undef'
d_htonl='define'
d_index='undef'
d_inetaton='define'
flex=''
fpostype='fpos_t'
freetype='void'
+full_ar='/usr/bin/ar'
full_csh='/usr/bin/csh'
full_sed='/usr/bin/sed'
gccversion=''
ignore_versioned_solibs=''
incpath=''
inews=''
-installarchlib='/opt/perl/lib/5.00554/alpha-dec_osf-thread'
+installarchlib='/opt/perl/lib/5.00555/alpha-dec_osf-thread'
installbin='/opt/perl/bin'
installman1dir='/opt/perl/man/man1'
installman3dir='/opt/perl/man/man3'
-installprivlib='/opt/perl/lib/5.00554'
+installprivlib='/opt/perl/lib/5.00555'
installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
-installsitelib='/opt/perl/lib/site_perl/5.00554'
+installsitearch='/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread'
+installsitelib='/opt/perl/lib/site_perl/5.00555'
installusrbinperl='define'
intsize='4'
known_extensions='B DB_File Data/Dumper Devel/Peek Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
pr=''
prefix='/opt/perl'
prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.00554'
-privlibexp='/opt/perl/lib/5.00554'
+privlib='/opt/perl/lib/5.00555'
+privlibexp='/opt/perl/lib/5.00555'
prototype='define'
ptrsize='8'
randbits='48'
sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 '
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0'
signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
-sitearchexp='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
-sitelib='/opt/perl/lib/site_perl/5.00554'
-sitelibexp='/opt/perl/lib/site_perl/5.00554'
+sitearch='/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread'
+sitearchexp='/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread'
+sitelib='/opt/perl/lib/site_perl/5.00555'
+sitelibexp='/opt/perl/lib/site_perl/5.00555'
sizetype='size_t'
sleep=''
smail=''
stdio_ptr='((fp)->_ptr)'
strings='/usr/include/string.h'
submit=''
-subversion='54'
+subversion='55'
sysman='/usr/man/man1'
tail=''
tar=''
usevfork='false'
usrinc='/usr/include'
uuname=''
-version='5.00554'
+version='5.00555'
vi=''
voidflags='15'
xlibpth='/usr/lib/386 /lib/386'
config_arg8='-Dmydomain=.yourplace.com'
config_arg9='-Dmyhostname=yourhost'
config_arg10='-dE'
-PATCHLEVEL=5
-SUBVERSION=54
+PERL_REVISION=5
+PERL_VERSION=5
+PERL_SUBVERSION=55
CONFIG=true
# Variables propagated from previous config.sh file.
pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
/*
* Package name : perl5
* Source directory : .
- * Configuration time: Fri Feb 12 13:48:44 EET 1999
+ * Configuration time: Sat Feb 20 15:45:59 EET 1999
* Configured by : jhi
* Target system : osf1 alpha.hut.fi v4.0 878 alpha
*/
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "/opt/perl/lib/5.00554/alpha-dec_osf-thread" /**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.00554/alpha-dec_osf-thread" /**/
+#define ARCHLIB "/opt/perl/lib/5.00555/alpha-dec_osf-thread" /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.00555/alpha-dec_osf-thread" /**/
/* DLSYM_NEEDS_UNDERSCORE:
* This symbol, if defined, indicates that we need to prepend an
*/
/*#define HAS_FTELLO / **/
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems.
+ */
+/*#define HAS_GETMNTENT / **/
+
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT / **/
+
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
* available to map a file into memory.
/* HAS_FSTATFS:
* This symbol, if defined, indicates that the fstatfs routine is
- * available to do stat filesystems of file descriptors.
+ * available to stat filesystems of file descriptors.
*/
/* HAS_STRUCT_STATFS_FLAGS:
* This symbol, if defined, indicates that the struct statfs
* does have the f_flags member containing the mount flags of
* the filesystem holding the file.
- * This kind of struct statfs is coming from sys/mount.h (BSD)
- * and not from sys/statfs.h (SYSV).
+ * This kind of struct statfs is coming from sys/mount.h (BSD),
+ * not from sys/statfs.h (SYSV).
*/
#define HAS_FSTATFS /**/
#define HAS_STRUCT_STATFS_FLAGS /**/
/* HAS_FSTATVFS:
* This symbol, if defined, indicates that the fstatvfs routine is
- * available to do stat filesystems of file descriptors.
+ * available to stat filesystems of file descriptors.
*/
#define HAS_FSTATVFS /**/
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/opt/perl/lib/5.00554" /**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.00554" /**/
+#define PRIVLIB "/opt/perl/lib/5.00555" /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.00555" /**/
/* SELECT_MIN_BITS:
* This symbol holds the minimum number of bits operated by select.
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread" /**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread" /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread" /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.00555/alpha-dec_osf-thread" /**/
/* SITELIB:
* This symbol contains the name of the private library for this package.
* This symbol contains the ~name expanded version of SITELIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITELIB "/opt/perl/lib/site_perl/5.00554" /**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.00554" /**/
+#define SITELIB "/opt/perl/lib/site_perl/5.00555" /**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.00555" /**/
/* STARTPERL:
* This variable contains the string to put in front of a perl
#$i_syssecrt I_SYS_SECURITY /**/
/* MEM_ALIGNBYTES:
- * This symbol contains the number of bytes required to align a
- * double. Usual values are 2, 4 and 8.
- * On NeXT starting with 3.2, you can build "Fat" Multiple Architecture
- * Binaries (MAB) for targets with varying alignment. This only matters
- * for perl, where the config.h can be generated and installed on one
- * system, and used by a different architecture to build an extension.
- * The default is eight, for safety.
+ * This symbol contains the number of bytes required to align a
+ * double. Usual values are 2, 4 and 8. The default is eight,
+ * for safety.
*/
-#define MEM_ALIGNBYTES $alignbytes /**/
+#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+# define MEM_ALIGNBYTES 8
+#else
+#define MEM_ALIGNBYTES $alignbytes
+#endif
/* BYTEORDER:
* This symbol holds the hexadecimal constant defined in byteorder,
* i.e. 0x1234 or 0x4321, etc...
+ * If the compiler supports cross-compiling or multiple-architecture
+ * binaries (eg. on NeXT systems), use compiler-defined macros to
+ * determine the byte order.
* On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture
* Binaries (MAB) on either big endian or little endian machines.
* The endian-ness is available at compile-time. This only matters
* so the default case (for NeXT) is big endian to catch them.
* This might matter for NeXT 3.0.
*/
-#ifndef NeXT
+#if defined(CROSSCOMPILE) || defined(MULTIARCH)
+# ifdef __LITTLE_ENDIAN__
+# if LONGSIZE == 4
+# define BYTEORDER 0x1234
+# else
+# if LONGSIZE == 8
+# define BYTEORDER 0x12345678
+# endif
+# endif
+# else
+# ifdef __BIG_ENDIAN__
+# if LONGSIZE == 4
+# define BYTEORDER 0x4321
+# else
+# if LONGSIZE == 8
+# define BYTEORDER 0x87654321
+# endif
+# endif
+# endif
+# endif
+# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__))
+# define BYTEORDER 0x4321
+# endif
+#else
#define BYTEORDER 0x$byteorder /* large digits for MSB */
-#else /* NeXT */
-#ifdef __LITTLE_ENDIAN__
-#define BYTEORDER 0x1234
-#else /* __BIG_ENDIAN__ */
-#define BYTEORDER 0x4321
-#endif /* ENDIAN CHECK */
#endif /* NeXT */
/* CASTI32:
#$d_archlib ARCHLIB "$archlib" /**/
#$d_archlib ARCHLIB_EXP "$archlibexp" /**/
+/* CROSSCOMPILE:
+ * This symbol, if defined, signifies that we our
+ * build process is a cross-compilation.
+ */
+#$crosscompile CROSSCOMPILE /**/
+
/* DLSYM_NEEDS_UNDERSCORE:
* This symbol, if defined, indicates that we need to prepend an
* underscore to the symbol name before calling dlsym(). This only
*/
#$d_ftello HAS_FTELLO /**/
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems.
+ */
+#$d_getmntent HAS_GETMNTENT /**/
+
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+#$d_hasmntopt HAS_HASMNTOPT /**/
+
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
* available to map a file into memory.
/* HAS_FSTATFS:
* This symbol, if defined, indicates that the fstatfs routine is
- * available to do stat filesystems of file descriptors.
+ * available to stat filesystems of file descriptors.
*/
/* HAS_STRUCT_STATFS_FLAGS:
* This symbol, if defined, indicates that the struct statfs
* does have the f_flags member containing the mount flags of
* the filesystem holding the file.
- * This kind of struct statfs is coming from sys/mount.h (BSD)
- * and not from sys/statfs.h (SYSV).
+ * This kind of struct statfs is coming from sys/mount.h (BSD),
+ * not from sys/statfs.h (SYSV).
*/
#$d_fstatfs HAS_FSTATFS /**/
#$d_statfsflags HAS_STRUCT_STATFS_FLAGS /**/
/* HAS_FSTATVFS:
* This symbol, if defined, indicates that the fstatvfs routine is
- * available to do stat filesystems of file descriptors.
+ * available to stat filesystems of file descriptors.
*/
#$d_fstatvfs HAS_FSTATVFS /**/
#$d_off64t HAS_OFF64_T /**/
#$d_dirent64_s HAS_STRUCT_DIRENT64 /**/
+/* MULTIARCH:
+ * This symbol, if defined, signifies that the build
+ * process will produce some binary files that are going to be
+ * used in a cross-platform environment. This is the case for
+ * example with the NeXT "fat" binaries that contain executables
+ * for several CPUs.
+ */
+#$multiarch MULTIARCH /**/
+
/* PRIVLIB:
* This symbol contains the name of the private library for this package.
* The library is private in the sense that it needn't be in anyone's
1.63 19th December 1998
- Fix to allow DB 2.6.x to build with DB_File
- Documentation upadated to use push,pop etc in the RECNO example & to
- include the find_dup & del_dup methods.
+ * Fix to allow DB 2.6.x to build with DB_File
+ * Documentation updated to use push,pop etc in the RECNO example &
+ to include the find_dup & del_dup methods.
+
+1.64 21st February 1999
+
+ * Tidied the 1.x to 2.x flag mapping code.
+ * Added a patch from Mark Kettenis <kettenis@wins.uva.nl> to fix a flag
+ mapping problem with O_RDONLY on the Hurd
+ * Updated the message that db-recno.t prints when tests 51, 53 or 55 fail.
+
# DB_File.pm -- Perl 5 interface to Berkeley DB
#
# written by Paul Marquess (Paul.Marquess@btinternet.com)
-# last modified 2nd December 1998
-# version 1.63
+# last modified 21st February 1999
+# version 1.64
#
-# Copyright (c) 1995-8 Paul Marquess. All rights reserved.
+# Copyright (c) 1995-9 Paul Marquess. All rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
use Carp;
-$VERSION = "1.63" ;
+$VERSION = "1.64" ;
#typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
$DB_BTREE = new DB_File::BTREEINFO ;
=head1 COPYRIGHT
-Copyright (c) 1995-8 Paul Marquess. All rights reserved. This program
+Copyright (c) 1995-9 Paul Marquess. All rights reserved. This program
is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
DB_File.xs -- Perl 5 interface to Berkeley DB
written by Paul Marquess <Paul.Marquess@btinternet.com>
- last modified 19th November 1998
- version 1.63
+ last modified 21st February 1999
+ version 1.64
All comments/suggestions/problems are welcome
- Copyright (c) 1995, 1996, 1997, 1998 Paul Marquess. All rights reserved.
+ Copyright (c) 1995-9 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
fixed typo in O_RDONLY test.
1.62 - No change to DB_File.xs
1.63 - Fix to alllow DB 2.6.x to build.
-
+ 1.64 - Tidied up the 1.x to 2.x flags mapping code.
+ Added a patch from Mark Kettenis <kettenis@wins.uva.nl>
+ to fix a flag mapping problem with O_RDONLY on the Hurd
#ifndef PERL_VERSION
#include "patchlevel.h"
-#define PERL_VERSION PATCHLEVEL
+#define PERL_REVISION 5
+#define PERL_VERSION PATCHLEVEL
+#define PERL_SUBVERSION SUBVERSION
+#endif
+
+#if PERL_REVISION == 5 && (PERL_VERSION < 4 || (PERL_VERSION == 4 && PERL_SUBVERSION <= 75 ))
+
+# define PL_sv_undef sv_undef
+# define PL_na na
+
#endif
/* Being the Berkeley DB we prefer the <sys/cdefs.h> (which will be
if ((flags & O_CREAT) == O_CREAT)
Flags |= DB_CREATE ;
-#ifdef O_NONBLOCK
- if ((flags & O_NONBLOCK) == O_NONBLOCK)
- Flags |= DB_EXCL ;
-#endif
-
#if O_RDONLY == 0
if (flags == O_RDONLY)
#else
- if ((flags & O_RDONLY) == O_RDONLY)
+ if ((flags & O_RDONLY) == O_RDONLY && (flags & O_RDWR) != O_RDWR)
#endif
Flags |= DB_RDONLY ;
-#ifdef O_NONBLOCK
+#ifdef O_TRUNC
if ((flags & O_TRUNC) == O_TRUNC)
Flags |= DB_TRUNCATE ;
#endif
# typemap for Perl 5 interface to Berkeley
#
# written by Paul Marquess <Paul.Marquess@btinternet.com>
-# last modified 13th May 1998
-# version 1.59
+# last modified 21st February 1999
+# version 1.64
#
#################################### DB SECTION
#
*gcc*) ;;
*)
case "$osvers" in
- *4.1*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3400" ;;
- *4.2*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3400"
+ *4.1*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3800" ;;
+ *4.2*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3800"
# Prototypes sometimes cause compilation errors in 4.2.
prototype=undef
case "$myuname" in
*risc*) d_volatile=undef ;;
esac
;;
- *4.3*) ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3400" ;;
- *) ccflags="$ccflags -std -Olimit 3400" ;;
+ *4.3*) ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3800" ;;
+ *) ccflags="$ccflags -std -Olimit 3800" ;;
esac
;;
esac
}
}
+/* Mention
+ * I_SYSSTATVFS HAS_FSTATVFS
+ * I_SYSMOUNT
+ * I_STATFS HAS_FSTATFS
+ * I_MNTENT HAS_GETMNTENT HAS_HASMNTOPT
+ * here so that metaconfig picks them up. */
+
#ifdef IAMSUID
static int
fd_on_nosuid_fs(int fd)
# define HAS_VTOHS
# define HAS_HTOVL
# define HAS_HTOVS
-# if BYTEORDER == 0x4321
+# if BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
# define vtohl(x) ((((x)&0xFF)<<24) \
+(((x)>>24)&0xFF) \
+(((x)&0x0000FF00)<<8) \
DYNIX/ptx OpenSTEP Windows 3.1 1)
FreeBSD OS/2 Windows 95 1) 3)
HP-UX OS390 2) Windows 98 1) 3)
- Hurd PowerUX Windows NT 1) 3)
+ Hurd PowerMAX Windows NT 1) 3)
QNX VOS
1) in DOS mode either the DOS or OS/2 ports can be used
The following platforms have been known to build Perl from the source
but for the Perl release 5.005_03 we haven't been able to verify them,
either because the hardware/software platforms are rather rare or
-because we don't have an active champion on these platforms.
+because we don't have an active champion on these platforms, or both.
3b1 FPS Plan 9
AmigaOS GENIX RISC/os
ESIX
The following platforms are planned to be supported in the standard
-source distribution of the Perl release 5.006 but are not
+source code distribution of the Perl release 5.006 but are not
supported in the Perl release 5.005_03:
BS2000
Perl release
AS/400 5.003
- MacOS 5.004_04
+ MacOS 5.004
Tandem Guardian 5.004
The following platforms have only binaries available via
Perl release
- Acorn RISCOS 5.001
+ Acorn RISCOS 5.005_02
AOS 5.002
LynxOS 5.004_02
Netware 5.003_07
The new format type 'Z' is useful for packing and unpacking null-terminated
strings. See L<perlfunc/"pack">.
+=head2 pack() format modifier '_' supported
+
+The new format type modifer '_' is useful for packing and unpacking
+native shorts, ints, and longs. See L<perlfunc/"pack">.
+
=head1 Significant bug fixes
=head2 E<lt>HANDLEE<gt> on empty files
is unchanged (it continues to leave the file empty).
-=head2 pack() format modifier '_' supported
-
-The new format type modifer '_' is useful for packing and unpacking
-native shorts, ints, and longs. See L<perlfunc/"pack">.
-
=head1 Supported Platforms
=over 4
=item *
-Siemens BS200 is now supported.
+Siemens BS2000 is now supported under the POSIX Shell.
+
+=item *
+
+The Mach CThreads (NEXTSTEP, OPENSTEP) are now supported by the Thread extension.
=item *
-The Mach CThreads (NeXTstep) are now supported by the Thread extension.
+GNU/Hurd is now supported.
=back
they are identical to C<"i"> and C<"I">.
The actual sizes (in bytes) of native shorts, ints, and longs on
-the platform where Perl was built are available via L<Config>:
+the platform where Perl was built are also available via L<Config>:
use Config;
print $Config{shortsize}, "\n";
The integer formats C<"s">, C<"S">, C<"i">, C<"I">, C<"l">, and C<"L">
are inherently non-portable between processors and operating systems
because they obey the native byteorder and endianness. For example a
-4-byte integer 0x12345678 (305419896 decimal) be ordered natively
+4-byte integer 0x87654321 (2271560481 decimal) be ordered natively
(arranged in and handled by the CPU registers) into bytes as
- 0x12 0x34 0x56 0x78 # big-endian
- 0x78 0x56 0x34 0x12 # little-endian
+ 0x12 0x34 0x56 0x78 # little-endian
+ 0x78 0x56 0x34 0x12 # big-endian
+Basically, the Intel, Alpha, and VAX CPUs and little-endian, while
+everybody else, for example Motorola m68k/88k, PPC, Sparc, HP PA,
+Power, and Cray are big-endian. MIPS can be either: Digital used it
+in little-endian mode, SGI uses it in big-endian mode.
+
The names `big-endian' and `little-endian' are joking references to
the classic "Gulliver's Travels" (via the paper "On Holy Wars and a
Plea for Peace" by Danny Cohen, USC/ISI IEN 137, April 1, 1980) and
print join(" ", map { sprintf "%#02x", $_ }
unpack("C*",pack("L",0x12345678))), "\n";
-The actual byteorder on the platform where Perl was built is available
+The byteorder on the platform where Perl was built is also available
via L<Config>:
use Config;
print $Config{byteorder}, "\n";
-If you want portable integers use the formats C<"n">, C<"N">, C<"v">, and
-"V", their byte endianness and size is known.
+Byteorders C<'1234'> and C<'12345678'> are little-endian, C<'4321'>
+and C<'87654321'> are big-endian.
+
+If you want portable packed integers use the formats C<"n">, C<"N">,
+C<"v">, and C<"V">, their byte endianness and size is known.
=item *
a symbol table, and thus are invisible to this mechanism. For example:
local $value = 10;
- $ref = \$value;
+ $ref = "value";
{
my $value = 20;
print $$ref;
#define SIZE16 2
#define SIZE32 4
+/* CROSSCOMPILE and MULTIARCH are going to affect pp_pack() and pp_unpack().
+ --jhi Feb 1999 */
+
#if SHORTSIZE != SIZE16 || LONGSIZE != SIZE32
# define PERL_NATINT_PACK
#endif
{
while (len-- > 0) {
COPY16(s, &ashort);
+#if SHORTSIZE > SIZE16
+ if (ashort > 32767)
+ ashort -= 65536;
+#endif
s += SIZE16;
culong += ashort;
}
{
while (len-- > 0) {
COPY16(s, &ashort);
+#if SHORTSIZE > SIZE16
+ if (ashort > 32767)
+ ashort -= 65536;
+#endif
s += SIZE16;
sv = NEWSV(38, 0);
sv_setiv(sv, (IV)ashort);
{
while (len-- > 0) {
COPY32(s, &along);
+#if LONGSIZE > SIZE32
+ if (along > 2147483647)
+ along -= 4294967296;
+#endif
s += SIZE32;
if (checksum > 32)
cdouble += (double)along;
{
while (len-- > 0) {
COPY32(s, &along);
+#if LONGSIZE > SIZE32
+ if (along > 2147483647)
+ along -= 4294967296;
+#endif
s += SIZE32;
sv = NEWSV(42, 0);
sv_setiv(sv, (IV)along);
}
break;
case 's':
-#if SHORTSIZE != 2
+#if SHORTSIZE != SIZE16
if (natint) {
while (len-- > 0) {
fromstr = NEXTFROM;
{
print STDERR <<EOM unless $bad_ones++ ;
#
-# Some older versions of Berkeley DB will fail tests 51, 53 and 55.
+# Some older versions of Berkeley DB version 1 will fail tests 51,
+# 53 and 55.
#
# You can safely ignore the errors if you're never going to use the
# broken functionality (recno databases with a modified bval).
# Otherwise you'll have to upgrade your DB library.
#
-# If you want to upgrade Berkeley DB, the most recent version is 1.85.
-# Check out http://www.bostic.com/db for more details.
+# If you want to use Berkeley DB version 1, then 1.85 and 1.86 are the
+# last versions that were released. Berkeley DB version 2 is continually
+# being updated -- Check out http://www.sleepycat.com/ for more details.
#
EOM
}
require Config; import Config;
}
-print "1..98\n";
+print "1..142\n";
$format = "c2 x5 C C x s d i l a6";
# Need the expression in here to force ary[5] to be numeric. This avoids
print "not " unless length(pack("i_", 0)) == length(pack("i", 0));
print "ok ", $test++, "\n";
-# 79..94: test the limits
+# 79..138: pack <-> unpack bijectionism
-# Some possibilities for $Config{byteorder} and $Config{.*size}.
-# Note that CPUs can feature at several places.
-#
-# Config
-#
-# byteorder
-#
-# 1234 x86, vax, (DEC) mips
-# 12345678 alpha
-# 4321 sparc, ppc, hppa, (IRIX) mips, motorola
-# 87654321 sparc, mips, hppa, cray
-#
-# x86 alpha sparc cray
-# shortsize 2 2 2 8
-# intsize 4 4 4 8
-# longsize 4 8 8 8
-#
+# 79.. 83 c
+foreach my $c (-128, -1, 0, 1, 127) {
+ print "not " unless unpack("c", pack("c", $c)) == $c;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("c", pack("c", 127)) == 127;
-print "ok ", $test++, "\n";
+# 84.. 88: C
+foreach my $C (0, 1, 127, 128, 255) {
+ print "not " unless unpack("C", pack("C", $C)) == $C;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("c", pack("c", -128)) == -128;
-print "ok ", $test++, "\n";
+# 89.. 93: s
+foreach my $s (-32768, -1, 0, 1, 32767) {
+ print "not " unless unpack("s", pack("s", $s)) == $s;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("C", pack("C", 255)) == 255;
-print "ok ", $test++, "\n";
+# 94.. 98: S
+foreach my $S (0, 1, 32767, 32768, 65535) {
+ print "not " unless unpack("S", pack("S", $S)) == $S;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("s", pack("s", 32767)) == 32767;
-print "ok ", $test++, "\n";
+# 99..103: i
+foreach my $i (-2147483648, -1, 0, 1, 2147483647) {
+ print "not " unless unpack("i", pack("i", $i)) == $i;
+ print "ok ", $test++, "\n";
+}
-if ($Config{shortsize} == 2) {
- print "not " unless unpack("s", pack("s", -32768)) == -32768;
+# 104..108: I
+foreach my $I (0, 1, 2147483647, 2147483648, 4294967295) {
+ print "not " unless unpack("I", pack("I", $I)) == $I;
print "ok ", $test++, "\n";
-} else {
- if ($Config{shortsize} == 8 && $Config{byteorder} eq '87654321') {
- print "not " unless unpack("s_", pack("s_", -32768)) == -32768;
- print "ok ", $test++, "\n";
- } else {
- print "ok ", $test++, " # skipped\n";
- }
}
-print "not " unless unpack("S", pack("S", 65535)) == 65535;
-print "ok ", $test++, "\n";
+# 109..113: l
+foreach my $l (-2147483648, -1, 0, 1, 2147483647) {
+ print "not " unless unpack("l", pack("l", $l)) == $l;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("i", pack("i", 2147483647)) == 2147483647;
-print "ok ", $test++, "\n";
+# 114..118: L
+foreach my $L (0, 1, 2147483647, 2147483648, 4294967295) {
+ print "not " unless unpack("L", pack("L", $L)) == $L;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("i", pack("i", -2147483648)) == -2147483648;
-print "ok ", $test++, "\n";
+# 119..123: n
+foreach my $n (0, 1, 32767, 32768, 65535) {
+ print "not " unless unpack("n", pack("n", $n)) == $n;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("I", pack("I", 4294967295)) == 4294967295;
-print "ok ", $test++, "\n";
+# 124..128: v
+foreach my $v (0, 1, 32767, 32768, 65535) {
+ print "not " unless unpack("v", pack("v", $v)) == $v;
+ print "ok ", $test++, "\n";
+}
-print "not " unless unpack("l", pack("l", 2147483647)) == 2147483647;
-print "ok ", $test++, "\n";
+# 129..133: N
+foreach my $N (0, 1, 2147483647, 2147483648, 4294967295) {
+ print "not " unless unpack("N", pack("N", $N)) == $N;
+ print "ok ", $test++, "\n";
+}
-if ($Config{longsize} == 4 || $Config{byteorder} eq '12345678') {
- print "not " unless unpack("l", pack("l", -2147483648)) == -2147483648;
+# 134..138: V
+foreach my $V (0, 1, 2147483647, 2147483648, 4294967295) {
+ print "not " unless unpack("V", pack("V", $V)) == $V;
print "ok ", $test++, "\n";
-} else {
- if ($Config{shortsize} == 8 && $Config{byteorder} eq '87654321') {
- print "not "
- unless unpack("l_", pack("l_", -2147483648)) == -2147483648;
- print "ok ", $test++, "\n";
- } else {
- print "ok ", $test++, " # skipped\n";
- }
}
-print "not " unless unpack("L", pack("L", 4294967295)) == 4294967295;
-print "ok ", $test++, "\n";
+# 139..142: pack nvNV byteorders
-print "not " unless unpack("n", pack("n", 65535)) == 65535;
+print "not " unless pack("n", 0xdead) eq "\xde\xad";
print "ok ", $test++, "\n";
-if ($Config{shortsize} == 2) {
- print "not " unless unpack("v", pack("v", 65535)) == 65535;
- print "ok ", $test++, "\n";
-} else {
- print "ok ", $test++, " # skipped\n";
-}
-
-print "not " unless unpack("N", pack("N", 4294967295)) == 4294967295;
+print "not " unless pack("v", 0xdead) eq "\xad\xde";
print "ok ", $test++, "\n";
-if ($Config{longsize} == 4 || $Config{byteorder} eq '12345678') {
- print "not " unless unpack("V", pack("V", 4294967295)) == 4294967295;
- print "ok ", $test++, "\n";
-} else {
- print "ok ", $test++, " # skipped\n";
-}
+print "not " unless pack("N", 0xdeadbeef) eq "\xde\xad\xbe\xef";
+print "ok ", $test++, "\n";
-# 95..98 test the n/v/N/V byteorder
-
-if ($Config{byteorder} =~ /^1234(5678)?$/ ||
- $Config{byteorder} =~ /^(8765)?4321$/) {
-
- if ($Config{shortsize} == 2 ||
- $Config{byteorder} eq '87654321') {
- print "not " unless pack("n", 0xdead) eq "\xde\xad";
- print "ok ", $test++, "\n";
-
- if ($Config{byteorder} ne '87654321') {
- print "not " unless pack("v", 0xdead) eq "\xad\xde";
- print "ok ", $test++, "\n";
- } else {
- print "ok ", $test++, " # skipped\n";
- }
- } else {
- # shortsize != 2 systems require more thought
- foreach (95..96) {
- print "ok ", $test++, " # skipped\n";
- }
- }
-
- if ($Config{longsize} == 4 ||
- $Config{byteorder} eq '12345678' ||
- $Config{byteorder} eq '87654321') {
- print "not " unless pack("N", 0xdeadbeef) eq "\xde\xad\xbe\xef";
- print "ok ", $test++, "\n";
-
- if ($Config{byteorder} ne '87654321') {
- print "not " unless pack("V", 0xdeadbeef) eq "\xef\xbe\xad\xde";
- print "ok ", $test++, "\n";
- } else {
- print "ok ", $test++, " # skipped\n";
- }
- } else {
- # exotic longsize != 2 systems require more thought
- foreach (97..98) {
- print "ok ", $test++, " # skipped\n";
- }
- }
-} else {
- # exotic byteorder system require more thought
- foreach (95..98) {
- print "ok ", $test++, " # skipped\n";
- }
-}
+print "not " unless pack("V", 0xdeadbeef) eq "\xef\xbe\xad\xde";
+print "ok ", $test++, "\n";
$ if "''myname'" .eqs. "" THEN myname = f$trnlnm("SYS$NODE")
$!
$! ##ADD NEW CONSTANTS HERE##
+$ perl_multiarch="undef"
+$ perl_crosscompile="undef"
$ perl_d_madvise="undef"
$ perl_d_msync="undef"
$ perl_d_mprotect="undef"
$ WC "d_munmap='" + perl_d_munmap + "'"
$ WC "d_mmap='" + perl_d_mmap + "'"
$ WC "i_sysmman='" + perl_i_sysmman + "'"
+$ WC "multiarch='" + perl_multiarch + "'"
+$ WC "crosscompile='" + perl_crosscompile + "'"
$!
$! ##WRITE NEW CONSTANTS HERE##
$!
cpprun='cpp32 -oCON'
cppstdin='cpp32 -oCON'
cppsymbols=''
+crosscompile='undef'
cryptlib=''
csh='undef'
d_Gconvert='gcvt((x),(n),(b))'
models='none'
modetype='mode_t'
more='more /e'
+multiarch='undef'
mv=''
myarchname='MSWin32'
mydomain=''
cpprun='gcc -E'
cppstdin='gcc -E'
cppsymbols=''
+crosscompile='undef'
cryptlib=''
csh='undef'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
models='none'
modetype='mode_t'
more='more /e'
+multiarch='undef'
mv=''
myarchname='MSWin32'
mydomain=''
cpprun='cl -nologo -E'
cppstdin='cl -nologo -E'
cppsymbols=''
+crosscompile='undef'
cryptlib=''
csh='undef'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
models='none'
modetype='mode_t'
more='more /e'
+multiarch='undef'
mv=''
myarchname='MSWin32'
mydomain=''
*/
/*#define HAS_MPROTECT /**/
+/* MULTIARCH:
+ * This symbol, if defined, indicates that we have a multiarchitecture
+ * build.
+ */
+/*#define MULTIARCH /**/
+
+/* CROSSCOMPILE:
+ * This symbol, if defined, indicates that we have a cross-compile
+ * build.
+ */
+/*#define MULTIARCH /**/
+
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
* available to do gather reads. You will also need <sys/uio.h>
*/
/*#define HAS_MPROTECT /**/
+/* MULTIARCH:
+ * This symbol, if defined, indicates that we have a multiarchitecture
+ * build.
+ */
+/*#define MULTIARCH /**/
+
+/* CROSSCOMPILE:
+ * This symbol, if defined, indicates that we have a cross-compile
+ * build.
+ */
+/*#define MULTIARCH /**/
+
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
* available to do gather reads. You will also need <sys/uio.h>
*/
/*#define HAS_MPROTECT /**/
+/* MULTIARCH:
+ * This symbol, if defined, indicates that we have a multiarchitecture
+ * build.
+ */
+/*#define MULTIARCH /**/
+
+/* CROSSCOMPILE:
+ * This symbol, if defined, indicates that we have a cross-compile
+ * build.
+ */
+/*#define MULTIARCH /**/
+
/* HAS_READV:
* This symbol, if defined, indicates that the readv routine is
* available to do gather reads. You will also need <sys/uio.h>