This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update VOS hints file to use dynamic linking and 64-bit stream files
[perl5.git] / hints / vos.sh
index d32f7e6..2401f69 100644 (file)
@@ -1,24 +1,32 @@
-# $Id: vos.sh,v 1.0 2001-12-11 09:30:00-05 Green Exp $
-
-# This is a hints file for Stratus VOS, using the POSIX environment
-# in VOS 14.4.0 and higher.
+# This is a hints file for Stratus OpenVOS, using the POSIX environment
+# found in VOS 17.1.0 and higher.
 #
-# VOS POSIX is based on POSIX.1-1996.  It ships with gcc as the standard
-# compiler.
+# OpenVOS POSIX is based on POSIX.1-1996 and contains elements of
+# POSIX.1-2001.  It ships with gcc as the standard compiler.
 #
 # Paul Green (Paul.Green@stratus.com)
 
 # C compiler and default options.
-cc=gcc
-ccflags="-D_SVID_SOURCE -D_POSIX_C_SOURCE=199509L"
+cc=${CC-gcc}
+ccflags=${CFLAGS-"-D_XOPEN_SOURCE=700 -D_SYSV -D_VOS_EXTENDED_NAMES -D_FILE_OFFSET_BITS=64"}
 
 # Make command.
-make="/system/gnu_library/bin/gmake"
+make=${MAKE-"/system/gnu_library/bin/gmake"}
 # indented to not put it into config.sh
-  _make="/system/gnu_library/bin/gmake"
+  _make=${MAKE-"/system/gnu_library/bin/gmake"}
+
+# Check for the minimum acceptable release of OpenVOS (17.1.0).
+if test `uname -r | sed -e 's/OpenVOS Release //' -e 's/VOS Release //'` \< "17.1.0"; then
+cat >&4 <<EOF
+***
+*** This version of Perl 5 must be built on OpenVOS Release 17.1.0 or later.
+***
+EOF
+exit 1
+fi
 
-# Architecture name
-archname="hppa1.1"
+# Architecture name always X86
+archname=`uname -m`
 
 # Executable suffix.
 # No, this is not a typo.  The ".pm" really is the native
@@ -26,44 +34,32 @@ archname="hppa1.1"
 _exe=".pm"
 
 # Object library paths.
-loclibpth="/system/stcp/object_library"
-loclibpth="$loclibpth /system/stcp/object_library/common"
-loclibpth="$loclibpth /system/stcp/object_library/net"
-loclibpth="$loclibpth /system/stcp/object_library/socket"
-loclibpth="$loclibpth /system/posix_object_library/sysv"
 loclibpth="$loclibpth /system/posix_object_library"
 loclibpth="$loclibpth /system/c_object_library"
 loclibpth="$loclibpth /system/object_library"
 glibpth="$loclibpth"
 
 # Include library paths
-locincpth="/system/stcp/include_library"
-locincpth="$locincpth /system/include_library/sysv"
-usrinc="/system/include_library"
+locincpth=""
+usrinc=${USRINC-"/system/include_library"}
 
 # Where to install perl5.
-prefix=/system/ported/perl5
+prefix=/system/ported
 
 # Linker is gcc.
-ld="gcc"
+ld=${CC-"gcc"}
 
-# No shared libraries.
-so="none"
-
-# Don't use nm.
+# Don't use nm. The VOS copy of libc.a is empty.
 usenm="n"
 
-# Make the default be no large file support.
-uselargefiles="n"
-
 # Don't use malloc that comes with perl.
 usemymalloc="n"
 
 # Make bison the default compiler-compiler.
 yacc="/system/gnu_library/bin/bison"
 
-# VOS doesn't have (or need) a pager, but perl needs one.
-pager="/system/gnu_library/bin/cat.pm"
+# VOS doesn't need a pager, but perl does.
+pager="/system/gnu_library/bin/less.pm"
 
 # VOS has a bug that causes _exit() to flush all files.
 # This confuses the tests.  Make 'em happy here.
@@ -79,71 +75,29 @@ archobjs="vos.o"
 # Help gmake find vos.c
 test -h vos.c || ln -s vos/vos.c vos.c
 
-# VOS returns a constant 1 for st_nlink when stat'ing a
-# directory. Therefore, we must set this variable to stop
-# File::Find using the link count to determine whether there are
-# subdirectories to be searched.
-dont_use_nlink=define
-
 # Tell Configure where to find the hosts file.
 hostcat="cat /system/stcp/hosts"
 
-# VOS does not have socketpair() but we supply one in vos.c
-d_sockpair="define"
-
-# Once we have the compiler flags defined, Configure will
-# execute the following call-back script. See hints/README.hints
-# for details.
-cat > UU/cc.cbu <<'EOCBU'
-# This script UU/cc.cbu will get 'called-back' by Configure after it
-# has prompted the user for the C compiler to use.
-
-# Compile and run the a test case to see if bug gnu_g++-220 is
-# present. If so, lower the optimization level when compiling
-# pp_pack.c.  This works around a bug in unpack.
-
-echo " "
-echo "Testing whether bug gnu_g++-220 is fixed in your compiler..."
-
-# Try compiling the test case.
-if $cc -o t001 -O $ccflags $ldflags ../hints/t001.c; then
-       gccbug=`$run ./t001`
-       if [ "X$gccversion" = "X" ]; then
-               # Done too late in Configure if hinted
-               gccversion=`$cc -dumpversion`
-       fi
-       case "$gccbug" in
-       *fails*)        cat >&4 <<EOF
-This C compiler ($gccversion) is known to have optimizer
-problems when compiling pp_pack.c.  The Stratus bug number
-for this problem is gnu_g++-220.
-
-Disabling optimization for pp_pack.c.
-EOF
-                       case "$pp_pack_cflags" in
-                       '')     pp_pack_cflags='optimize='
-                               echo "pp_pack_cflags='optimize=\"\"'" >> config.sh ;;
-                       *)  echo "You specified pp_pack_cflags yourself, so we'll go with your value." >&4 ;;
-                       esac
-               ;;
-       *)      echo "Your compiler is ok." >&4
-               ;;
-       esac
-else
-       echo " "
-       echo "*** WHOA THERE!!! ***" >&4
-       echo "    Your C compiler \"$cc\" doesn't seem to be working!" >&4
-       case "$knowitall" in
-       '')
-               echo "    You'd better start hunting for one and let me know about it." >&4
-               exit 1
-               ;;
-       esac
-fi
+# VOS 17.1 has support for dynamic linking.
+usedl="define"
+
+# Filename suffix for shared libraries.
+so="so"
+
+# Flags used when compiling a module for a shared library.
+cccdlflags="-fPIC"
+
+# Flags passed to $ld to produce shared libraries.
+lddlflags="-shared"
+
+# Flags passed to $cc when linking a program that uses shared libraries.
+ccdlflags="-Wl,-export-dynamic"
 
-$rm -f t001$_o t001$_exe t001.kp
-EOCBU
+# Filename suffix for dynamically-loaded perl modules.
+dlext="so"
 
+# Use dlopen() to open shared libraries.
+dlsrc="dl_dlopen.xs"
 
-# VOS 14.7 has minimal support for dynamic linking. Too minimal for perl.
-usedl="undef"
+# Build a shared libperl?  (Define on Configure cmd line.)
+# useshrplib="true"