aboutsummaryrefslogtreecommitdiff
path: root/contrib/perl5/hints
diff options
context:
space:
mode:
authorMark Murray <markm@FreeBSD.org>1999-05-02 14:33:17 +0000
committerMark Murray <markm@FreeBSD.org>1999-05-02 14:33:17 +0000
commitef0775c4f054d9bcacbc3f94478687691d11226b (patch)
tree6ba8453a691190ab1f96748cae95df2e54cb3c2c /contrib/perl5/hints
parent0feb57945e44edd6419789b4f64868d2937bc553 (diff)
parent7c312e6b6a7b1f9412f10365baf3c5eca8fa5649 (diff)
downloadsrc-ef0775c4f054d9bcacbc3f94478687691d11226b.tar.gz
src-ef0775c4f054d9bcacbc3f94478687691d11226b.zip
Notes
Diffstat (limited to 'contrib/perl5/hints')
-rw-r--r--contrib/perl5/hints/aix.sh71
-rw-r--r--contrib/perl5/hints/apollo.sh8
-rw-r--r--contrib/perl5/hints/beos.sh14
-rw-r--r--contrib/perl5/hints/dec_osf.sh45
-rw-r--r--contrib/perl5/hints/dos_djgpp.sh16
-rw-r--r--contrib/perl5/hints/dynixptx.sh49
-rw-r--r--contrib/perl5/hints/gnu.sh33
-rw-r--r--contrib/perl5/hints/hpux.sh86
-rw-r--r--contrib/perl5/hints/irix_4.sh11
-rw-r--r--contrib/perl5/hints/irix_5.sh11
-rw-r--r--contrib/perl5/hints/irix_6.sh115
-rw-r--r--contrib/perl5/hints/irix_6_0.sh15
-rw-r--r--contrib/perl5/hints/irix_6_1.sh16
-rw-r--r--contrib/perl5/hints/linux.sh59
-rw-r--r--contrib/perl5/hints/mint.sh94
-rw-r--r--contrib/perl5/hints/mpeix.sh4
-rw-r--r--contrib/perl5/hints/netbsd.sh71
-rw-r--r--contrib/perl5/hints/next_3.sh10
-rw-r--r--contrib/perl5/hints/next_4.sh17
-rw-r--r--contrib/perl5/hints/openbsd.sh10
-rw-r--r--contrib/perl5/hints/os2.sh29
-rw-r--r--contrib/perl5/hints/os390.sh5
-rw-r--r--contrib/perl5/hints/sco.sh279
-rw-r--r--contrib/perl5/hints/solaris_2.sh53
-rw-r--r--contrib/perl5/hints/ultrix_4.sh8
-rw-r--r--contrib/perl5/hints/uwin.sh36
26 files changed, 829 insertions, 336 deletions
diff --git a/contrib/perl5/hints/aix.sh b/contrib/perl5/hints/aix.sh
index 25e204893182..d2c45c0a590e 100644
--- a/contrib/perl5/hints/aix.sh
+++ b/contrib/perl5/hints/aix.sh
@@ -19,6 +19,10 @@ alignbytes=8
usemymalloc='n'
+# Intuiting the existence of system calls under AIX is difficult,
+# at best; the safest technique is to find them empirically.
+usenm='undef'
+
so="a"
dlext="so"
@@ -63,40 +67,51 @@ esac
# symbol: boot_$(EXP) can it be auto-generated?
case "$osvers" in
3*)
-lddlflags='-H512 -T512 -bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -e _nostart -lc'
+ lddlflags='-H512 -T512 -bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -e _nostart -lc'
;;
*)
-lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -b noentry -lc'
-
-;;
+ lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -b noentry -lc'
+ ;;
esac
-if [ "X$usethreads" = "X$define" ]; then
- ccflags="$ccflags -DNEED_PTHREAD_INIT"
- case "$cc" in
- xlc_r | cc_r)
- ;;
- cc | '')
- cc=xlc_r # Let us be stricter.
- ;;
- *)
- cat >&4 <<EOM
-Unknown C compiler '$cc'.
-For pthreads you should use the AIX C compilers xlc_r or cc_r.
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ ccflags="$ccflags -DNEED_PTHREAD_INIT"
+ case "$cc" in
+ cc_r) ;;
+ cc|xlc_r)
+ echo >&4 "Switching cc to cc_r because of POSIX threads."
+ # xlc_r has been known to produce buggy code in AIX 4.3.2.
+ # (e.g. pragma/overload core dumps)
+ # --jhi@iki.fi
+ cc=cc_r
+ ;;
+ '')
+ cc=cc_r
+ ;;
+ *)
+ cat >&4 <<EOM
+For pthreads you should use the AIX C compiler cc_r.
+(now your compiler was '$cc')
Cannot continue, aborting.
EOM
- exit 1
- ;;
- esac
+ exit 1
+ ;;
+ esac
- # Add the POSIX threads library and the re-entrant libc.
+ # Add the POSIX threads library and the re-entrant libc.
- lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'`
+ lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'`
- # Add the c_r library to the list of libraries wanted
- # Make sure the c_r library is before the c library or
- # make will fail.
- set `echo X "$libswanted "| sed -e 's/ c / c_r c /'`
- shift
- libswanted="$*"
-fi
+ # Add the c_r library to the list of wanted libraries.
+ # Make sure the c_r library is before the c library or
+ # make will fail.
+ set `echo X "$libswanted "| sed -e 's/ c / c_r c /'`
+ shift
+ libswanted="$*"
+ ;;
+esac
+EOCBU
diff --git a/contrib/perl5/hints/apollo.sh b/contrib/perl5/hints/apollo.sh
index 8c361aa0518c..05f433dfc11f 100644
--- a/contrib/perl5/hints/apollo.sh
+++ b/contrib/perl5/hints/apollo.sh
@@ -1,13 +1,17 @@
# Info from Johann Klasek <jk@auto.tuwien.ac.at>
# Merged by Andy Dougherty <doughera@lafcol.lafayette.edu>
-# Last revised Fri Jun 2 11:21:27 EDT 1995
+# Last revised Tue Mar 16 19:12:22 EET 1999 by
+# Jarkko Hietaniemi <jhi@iki.fi>
# uname -a looks like
# DomainOS newton 10.4.1 bsd4.3 425t
# We want to use both BSD includes and some of the features from the
# /sys5 includes.
-ccflags="$ccflags -A cpu,mathchip -I/usr/include -I/sys5/usr/include"
+ccflags="$ccflags -A cpu,mathchip -I`pwd`/apollo -I/usr/include -I/sys5/usr/include"
+
+# When Apollo runs a script with "#!", it sets argv[0] to the script name.
+toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
# These adjustments are necessary (why?) to compile malloc.c.
freetype='void'
diff --git a/contrib/perl5/hints/beos.sh b/contrib/perl5/hints/beos.sh
index ab752769b686..8d76bc5146f4 100644
--- a/contrib/perl5/hints/beos.sh
+++ b/contrib/perl5/hints/beos.sh
@@ -1,11 +1,12 @@
# BeOS hints file
# $Id: beos.sh,v 1.1 1998/02/16 03:51:45 dogcow Exp $
-if [ ! -f beos/nm ]; then mwcc -w all -o beos/nm beos/nm.c; fi
+if [ ! -f beos/nm ]; then mwcc -w all -o beos/nm beos/nm.c 2>/dev/null; fi
+# If this fails, that's all right - it's only for PPC.
prefix="/boot/home/config"
-cpp="mwcc -e"
+#cpp="mwcc -e"
libpth='/boot/beos/system/lib /boot/home/config/lib'
usrinc='/boot/develop/headers/posix'
@@ -37,9 +38,16 @@ d_syserrlst='undef'
# the array syserrlst[] is useless for the most part.
# large negative numbers really kind of suck in arrays.
-#d_socket='undef'
+d_socket='undef'
+d_gethbyaddr='undef'
+d_gethbyname='undef'
+d_getsbyname='undef'
+
+ld='gcc'
+
# Sockets really don't work with the current version of perl and the
# current BeOS sockets; I suspect that a new module a la GSAR's WIN32 port
# will be required.
+# Of course, this may also change with R5.
export PATH="$PATH:$PWD/beos"
diff --git a/contrib/perl5/hints/dec_osf.sh b/contrib/perl5/hints/dec_osf.sh
index a531ea8c8f74..8758cbb8207d 100644
--- a/contrib/perl5/hints/dec_osf.sh
+++ b/contrib/perl5/hints/dec_osf.sh
@@ -177,30 +177,37 @@ case "$optimize" in
;;
esac
-if [ "X$usethreads" = "X$define" ]; then
- # Threads interfaces changed with V4.0.
- case "$_DEC_uname_r" in
- *[123].*) libswanted="$libswanted pthreads mach exc c_r"
- ccflags="-threads $ccflags"
- ;;
- *) libswanted="$libswanted pthread exc"
- ccflags="-pthread $ccflags"
- ;;
- esac
- usemymalloc='n'
-fi
-
#
# Make embedding in things like INN and Apache more memory friendly.
# Keep it overridable on the Configure command line, though, so that
# "-Uuseshrplib" prevents this default.
#
-# This or the glibpth change above breaks the build. Commented out
-# for this snapshot.
-#case "$_DEC_cc_style.$useshrplib" in
-# new.) useshrplib="$define" ;;
-#esac
+case "$_DEC_cc_style.$useshrplib" in
+ new.) useshrplib="$define" ;;
+esac
+
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ # Threads interfaces changed with V4.0.
+ case "`uname -r`" in
+ *[123].*)
+ libswanted="$libswanted pthreads mach exc c_r"
+ ccflags="-threads $ccflags"
+ ;;
+ *)
+ libswanted="$libswanted pthread exc"
+ ccflags="-pthread $ccflags"
+ ;;
+ esac
+
+ usemymalloc='n'
+ ;;
+esac
+EOCBU
#
# Unset temporary variables no more needed.
@@ -216,7 +223,7 @@ unset _DEC_uname_r
#
# 19-Dec-1997 Spider Boardman <spider@Orb.Nashua.NH.US>
#
-# * Newer Digial UNIX compilers enforce signaling for NaN without
+# * Newer Digital UNIX compilers enforce signaling for NaN without
# -ieee. Added -fprm d at the same time since it's friendlier for
# embedding.
#
diff --git a/contrib/perl5/hints/dos_djgpp.sh b/contrib/perl5/hints/dos_djgpp.sh
index 73bae63dd2ce..7c59428c7e4b 100644
--- a/contrib/perl5/hints/dos_djgpp.sh
+++ b/contrib/perl5/hints/dos_djgpp.sh
@@ -52,8 +52,14 @@ sitearch=$sitelib
eagain='EAGAIN'
rd_nodata='-1'
-if [ "X$usethreads" = "X$define" ]; then
- set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
- shift
- libswanted="$*"
-fi
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
+ shift
+ libswanted="$*"
+ ;;
+esac
+EOCBU
diff --git a/contrib/perl5/hints/dynixptx.sh b/contrib/perl5/hints/dynixptx.sh
index 78a45e42a31e..2edf02630534 100644
--- a/contrib/perl5/hints/dynixptx.sh
+++ b/contrib/perl5/hints/dynixptx.sh
@@ -1,5 +1,9 @@
# Sequent Dynix/Ptx v. 4 hints
# Created 1996/03/15 by Brad Howerter, bhower@wgc.woodward.com
+
+# Modified 1998/11/10 by Martin J. Bligh, mbligh@sequent.com
+# to incorporate work done by Kurtis D. Rader & myself.
+
# Use Configure -Dcc=gcc to use gcc.
# cc wants -G for dynamic loading
@@ -15,10 +19,41 @@ libswanted=`echo $libswanted | sed -e 's/ inet / /'`
# Configure defaults to usenm='y', which doesn't work very well
usenm='n'
-# Reported by bruce@aps.org ("Bruce P. Schuck") as needed for
-# DYNIX/ptx 4.0 V4.2.1 to get socket i/o to work
-# Not defined by default in case they break other versions.
-# These probably need to be worked into a piece of code that
-# checks for the need for this setting.
-# cppflags='-Wc,+abi-socket -I/usr/local/include'
-# ccflags='-Wc,+abi-socket -I/usr/local/include'
+# for performance, apparently this makes a huge difference (~krader)
+
+d_vfork='define'
+optimize='-Wc,-O3 -W0,-xstring'
+
+# We override d_socket because it's very hard for Configure to get it right
+# in Dynix/Ptx, for several reasons.
+# (1) the socket interface is in libsocket.so -- this wouldn't be so hard
+# for Configure to fathom...but it gets more tangled.
+# (2) if the system has been patched there can be libsocket.so.1.FOO.BAR,
+# the FOO.BAR being the old version of the system before the patching.
+# Configure picks up the old broken version.
+# (3) libsocket.so points to either libsocket.so.1 (v4.2)
+# or libsocket.so.1.1 (v4.4) The socket call in libsocket.so.1.1
+# (BSD socket library) is called bsd_socket(), and has a macro wrapper
+# to hide this.
+# This information kindly provided by Martin J. Bligh of Sequent.
+# As he puts it:
+# "Sequent has unusual capabilities, taking it above and beyond
+# the complexity of any other vendor" :-)
+#
+# Jarkko Hietaniemi November 1998
+
+case "$osvers" in
+4.4*) # configure doesn't find sockets, as they're in libsocket, not libc
+ d_socket='define'
+ d_oldsock='undef'
+ d_sockpair='define'
+ ;;
+4.2*) # on ptx/TCP 4.2, we can use BSD sockets, but they're not the default.
+ cppflags='-Wc,+bsd-socket'
+ ccflags='-Wc,+bsd-socket'
+ ldflags='-Wc,+bsd-socket'
+ d_socket='define'
+ d_oldsock='undef'
+ d_sockpair='define'
+ ;;
+esac
diff --git a/contrib/perl5/hints/gnu.sh b/contrib/perl5/hints/gnu.sh
new file mode 100644
index 000000000000..927bceab9df1
--- /dev/null
+++ b/contrib/perl5/hints/gnu.sh
@@ -0,0 +1,33 @@
+# hints/gnu.sh
+# Last modified: Thu Dec 10 20:47:28 CET 1998
+# Mark Kettenis <kettenis@phys.uva.nl>
+
+# libnsl is unusable on the Hurd.
+# XXX remove this once SUNRPC is implemented.
+set `echo X "$libswanted "| sed -e 's/ nsl / /'`
+shift
+libswanted="$*"
+
+case "$optimize" in
+'') optimize='-O2' ;;
+esac
+
+# Flags needed to produce shared libraries.
+lddlflags='-shared'
+
+# Flags needed by programs that use dynamic linking.
+ccdlflags='-Wl,-E'
+
+# The following routines are only available as stubs in GNU libc.
+# XXX remove this once metaconf detects the GNU libc stubs.
+d_msgctl='undef'
+d_msgget='undef'
+d_msgrcv='undef'
+d_msgsnd='undef'
+d_semctl='undef'
+d_semget='undef'
+d_semop='undef'
+d_shmat='undef'
+d_shmctl='undef'
+d_shmdt='undef'
+d_shmget='undef'
diff --git a/contrib/perl5/hints/hpux.sh b/contrib/perl5/hints/hpux.sh
index 281f289c9b36..8a9e3cb25d22 100644
--- a/contrib/perl5/hints/hpux.sh
+++ b/contrib/perl5/hints/hpux.sh
@@ -20,6 +20,7 @@
# Distinguish between MC68020, MC68030, MC68040
# Don't assume every OS != 10 is < 10, (e.g., 11).
# From: Chuck Phillips <cdp@fc.hp.com>
+# HP-UX 10 pthreads hints: Matthew T Harden <mthard@mthard1.monsanto.com>
# This version: August 15, 1997
# Current maintainer: Jeff Okamoto <okamoto@corp.hp.com>
@@ -80,6 +81,16 @@ EOM
esac
else
ccflags="$ccflags -Aa" # The add-on compiler supports ANSI C
+ # cppstdin and cpprun need the -Aa option if you use the unbundled
+ # ANSI C compiler (*not* the bundled K&R compiler or gcc)
+ # [XXX this should be set automatically by Configure, but isn't yet.]
+ # [XXX This is reported not to work. You may have to edit config.sh.
+ # After running Configure, set cpprun and cppstdin in config.sh,
+ # run "Configure -S" and then "make".]
+ cpprun="${cc:-cc} -E -Aa"
+ cppstdin="$cpprun"
+ cppminus='-'
+ cpplast='-'
fi
# For HP's ANSI C compiler, up to "+O3" is safe for everything
# except shared libraries (PIC code). Max safe for PIC is "+O2".
@@ -128,6 +139,60 @@ else
selecttype='int *'
fi
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ if [ "$xxOsRevMajor" -lt 10 ]; then
+ cat <<EOM >&4
+HP-UX $xxOsRevMajor cannot support POSIX threads.
+Consider upgrading to at least HP-UX 11.
+Cannot continue, aborting.
+EOM
+ exit 1
+ fi
+ case "$xxOsRevMajor" in
+ 10)
+ # Under 10.X, a threaded perl can be built, but it needs
+ # libcma and OLD_PTHREADS_API. Also <pthread.h> needs to
+ # be #included before any other includes (in perl.h)
+ if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
+ cat <<EOM >&4
+In HP-UX 10.X for POSIX threads you need both of the files
+/usr/include/pthread.h and /usr/lib/libcma.sl.
+Either you must install the CMA package or you must upgrade to HP-UX 11.
+Cannot continue, aborting.
+EOM
+ exit 1
+ fi
+
+ # HP-UX 10.X uses the old pthreads API
+ case "$d_oldpthreads" in
+ '') d_oldpthreads="$define" ;;
+ esac
+
+ # include libcma before all the others
+ libswanted="cma $libswanted"
+
+ # tell perl.h to include <pthread.h> before other include files
+ ccflags="$ccflags -DPTHREAD_H_FIRST"
+
+ # CMA redefines select to cma_select, and cma_select expects int *
+ # instead of fd_set * (just like 9.X)
+ selecttype='int *'
+ ;;
+ 11 | 12) # 12 may want upping the _POSIX_C_SOURCE datestamp...
+ ccflags=" -D_POSIX_C_SOURCE=199506L $ccflags"
+ set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
+ shift
+ libswanted="$*"
+ ;;
+ esac
+ usemymalloc='n'
+ ;;
+esac
+EOCBU
# Remove bad libraries that will cause problems
# (This doesn't remove libraries that don't actually exist)
@@ -183,24 +248,3 @@ esac
# assembler of the form:
# (warning) Use of GR3 when frame >= 8192 may cause conflict.
# These warnings are harmless and can be safely ignored.
-
-#
-# cppstdin and cpprun need the -Aa option if you use the unbundled
-# ANSI C compiler (*not* the bundled K&R compiler or gcc)
-# [XXX this should be enabled automatically by Configure, but isn't yet.]
-# [XXX This is reported not to work. You may have to edit config.sh.
-# After running Configure, set cpprun and cppstdin in config.sh,
-# run "Configure -S" and then "make".]
-#
-case "$cppstdin" in
-'')
- case "$ccflags" in
- *-Aa*)
- cpprun="${cc:-cc} -E -Aa"
- cppstdin="$cpprun"
- cppminus='-'
- cpplast='-'
- ;;
- esac
- ;;
-esac
diff --git a/contrib/perl5/hints/irix_4.sh b/contrib/perl5/hints/irix_4.sh
index f5883f38cb72..8013c8a1f493 100644
--- a/contrib/perl5/hints/irix_4.sh
+++ b/contrib/perl5/hints/irix_4.sh
@@ -22,3 +22,14 @@ If you have problems, you might have try including
-DSTANDARD_C -cckr
in ccflags.
EOM
+
+case "$usethreads" in
+$define|true|[yY]*)
+ cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+ exit 1
+ ;;
+esac
+
diff --git a/contrib/perl5/hints/irix_5.sh b/contrib/perl5/hints/irix_5.sh
index 9d6e80246c0b..757ffff38474 100644
--- a/contrib/perl5/hints/irix_5.sh
+++ b/contrib/perl5/hints/irix_5.sh
@@ -32,3 +32,14 @@ libswanted="$*"
# patchSG0000596. The patch can be downloaded from Advantage OnLine (SGI's
# WWW server) or from the Support Advantage 9/95 Patch CDROM. Thanks to Tom
# Christiansen and others who provided assistance.
+
+case "$usethreads" in
+$define|true|[yY]*)
+ cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+ exit 1
+ ;;
+esac
+
diff --git a/contrib/perl5/hints/irix_6.sh b/contrib/perl5/hints/irix_6.sh
index 384701ffd6de..3250fc7d4a8a 100644
--- a/contrib/perl5/hints/irix_6.sh
+++ b/contrib/perl5/hints/irix_6.sh
@@ -53,11 +53,11 @@ case "$cc" in
case "`$cc -version 2>&1`" in
*7.0*) # Mongoose 7.0
ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1042,1048,1110,1116,1184 -OPT:Olimit=0"
- optimize='none'
+ optimize='none'
;;
*7.1*|*7.2|*7.20) # Mongoose 7.1+
ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
- optimize='-O3'
+ optimize='-O3'
# This is a temporary fix for 5.005.
# Leave pp_ctl_cflags line at left margin for Configure. See
# hints/README.hints, especially the section
@@ -65,12 +65,12 @@ case "$cc" in
pp_ctl_cflags='optimize=-O'
;;
*7.*) # Mongoose 7.2.1+
- ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0:space=on"
- optimize='-O3'
+ ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0:space=ON"
+ optimize='-O3'
;;
*6.2*) # Ragnarok 6.2
ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184"
- optimize='none'
+ optimize='none'
;;
*) # Be safe and not optimize
ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
@@ -78,9 +78,30 @@ pp_ctl_cflags='optimize=-O'
;;
esac
- ld=ld
+# this is to accommodate the 'modules' capability of the
+# 7.2 MIPSPro compilers, which allows for the compilers to be installed
+# in a nondefault location. Almost everything works as expected, but
+# /usr/include isn't caught properly. Hence see the /usr/include/pthread.h
+# change below to include TOOLROOT (a modules environment variable),
+# and the following code. Additional
+# code to accommodate the 'modules' environment should probably be added
+# here if possible, or be inserted as a ${TOOLROOT} reference before
+# absolute paths (again, see the pthread.h change below).
+# -- krishna@sgi.com, 8/23/98
+
+if [ "X${TOOLROOT}" != "X" ]; then
+# we cant set cppflags because it gets overwritten
+# we dont actually need $TOOLROOT/usr/include on the cc line cuz the
+# modules functionality already includes it but
+# XXX - how do I change cppflags in the hints file?
+ ccflags="$ccflags -I${TOOLROOT}/usr/include"
+ usrinc="${TOOLROOT}/usr/include"
+fi
+
+ ld=$cc
# perl's malloc can return improperly aligned buffer
- usemymalloc='undef'
+ # usemymalloc='undef'
+malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
# NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker
ldflags=' -L/usr/local/lib32 -L/usr/local/lib'
cccdlflags=' '
@@ -138,22 +159,23 @@ set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /'
shift
libswanted="$*"
-if [ "X$usethreads" = "X$define" -o "X$usethreads" = "Xy" ]; then
- if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
- uname_r=`uname -r`
- case "`uname -r`" in
- 5*|6.0|6.1)
- echo >&4 "IRIX $uname_r does not have the POSIX threads."
- echo >&4 "You should upgrade to at least IRIX 6.2 with pthread patches."
- echo >&4 "Cannot continue, aborting."
- exit 1
- ;;
- 6.2)
- echo >&4 ""
-cat >&4 <<EOF
-IRIX 6.2 $uname_r can have the POSIX threads.
-The following IRIX patches (or their replacements) must, however, be installed:
-
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
+ case "`uname -r`" in
+ [1-5].*|6.[01])
+ cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+ ;;
+ 6.2)
+ cat >&4 <<EOM
+IRIX 6.2 can have the POSIX threads.
+However, the following IRIX patches (or their replacements) MUST be installed:
1404 Irix 6.2 Posix 1003.1b man pages
1645 IRIX 6.2 & 6.3 POSIX header file updates
2000 Irix 6.2 Posix 1003.1b support modules
@@ -163,28 +185,27 @@ IMPORTANT:
Without patch 2401, a kernel bug in IRIX 6.2 will
cause your machine to panic and crash when running
threaded perl. IRIX 6.3 and up should be OK.
-
-
+EOM
+ ;;
+ [67].*)
+ cat >&4 <<EOM
+IRIX `uname -r` should have the POSIX threads.
+But, somehow, you do not seem to have them installed.
+EOM
+ ;;
+ esac
+ cat >&4 <<EOM
Cannot continue, aborting.
-EOF
- exit 1
- ;;
- 6.*|7.*)
- echo >&4 "IRIX $uname_r should have the POSIX threads."
- echo >&4 "But somehow you do not seem to have them installed."
- echo >&4 "Cannot continue, aborting."
- exit 1
- ;;
- esac
- unset uname_r
- fi
- # -lpthread needs to come before -lc but after other libraries such
- # as -lgdbm and such like. We assume here that -lc is present in
- # libswanted. If that fails to be true in future, then this can be
- # changed to add pthread to the very end of libswanted.
- set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
- ld="${cc:-cc}"
- shift
- libswanted="$*"
- usemymalloc='n'
-fi
+EOM
+ exit 1
+ fi
+ set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
+ ld="${cc:-cc}"
+ shift
+ libswanted="$*"
+
+ usemymalloc='n'
+ ;;
+esac
+EOCBU
+
diff --git a/contrib/perl5/hints/irix_6_0.sh b/contrib/perl5/hints/irix_6_0.sh
index b0a39943bd4e..e61db0460fcc 100644
--- a/contrib/perl5/hints/irix_6_0.sh
+++ b/contrib/perl5/hints/irix_6_0.sh
@@ -42,10 +42,13 @@ libswanted="$*"
# shift
# libswanted="$*"
-if [ "X$usethreads" = "X$define" ]; then
- echo >&4 "IRIX 6.0 does not have POSIX threads."
- echo >&4 "You should upgrade to at least IRIX 6.3."
- echo >&4 "Cannot continue, aborting."
- exit 1
-fi
+case "$usethreads" in
+$define|true|[yY]*)
+ cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+ exit 1
+ ;;
+esac
diff --git a/contrib/perl5/hints/irix_6_1.sh b/contrib/perl5/hints/irix_6_1.sh
index 1c54f774a901..e61db0460fcc 100644
--- a/contrib/perl5/hints/irix_6_1.sh
+++ b/contrib/perl5/hints/irix_6_1.sh
@@ -42,9 +42,13 @@ libswanted="$*"
# shift
# libswanted="$*"
-if [ "X$usethreads" = "X$define" ]; then
- echo >&4 "IRIX 6.1 does not have POSIX threads."
- echo >&4 "You should upgrade to at least IRIX 6.3."
- echo >&4 "Cannot continue, aborting."
- exit 1
-fi
+case "$usethreads" in
+$define|true|[yY]*)
+ cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+ exit 1
+ ;;
+esac
+
diff --git a/contrib/perl5/hints/linux.sh b/contrib/perl5/hints/linux.sh
index 545f50eb3d3d..4764e9ea4bdd 100644
--- a/contrib/perl5/hints/linux.sh
+++ b/contrib/perl5/hints/linux.sh
@@ -18,6 +18,27 @@
# No version of Linux supports setuid scripts.
d_suidsafe='undef'
+# Debian and Red Hat, and perhaps other vendors, provide both runtime and
+# development packages for some libraries. The runtime packages contain shared
+# libraries with version information in their names (e.g., libgdbm.so.1.7.3);
+# the development packages supplement this with versionless shared libraries
+# (e.g., libgdbm.so).
+#
+# If you want to link against such a library, you must install the development
+# version of the package.
+#
+# These packages use a -dev naming convention in both Debian and Red Hat:
+# libgdbmg1 (non-development version of GNU libc 2-linked GDBM library)
+# libgdbmg1-dev (development version of GNU libc 2-linked GDBM library)
+# So make sure that for any libraries you wish to link Perl with under
+# Debian or Red Hat you have the -dev packages installed.
+#
+# Some operating systems (e.g., Solaris 2.6) will link to a versioned shared
+# library implicitly. For example, on Solaris, `ld foo.o -lgdbm' will find an
+# appropriate version of libgdbm, if one is available; Linux, however, doesn't
+# do the implicit mapping.
+ignore_versioned_solibs='y'
+
# perl goes into the /usr tree. See the Filesystem Standard
# available via anonymous FTP at tsx-11.mit.edu in
# /pub/linux/docs/linux-standards/fsstnd.
@@ -187,29 +208,31 @@ fi
# Shimpei Yamashita <shimpei@socrates.patnet.caltech.edu>
# Message-Id: <33EF1634.B36B6500@pobox.com>
#
-# MkLinux (osname=linux,archname=ppc-linux), which differs slightly from other
-# linuces, needs special flags passed in order for dynamic loading to work.
+# The DR2 of MkLinux (osname=linux,archname=ppc-linux) may need
+# special flags passed in order for dynamic loading to work.
# instead of the recommended:
+#
# ccdlflags='-rdynamic'
#
# it should be:
# ccdlflags='-Wl,-E'
-
-# XXX EXPERIMENTAL A.D. 2/27/1998
-# XXX This script UU/usethreads.cbu will get 'called-back' by Configure
-# XXX after it has prompted the user for whether to use threads.
-cat > UU/usethreads.cbu <<'EOSH'
+#
+# So if your DR2 (DR3 came out summer 1998, consider upgrading)
+# has problems with dynamic loading, uncomment the
+# following three lines, make distclean, and re-Configure:
+#case "`uname -r | sed 's/^[0-9.-]*//'``arch`" in
+#'osfmach3ppc') ccdlflags='-Wl,-E' ;;
+#esac
+
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
- ccflags="-D_REENTRANT $ccflags"
- # -lpthread needs to come before -lc but after other libraries such
- # as -lgdbm and such like. We assume here that -lc is present in
- # libswanted. If that fails to be true in future, then this can be
- # changed to add pthread to the very end of libswanted.
- set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
- shift
- libswanted="$*"
- ;;
+ ccflags="-D_REENTRANT $ccflags"
+ set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
+ shift
+ libswanted="$*"
+ ;;
esac
-EOSH
-# XXX EXPERIMENTAL --end of call-back
+EOCBU
diff --git a/contrib/perl5/hints/mint.sh b/contrib/perl5/hints/mint.sh
new file mode 100644
index 000000000000..22d854c397c6
--- /dev/null
+++ b/contrib/perl5/hints/mint.sh
@@ -0,0 +1,94 @@
+# hints/mint.sh
+#
+# talk to gufl0000@stud.uni-sb.de if you want to change this file.
+# Please read the README.mint file.
+#
+# misc stuff
+
+case `uname -m` in
+ atarist*) archname="m68000-mint"
+ ;;
+ *) archname="m68k-mint"
+ ;;
+esac
+
+here=`pwd | tr -d '\015'`
+
+cc='gcc'
+
+# The weird include path is really to work around some bugs in
+# broken system header files.
+ccflags="-D__MINT__ -Uatarist -DDEBUGGING -I$here/../mint"
+
+# libs
+
+libpth="$prefix/lib /usr/lib /usr/local/lib"
+glibpth="$libpth"
+xlibpth="$libpth"
+
+libswanted='gdbm socket port m'
+so='none'
+
+#
+# compiler & linker flags
+#
+optimize='-O2 -fomit-frame-pointer -fno-defer-pop -fstrength-reduce'
+
+# The setlocale function in the MiNTLib is actually a bad joke. We
+# lend a workaround from Ultrix. If neither LC_ALL nor LANG is
+# set in the environment, perl won't complain. If one is set to
+# anything but "C" you will see a warning. Note that you can
+# still use the GNU extension "$LANGUAGE" if you want to use
+# the i18n features of some GNU packages.
+util_cflags='ccflags="$ccflags -DLOCALE_ENVIRON_REQUIRED"'
+
+#
+# Some good answers to the questions in Configure:
+usenm='true'
+d_suidsafe='true'
+clocktype='long'
+usevfork='true'
+d_fsetpos='fpos_t'
+gidtype='gid_t'
+groupstype='gid_t'
+lseektype='long'
+models='none'
+modetype='mode_t'
+sizetype='size_t'
+timetype='time_t'
+uidtype='uid_t'
+
+# Don't remove that leading tab character (Configure Black Magic (TM)).
+ broken_pwd=
+case "`/bin/pwd|tr -d xy|tr '\015\012' 'xy'`" in
+*xy) broken_pwd=yes ;;
+esac
+
+if test X"$broken_pwd" = Xyes
+then
+ echo " "
+ echo "*** Building fixed 'pwd'... (as described in README.mint) ***"
+ echo " "
+ cd mint
+ make pwd
+ cd ..
+ if test -x mint/pwd -a -w /usr/bin
+ then
+ echo " "
+ echo "*** Installing fixed 'pwd'... ***"
+ echo " "
+ cd mint
+ make install
+ cd ..
+ if cmp -s mint/pwd /usr/bin/pwd
+ then
+ echo "*** Installed fixed 'pwd' successfully. ***"
+ else
+ echo "*** Failed to install fixed 'pwd'. Aborting. ***"
+ exit 1
+ fi
+ else
+ echo "*** Cannot install fixed 'pwd'. Aborting. ***"
+ exit 1
+ fi
+fi
diff --git a/contrib/perl5/hints/mpeix.sh b/contrib/perl5/hints/mpeix.sh
index 4a32b77fa262..9ebb0bad1e1a 100644
--- a/contrib/perl5/hints/mpeix.sh
+++ b/contrib/perl5/hints/mpeix.sh
@@ -51,8 +51,8 @@ toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
# Linking.
#
lddlflags='-b'
-libs='-lbind -lsvipc -lsocket -lm -lc'
-loclibpth='/usr/local/lib /usr/contrib/lib /BIND/PUB/lib'
+libs='-lbind -lsyslog -lcurses -lsvipc -lsocket -lm -lc'
+loclibpth='/usr/local/lib /usr/contrib/lib /BIND/PUB/lib /SYSLOG/PUB'
#
# External functions and data items.
#
diff --git a/contrib/perl5/hints/netbsd.sh b/contrib/perl5/hints/netbsd.sh
index 71d508448a6b..6d99a13edfe7 100644
--- a/contrib/perl5/hints/netbsd.sh
+++ b/contrib/perl5/hints/netbsd.sh
@@ -1,12 +1,11 @@
# hints/netbsd.sh
#
-# talk to mrg@eterna.com.au if you want to change this file.
+# talk to packages@netbsd.org if you want to change this file.
#
# netbsd keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
# so Configure doesn't find them (unless you abandon the nm scan).
# this should be *just* 0.9 below as netbsd 0.9a was the first to
-# introduce shared libraries. however, they don't work/build on
-# pmax, powerpc and alpha ports correctly, yet.
+# introduce shared libraries.
case "$archname" in
'')
@@ -19,34 +18,26 @@ case "$osvers" in
usedl="$undef"
;;
*)
- case `uname -m` in
- alpha|powerpc|pmax)
+ if [ -f /usr/libexec/ld.elf_so ]; then
+ d_dlopen=$define
+ d_dlerror=$define
+ ccdlflags="-Wl,-E -Wl,-R${PREFIX}/lib $ccdlflags"
+ cccdlflags="-DPIC -fPIC $cccdlflags"
+ lddlflags="--whole-archive -shared $lddlflags"
+ elif [ "`uname -m`" = "pmax" ]; then
+# NetBSD 1.3 and 1.3.1 on pmax shipped an `old' ld.so, which will not work.
d_dlopen=$undef
- ;;
-# this doesn't work (yet).
-# alpha)
-# d_dlopen=$define
-# d_dlerror=$define
-# cccdlflags="-DPIC -fPIC $cccdlflags"
-# lddlflags="-shared $lddlflags"
-# ;;
- *)
+ elif [ -f /usr/libexec/ld.so ]; then
d_dlopen=$define
d_dlerror=$define
+ ccdlflags="-Wl,-R${PREFIX}/lib $ccdlflags"
# we use -fPIC here because -fpic is *NOT* enough for some of the
# extensions like Tk on some netbsd platforms (the sparc is one)
cccdlflags="-DPIC -fPIC $cccdlflags"
lddlflags="-Bforcearchive -Bshareable $lddlflags"
- ;;
- esac
- ;;
-esac
-# netbsd 1.3 linker warns about setr[gu]id being deprecated.
-# (setregid, setreuid, preferred?)
-case "$osvers" in
-1.3|1.3*)
- d_setrgid="$undef"
- d_setruid="$undef"
+ else
+ d_dlopen=$undef
+ fi
;;
esac
@@ -55,25 +46,31 @@ esac
# way to make perl call setuid() or setgid(). if they aren't, then
# ($<, $>) = ($u, $u); will work (same for $(/$)). this is because
# you can not change the real userid of a process under 4.4BSD.
-# netbsd fixed this in 1.2A.
+# netbsd fixed this in 1.3.2.
case "$osvers" in
-0.9*|1.0*|1.1*|1.2_*|1.2|1.2.*)
+0.9*|1.[012]*|1.3|1.3.1)
d_setregid="$undef"
d_setreuid="$undef"
- d_setrgid="$undef"
- d_setruid="$undef"
- ;;
-esac
-# netbsd 1.3 linker warns about setr[gu]id being deprecated.
-# (setregid, setreuid, preferred?)
-case "$osvers" in
-1.3|1.3*)
- d_setrgid="$undef"
- d_setruid="$undef"
;;
esac
-# vfork is ok on NetBSD.
+# These are obsolete in any netbsd.
+d_setrgid="$undef"
+d_setruid="$undef"
+
+# there's no problem with vfork.
case "$usevfork" in
'') usevfork=true ;;
esac
+
+# Avoid telldir prototype conflict in pp_sys.c (NetBSD uses const DIR *)
+# Configure should test for this. Volunteers?
+pp_sys_cflags='ccflags="$ccflags -DHAS_TELLDIR_PROTOTYPE"'
+
+# Pre-empt the /usr/bin/perl question of installperl.
+installusrbinperl='n'
+
+# Recognize the NetBSD packages collection.
+# GDBM might be here.
+test -d /usr/pkg/lib && loclibpth="$loclibpth /usr/pkg/lib"
+test -d /usr/pkg/include && locincpth="$locincpth /usr/pkg/include"
diff --git a/contrib/perl5/hints/next_3.sh b/contrib/perl5/hints/next_3.sh
index 43340c03ad2c..99adf50ffe9f 100644
--- a/contrib/perl5/hints/next_3.sh
+++ b/contrib/perl5/hints/next_3.sh
@@ -129,3 +129,13 @@ ranlib='sleep 5; /bin/ranlib'
# This is true whether we're on an HPPA machine or cross-compiling
# for one.
pp_cflags='optimize=""'
+
+# The SysV IPC is optional (ftp://ftp.nluug.nl/pub/comp/next/SysVIPC/)
+# Gerben_Wierda@RnA.nl
+if [ -f /usr/local/lib/libIPC.a ]; then
+ libswanted="$libswanted IPC"
+ # As of Sep 1998 d_msg wasn't supported in that library,
+ # only d_sem and d_shm, but Configure should be able to
+ # figure that out. --jhi
+ # Note also the next3 ext/IPC/SysV hints file.
+fi
diff --git a/contrib/perl5/hints/next_4.sh b/contrib/perl5/hints/next_4.sh
index b3887e612b0f..d1d0398dd9ae 100644
--- a/contrib/perl5/hints/next_4.sh
+++ b/contrib/perl5/hints/next_4.sh
@@ -12,7 +12,7 @@
#
useposix='undef'
-libpth='/lib /usr/lib'
+libpth='/lib /usr/lib /usr/local/lib'
libswanted=' '
libc='/NextLibrary/Frameworks/System.framework/System'
@@ -35,7 +35,20 @@ ld='cc'
#
# archs='m68k i386'
#
-archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
+
+# On m68k machines, toke.c cannot be compiled at all for i386 and it can
+# only be compiled for m68k itself without optimization (this is under
+# OPENSTEP 4.2).
+#
+if [ `hostinfo | grep 'NeXT Mach.*:' | sed 's/.*RELEASE_//'` = M68K ]
+then
+ echo "Cross compilation is impossible on m68k hardware under OS 4"
+ echo "Forcing architecture to m68k only"
+ toke_cflags='optimize=""'
+ archs='m68k'
+else
+ archs=`/bin/lipo -info /usr/lib/libm.a | sed -n 's/^[^:]*:[^:]*: //p'`
+fi
#
# leave the following part alone
diff --git a/contrib/perl5/hints/openbsd.sh b/contrib/perl5/hints/openbsd.sh
index 4c98ec8587a8..e9d8ea483d56 100644
--- a/contrib/perl5/hints/openbsd.sh
+++ b/contrib/perl5/hints/openbsd.sh
@@ -48,4 +48,14 @@ d_suidsafe='define'
# Allow a command-line override, such as -Doptimize=-g
test "$optimize" || optimize='-O2'
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ # any openbsd version dependencies with pthreads?
+ libswanted="$libswanted pthread"
+esac
+EOCBU
+
# end
diff --git a/contrib/perl5/hints/os2.sh b/contrib/perl5/hints/os2.sh
index 78d370a1e939..310ae913c490 100644
--- a/contrib/perl5/hints/os2.sh
+++ b/contrib/perl5/hints/os2.sh
@@ -113,10 +113,11 @@ aout_lib_ext='.a'
aout_ar='ar'
aout_plibext='.a'
aout_lddlflags="-Zdll $ld_dll_optimize"
+# Cannot have 32000K stack: get SYS0170 ?!
if [ $emxcrtrev -ge 50 ]; then
- aout_ldflags='-Zexe -Zsmall-conv -Zstack 32000'
+ aout_ldflags='-Zexe -Zsmall-conv -Zstack 16000'
else
- aout_ldflags='-Zexe -Zstack 32000'
+ aout_ldflags='-Zexe -Zstack 16000'
fi
# To get into config.sh:
@@ -249,15 +250,6 @@ nm_opt='-p'
d_getprior='define'
d_setprior='define'
-if [ "X$usethreads" = "X$define" ]; then
- ccflags="-Zmt $ccflags"
- cppflags="-Zmt $cppflags" # Do we really need to set this?
- aout_ccflags="-DUSE_THREADS $aout_ccflags"
- aout_cppflags="-DUSE_THREADS $aout_cppflags"
- aout_lddlflags="-Zmt $aout_lddlflags"
- aout_ldflags="-Zmt $aout_ldflags"
-fi
-
# The next two are commented. pdksh handles #!, extproc gives no path part.
# sharpbang='extproc '
# shsharp='false'
@@ -269,6 +261,21 @@ fi
cp ./README.os2 ./pod/perlos2.pod
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ ccflags="-Zmt $ccflags"
+ cppflags="-Zmt $cppflags" # Do we really need to set this?
+ aout_ccflags="-DUSE_THREADS $aout_ccflags"
+ aout_cppflags="-DUSE_THREADS $aout_cppflags"
+ aout_lddlflags="-Zmt $aout_lddlflags"
+ aout_ldflags="-Zmt $aout_ldflags"
+ ;;
+esac
+EOCBU
+
# Now install the external modules. We are in the ./hints directory.
cd ./os2/OS2
diff --git a/contrib/perl5/hints/os390.sh b/contrib/perl5/hints/os390.sh
index 1cf945dca394..08b60c878e4c 100644
--- a/contrib/perl5/hints/os390.sh
+++ b/contrib/perl5/hints/os390.sh
@@ -17,6 +17,8 @@
# To get ANSI C, we need to use c89, and ld doesn't exist
cc='c89'
ld='c89'
+# To link via definition side decks we need the dll option
+cccdlflags='-W 0,dll,"langlvl(extended)"'
# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again,
# YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant.
# -DEBCDIC should come from Configure.
@@ -54,3 +56,6 @@ case "$archname" in
esac
archobjs=ebcdic.o
+
+# We have our own cppstdin.
+echo 'cat >.$$.c; '"$cc"' -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
diff --git a/contrib/perl5/hints/sco.sh b/contrib/perl5/hints/sco.sh
index cef1c0c94230..eb598452a1de 100644
--- a/contrib/perl5/hints/sco.sh
+++ b/contrib/perl5/hints/sco.sh
@@ -1,140 +1,233 @@
-# sco.sh
+# sco.sh
# Courtesy of Joel Rosi-Schwartz <j.schwartz@agonet.it>
-
+###############################################################
# Additional SCO version info from
# Peter Wolfe <wolfe@teloseng.com>
-# Last revised
# Fri Jul 19 14:54:25 EDT 1996
-# by Andy Dougherty <doughera@lafcol.lafayette.edu>
-
-# To use gcc, use sh Configure -Dcc=gcc
-# But gcc will *not* do dynamic laoding on 3.2.5,
-# for that use sh Configure -Dcc=icc
-# See below for more details.
+# and again Tue Sep 29 16:37:25 EDT 1998
+# by Andy Dougherty <doughera@lafayette.edu>
+# Mostly rewritten on
+# Tue Jan 19 23:00:00 CET 1999
+# by Francois Desarmenien <desar@club-internet.fr>
+###############################################################
+#
+# To use cc, use sh Configure
+# To use gcc, use sh Configure -Dcc=gcc
+#
+# Default on 3.2v4 is to use static link (dynamic loading unsupported).
+# Default on 3.2v5 is to use dynamic loading.
+# To use static linkink instead, use to sh Configure -Dusedl=n
+#
+# Warning: - to use dynamic loading with gcc, you need gcc 2.8.0 or later
+# ******** - to compile with older releases of gcc, use Configure -Dusedl=n
+# or it wont compile properly
+#
+###############################################################
+# NOTES:
+# -----
+#
+# I Have removed inclusion of ODBM_File for OSR5
+# because it core dumps and make tests fails.
+#
+# Support for icc compiler has been removed, because it 'breaks'
+# a lot of code :-(
+#
+# It's *always* a good idea to first make a static link to be sure to
+# have all symbols resolved with the current choice of libraries, since
+# with dynamic linking, unresolved symbols are allowed an will be detected
+# only at runtime (when you try to load the module or worse, when you call
+# the symbol)
+#
+# The best choice of compiler on OSR 5 (3.2v5.*) seems to be gcc >= 2.8.0:
+# -You cannot optimize with genuine sco cc (miniperl core dumps),
+# so Perl is faster if compiled with gcc.
+# -Even optimized for speed, gcc generated code is smaller (!!!)
+# -gcc is free
+# -I use ld to link which is distributed with the core OS distribution, so you
+# don't need to buy the developement kit, just find someone kind enough to
+# give you a binary release of gcc.
+#
+#
+###############################################################
# figure out what SCO version we are. The output of uname -X is
# something like:
# System = SCO_SV
# Node = xxxxx
# Release = 3.2v5.0.0
# KernelID = 95/08/08
-# Machine = Pentium
+# Machine = Pentium
# BusType = ISA
# Serial = xxxxx
# Users = 5-user
# OEM# = 0
# Origin# = 1
-# NumCPU = 1
-
-# Use /bin/uname (because Gnu may be first on the path and
+# NumCPU = 1
+
+# Use /bin/uname (because GNU uname may be first in $PATH and
# it does not support -X) to figure out what SCO version we are:
-case `/bin/uname -X | egrep '^Release'` in
-*3.2v4.*) scorls=3 ;; # I don't know why this is 3 instead of 4 :-)
-*3.2v5.*) scorls=5 ;;
-*) scorls=3 ;; # this probabaly shouldn't happen
+# Matching '^Release' is broken by locale setting:
+# matching '3.2v' should be enough -- FD
+case `/bin/uname -X | egrep '3\.2v'` in
+*3.2v4.*) scorls=3 ;; # OSR 3
+*3.2v5.*) scorls=5 ;; # OSR 5
+*)
+ # Future of SCO OSR is SCO UnixWare: there should not be new OSR releases
+ echo "************************************************************" >&4
+ echo "" >&4
+ echo " sco.sh hints file only supports:" >&4
+ echo "" >&4
+ echo " - SCO Unix 3.2v4.x (OSR 3)" >&4
+ echo " - SCO Unix 3.2v5.x (OSR 5)" >&4
+ echo "" >&4
+ echo "" >&4
+ echo " For UnixWare, use svr4.sh hints instead" >&4
+ echo "" >&4
+ echo "***********************************************************" >&4
+ exit
+;;
esac
+###############################################################
+# Common fixes for all compilers an releases:
+
+###############################################################
+# What is true for SCO5 is true for SCO3 too today, so let's have a single
+# symbol for both
+ccflags="-U M_XENIX -D PERL_SCO"
+
+###############################################################
+# Compilers options section:
+if test "$scorls" = "3"
+then
+ dlext=''
+ case "$cc" in
+ gcc) optimize='-O2' ;;
+ *) ccflags="$ccflags -W0 -quiet"
+ optimize='-O' ;;
+ esac
+else
+ ###############################################################
+ # Need this in release 5 because of changed fpu exeption rules
+ ccflags="$ccflags -D PERL_SCO5"
+
+ ###############################################################
+ # In Release 5, always compile ELF objects
+ case "$cc" in
+ gcc)
+ ccflags="$ccflags -melf"
+ optimize='-O2'
+ ;;
+ *)
+ ccflags="$ccflags -w0 -belf"
+ optimize='-O0'
+ ;;
+ esac
+ ###############################################################
+ # Dynamic loading section:
+ #
+ # We use ld to build shared libraries as it is always available
+ # and seems to work better than GNU's one on SCO
+ #
+ # ccdlflags : must tell the linker to export all global symbols
+ # cccdlflags: must tell the compiler to generate relocatable code
+ # lddlflags : must tell the linker to output a shared library
+ #
+ # /usr/local/lib is added for convenience, since 'foreign' libraries
+ # are usually put there in sco
+ #
+ if test "$usedl" != "n"; then
+ ld='ld'
+ case "$cc" in
+ gcc)
+ ccdlflags='-Xlinker -Bexport -L/usr/local/lib'
+ cccdlflags='-fpic'
+ lddlflags='-G -L/usr/local/lib'
+ ;;
+ *)
+ ccdlflags='-Bexport -L/usr/local/lib'
+ cccdlflags='-Kpic'
+ lddlflags='-G -L/usr/local/lib'
+ ;;
+ esac
+
+ ###############################################################
+ # Use dynamic loading
+ usedl='define'
+ dlext='so'
+ dlsrc='dl_dlopen.xs'
+
+ ###############################################################
+ # Force to define those symbols, as they are #defines and not
+ # catched by Configure, and they are useful
+ d_dlopen='define'
+ d_dlerror='define'
+ fi
+fi
+
+
+###############################################################
+# Various hints, common to all releases, to have it work better:
+
+###############################################################
+# We need to remove libdl, as libdl.so exists, but ld complains
+# it can't find libdl.a ! Bug or feature ? :-)
+libswanted=`echo " $libswanted " | sed -e 's/ dl / /'`
+set X $libswanted
+shift
+libswanted="$*"
+
+###############################################################
# Try to use libintl.a since it has strcoll and strxfrm
libswanted="intl $libswanted"
+
+###############################################################
# Try to use libdbm.nfs.a since it has dbmclose.
-#
if test -f /usr/lib/libdbm.nfs.a ; then
libswanted=`echo "dbm.nfs $libswanted " | sed -e 's/ dbm / /'`
+ set X $libswanted
+ shift
+ libswanted="$*"
fi
-set X $libswanted
-shift
-libswanted="$*"
+###############################################################
+# We disable ODBM_File if OSR5 because it's mostly broken
+# but keep it for ODT3 as it seems to work.
+if test "$scorls" = "5"; then
+ i_dbm='undef'
+fi
+
+###############################################################
# We don't want Xenix cross-development libraries
glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'`
xlibpth=''
-case "$cc" in
-*gcc*) ccflags="$ccflags -U M_XENIX"
- optimize="$optimize -O2"
- ;;
-scocc) ;;
-
-# On SCO 3.2v5 both cc and icc can build dynamic load, but cc core
-# dumps if optimised, so I am only setting this up for icc.
-# It is possible that some 3.2v4.2 system have icc, I seem to
-# recall it was available as a seperate product but I have no
-# knowledge if it can do dynamic loading and if so how.
-# Joel Rosi-Schwartz
-icc)# Apparently, SCO's cc gives rather verbose warnings
- # Set -w0 to turn them off.
- case $scorls in
- 3) ccflags="$ccflags -W0 -quiet -U M_XENIX" ;;
- 5) ccflags="$ccflags -belf -w0 -U M_XENIX"
- optimize="-O1" # -g -O1 will not work
- # optimize="-O0" may be needed for pack test to pass.
- lddlflags='-G -L/usr/local/lib'
- ldflags=' -W l,-Bexport -L/usr/local/lib'
- dlext='so'
- dlsrc='dl_dlopen.xs'
- usedl='define'
- ;;
- esac
- ;;
-
-*) # Apparently, miniperl core dumps if -O is used.
- case "$optimize" in
- '') optimize=none ;;
- esac
- # Apparently, SCO's cc gives rather verbose warnings
- # Set -w0 to turn them off.
- case $scorls in
- 3) ccflags="$ccflags -W0 -quiet -U M_XENIX" ;;
- 5) ccflags="$ccflags -w0 -U M_XENIX -DPERL_SCO5" ;;
- esac
- ;;
-esac
-i_varargs=undef
-
+###############################################################
# I have received one report that nm extraction doesn't work if you're
# using the scocc compiler. This system had the following 'myconfig'
# uname='xxx xxx 3.2 2 i386 '
# cc='scocc', optimize='-O'
-usenm='false'
+# You can override this with Configure -Dusenm.
+case "$usenm" in
+'') usenm='false' ;;
+esac
+###############################################################
# If you want to use nm, you'll probably have to use nm -p. The
# following does that for you:
nm_opt='-p'
+###############################################################
# I have received one report that you can't include utime.h in
# pp_sys.c. Uncomment the following line if that happens to you:
# i_utime=undef
-# Apparently, some versions of SCO include both .so and .a libraries,
-# but they don't mix as they do on other ELF systems. The upshot is
-# that Configure finds -ldl (libdl.so) but 'ld' complains it can't
-# find libdl.a.
-# I don't know which systems have this feature, so I'll just remove
-# -dl from libswanted for all SCO systems until someone can figure
-# out how to get dynamic loading working on SCO.
-#
-# The output of uname -X on one such system was
-# System = SCO_SV
-# Node = xxxxx
-# Release = 3.2v5.0.0
-# KernelID = 95/08/08
-# Machine = Pentium
-# BusType = ISA
-# Serial = xxxxx
-# Users = 5-user
-# OEM# = 0
-# Origin# = 1
-# NumCPU = 1
-#
-# The 5.0.0 on the Release= line is probably the thing to watch.
-# Andy Dougherty <doughera@lafcol.lafayette.edu>
-# Thu Feb 1 15:06:56 EST 1996
-libswanted=`echo " $libswanted " | sed -e 's/ dl / /'`
-set X $libswanted
-shift
-libswanted="$*"
-
+###############################################################
# Perl 5.003_05 and later try to include both <time.h> and <sys/select.h>
# in pp_sys.c, but that fails due to a redefinition of struct timeval.
# This will generate a WHOA THERE. Accept the default.
i_sysselct=$undef
+
+
+###############################################################
+#END of hint file
diff --git a/contrib/perl5/hints/solaris_2.sh b/contrib/perl5/hints/solaris_2.sh
index 856f80103f9d..935f00d877ea 100644
--- a/contrib/perl5/hints/solaris_2.sh
+++ b/contrib/perl5/hints/solaris_2.sh
@@ -261,25 +261,26 @@ rm -f core
# XXX
EOSH
-if [ "X$usethreads" = "X$define" ]; then
- ccflags="-D_REENTRANT $ccflags"
- # -lpthread needs to come before -lc but after other libraries such
- # as -lgdbm and such like. We assume here that -lc is present in
- # libswanted. If that fails to be true in future, then this can be
- # changed to add pthread to the very end of libswanted.
- # sched_yield is in -lposix4
- set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'`
- shift
- libswanted="$*"
-
- # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
- # when linked with the threads library, such that whatever positive value
- # you pass to siglongjmp(), sigsetjmp() returns 1.
- # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
- # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
- # siglongjmp in a MT program". As of 19980622, there is no patch
- # available.
- cat >try.c <<'EOM'
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ ccflags="-D_REENTRANT $ccflags"
+
+ # sched_yield is in -lposix4
+ set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'`
+ shift
+ libswanted="$*"
+
+ # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
+ # when linked with the threads library, such that whatever positive
+ # value you pass to siglongjmp(), sigsetjmp() returns 1.
+ # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
+ # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
+ # siglongjmp in a MT program". As of 19980622, there is no patch
+ # available.
+ cat >try.c <<'EOM'
/* Test for sig(set|long)jmp bug. */
#include <setjmp.h>
@@ -293,18 +294,20 @@ if [ "X$usethreads" = "X$define" ]; then
siglongjmp(env, 2);
}
EOM
- if test "`arch`" = i86pc -a "$osvers" = 2.6 \
- && ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
- d_sigsetjmp=$undef
- cat << 'EOM' >&2
+ if test "`arch`" = i86pc -a "$osvers" = 2.6 && \
+ ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
+ d_sigsetjmp=$undef
+ cat << 'EOM' >&2
You will see a *** WHOA THERE!!! *** message from Configure for
d_sigsetjmp. Keep the recommended value. See hints/solaris_2.sh
for more information.
EOM
- fi
-fi
+ fi
+ ;;
+esac
+EOCBU
# This is just a trick to include some useful notes.
cat > /dev/null <<'End_of_Solaris_Notes'
diff --git a/contrib/perl5/hints/ultrix_4.sh b/contrib/perl5/hints/ultrix_4.sh
index d8d2063b22d6..7b841e53fbb6 100644
--- a/contrib/perl5/hints/ultrix_4.sh
+++ b/contrib/perl5/hints/ultrix_4.sh
@@ -34,16 +34,16 @@ case "$cc" in
*gcc*) ;;
*)
case "$osvers" in
- *4.1*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3200" ;;
- *4.2*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3200"
+ *4.1*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3400" ;;
+ *4.2*) ccflags="$ccflags -DLANGUAGE_C -Olimit 3400"
# 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 3200" ;;
- *) ccflags="$ccflags -std -Olimit 3200" ;;
+ *4.3*) ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3400" ;;
+ *) ccflags="$ccflags -std -Olimit 3400" ;;
esac
;;
esac
diff --git a/contrib/perl5/hints/uwin.sh b/contrib/perl5/hints/uwin.sh
new file mode 100644
index 000000000000..0e5e11adfd65
--- /dev/null
+++ b/contrib/perl5/hints/uwin.sh
@@ -0,0 +1,36 @@
+#
+# hint file for U/WIN (UNIX for Windows 95/NT)
+#
+# created for U/WIN version 1.55
+# running under Windows NT 4.0 SP 3
+# using MSVC++ 5.0 for the compiler
+#
+# created by Joe Buehler (jbuehler@hekimian.com)
+#
+# for information about U/WIN see www.gtlinc.com
+#
+
+#ccflags=-D_BSDCOMPAT
+# confusion in Configure over preprocessor
+cppstdin=`pwd`/cppstdin
+cpprun=`pwd`/cppstdin
+# pwd.h confuses Configure
+d_pwcomment=undef
+d_pwgecos=define
+# work around case-insensitive file names
+firstmakefile=GNUmakefile
+# avoid compilation error
+i_utime=undef
+# compile/link flags
+ldflags=-g
+optimize=-g
+static_ext="B Data/Dumper Fcntl IO IPC/SysV Opcode POSIX SDBM_File Socket attrs"
+#static_ext=none
+# dynamic loading needs work
+usedl=undef
+# perl malloc will not work
+usemymalloc=n
+# cannot use nm
+usenm=undef
+# vfork() is buggy (as of 1.55 anyway)
+usevfork=false